diff --git a/benchmark/benchmark.hs b/benchmark/benchmark.hs
--- a/benchmark/benchmark.hs
+++ b/benchmark/benchmark.hs
@@ -1,9 +1,11 @@
 import Skylighting
+import qualified Data.Map as Map
 import Criterion.Main
 import Criterion.Types (Config(..))
 import System.FilePath
 import Data.Text (Text)
 import qualified Data.Text as Text
+import System.Directory
 
 main :: IO ()
 main = do
@@ -15,8 +17,20 @@
         let format = drop 1 $ takeExtension fp
         return (Text.pack format, Text.pack contents)
   cases <- mapM getCase inputs
+  xmlfiles <- filter (\x -> takeExtension x == ".xml") <$>
+                  getDirectoryContents "xml"
   defaultMainWith defaultConfig{ timeLimit = 10.0 }
-    $ map testBench cases
+    $ parseBench xmlfiles : map testBench cases
+
+parseBench :: [String] -> Benchmark
+parseBench xmls =
+  bench "parse syntax definitions" $
+    nfIO ((Map.size . foldr addSyntaxDefinition mempty) <$> mapM addFile xmls)
+   where addFile f = do
+           result <- parseSyntaxDefinition ("xml" </> f)
+           case result of
+                Left e -> error e
+                Right r -> return r
 
 testBench :: (Text, Text) -> Benchmark
 testBench (format, contents) =
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,18 @@
 # Revision history for skylighting
 
+## 0.2 -- 2017-02-19
+
+  * Restore Data, Typeable, Generic instances for basic types.
+    To do this, we remove reCompiled field from RE (API change).  Instead, we
+    have the tokenizer compile regexes the first time it encounters them,
+    memoizing the results.  Performance is not significantly worse.
+  * Use -fprof-auto-exported for profiling builds.
+  * Added benchmark for xml syntax definition parsing.
+  * Patched perl.xml (improperly escaped regex) (#8).
+    This fixes a perl regex compilation error for regex patterns
+    with backslash as delimiter, e.g. m\a\.
+  * Add a flag to build with system pcre (Felix Yan).
+
 ## 0.1.1.5  -- 2017-02-03
 
   * Avoid depending on a PrintfArg instance for Text (#5).
diff --git a/skylighting.cabal b/skylighting.cabal
--- a/skylighting.cabal
+++ b/skylighting.cabal
@@ -1,5 +1,5 @@
 name:                skylighting
-version:             0.1.1.5
+version:             0.2
 synopsis:            syntax highlighting library
 description:         Skylighting is a syntax highlighting library with
                      support for over one hundred languages.  It derives
@@ -228,7 +228,6 @@
                        mtl,
                        text,
                        bytestring,
-                       regex-pcre-builtin,
                        directory,
                        filepath,
                        aeson,
@@ -238,10 +237,15 @@
                        safe,
                        blaze-html >= 0.5,
                        containers
+  if flag(system-pcre)
+    build-depends:     regex-pcre
+  else
+    build-depends:     regex-pcre-builtin
   hs-source-dirs:      src
   if impl(ghc < 7.10)
      hs-source-dirs:   prelude
      other-modules:    Prelude
+  ghc-prof-options:    -fprof-auto-exported
   default-language:    Haskell2010
   ghc-options:         -Wall
   if flag(bootstrap)
@@ -255,12 +259,15 @@
   Description:   Build skylighting CLI tool
   Default:       False
 
+Flag system-pcre
+  Description:   Use regex-pcre instead of regex-pcre-builtin
+  Default:       False
+
 executable skylighting-extract
   build-depends:       base >= 4.7 && < 5.0,
                        filepath,
                        bytestring,
                        text,
-                       regex-pcre-builtin,
                        safe,
                        hxt,
                        utf8-string,
@@ -269,6 +276,10 @@
                        pretty-show,
                        containers,
                        directory
+  if flag(system-pcre)
+    build-depends:     regex-pcre
+  else
+    build-depends:     regex-pcre-builtin
   hs-source-dirs:      bin, src
   if impl(ghc < 7.10)
      hs-source-dirs:   prelude
@@ -348,6 +359,7 @@
                    base >= 4.2 && < 5,
                    filepath,
                    text,
+                   containers,
                    directory,
                    criterion >= 1.0 && < 1.2
   Ghc-Options:   -rtsopts -Wall -fno-warn-unused-do-bind
diff --git a/src/Skylighting/Parser.hs b/src/Skylighting/Parser.hs
--- a/src/Skylighting/Parser.hs
+++ b/src/Skylighting/Parser.hs
@@ -252,11 +252,7 @@
        let column = if tildeRegex
                        then Just (0 :: Int)
                        else readMay column'
-       let compiledRe = if dynamic
-                           then Nothing
-                           else Just $ compileRegex True (fromString str)
        let re = RegExpr RE{ reString = fromString $ convertOctalEscapes str
-                          , reCompiled = compiledRe
                           , reCaseSensitive = not insensitive }
        let (incsyntax, inccontext) =
                case break (=='#') context of
diff --git a/src/Skylighting/Regex.hs b/src/Skylighting/Regex.hs
--- a/src/Skylighting/Regex.hs
+++ b/src/Skylighting/Regex.hs
@@ -18,7 +18,7 @@
 import System.IO.Unsafe (unsafePerformIO)
 import Text.Printf
 import Text.Regex.PCRE.ByteString
-import Data.Typeable
+import Data.Data
 
 newtype RegexException = RegexException String
       deriving (Show, Typeable, Generic)
@@ -27,20 +27,8 @@
 
 data RE = RE{
     reString        :: BS.ByteString
-  , reCompiled      :: Maybe Regex
   , reCaseSensitive :: Bool
-}
-
-instance Show RE where
-  show re = "RE{ reString = " ++ show (reString re) ++
-            ", reCompiled = " ++
-            (case reCompiled re of
-                  Nothing  -> "Nothing"
-                  Just _   -> "Just (compileRegex " ++
-                                show (reCaseSensitive re) ++
-                                " " ++ show (reString re)
-                                ++ ")") ++
-            ", reCaseSensitive = " ++ show (reCaseSensitive re) ++ "}"
+} deriving (Show, Read, Ord, Eq, Data, Typeable, Generic)
 
 -- | Compile a PCRE regex.  If the first parameter is True, the regex is
 -- case-sensitive, otherwise caseless.  The regex is compiled from
diff --git a/src/Skylighting/Syntax/Abc.hs b/src/Skylighting/Syntax/Abc.hs
--- a/src/Skylighting/Syntax/Abc.hs
+++ b/src/Skylighting/Syntax/Abc.hs
@@ -2,454 +2,6 @@
 module Skylighting.Syntax.Abc (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "ABC"
-  , sFilename = "abc.xml"
-  , sShortname = "Abc"
-  , sContexts =
-      fromList
-        [ ( "Bar"
-          , Context
-              { cName = "Bar"
-              , cSyntax = "ABC"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Ga-gZz]"
-                              , reCompiled = Just (compileRegex True "[A-Ga-gZz]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ' '
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '!' '!'
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "()"
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ":*\\|*[1-9]|/*\\|"
-                              , reCompiled = Just (compileRegex True ":*\\|*[1-9]|/*\\|")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "ABC"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Header"
-          , Context
-              { cName = "Header"
-              , cSyntax = "ABC"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "K:.+"
-                              , reCompiled = Just (compileRegex True "K:.+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = FloatTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Header2"
-          , Context
-              { cName = "Header2"
-              , cSyntax = "ABC"
-              , cRules = []
-              , cAttribute = FloatTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Lyrics"
-          , Context
-              { cName = "Lyrics"
-              , cSyntax = "ABC"
-              , cRules = []
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "ABC"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\([23456789]:?[23456789]?:?[23456789]?"
-                              , reCompiled =
-                                  Just (compileRegex True "\\([23456789]:?[23456789]?:?[23456789]?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '"' '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '!' '!'
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[[ABCGHILMNOQRSTUVZ]:"
-                              , reCompiled = Just (compileRegex True "\\[[ABCGHILMNOQRSTUVZ]:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ABC" , "Header" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[ABCGHILMNOPQRSTUVZ]:"
-                              , reCompiled = Just (compileRegex True "[ABCGHILMNOPQRSTUVZ]:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ABC" , "Header2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars 'X' ':'
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "ABC" , "Header" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "|:["
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ABC" , "Bar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "()"
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "{}"
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars 'W' ':'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ABC" , "Lyrics" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars 'w' ':'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ABC" , "Lyrics" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '%' '%'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ABC" , "Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ABC" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[_|\\^]?[_|=|\\^][A-Ga-g]"
-                              , reCompiled = Just (compileRegex True "[_|\\^]?[_|=|\\^][A-Ga-g]")
-                              , 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
-              }
-          )
-        , ( "Part"
-          , Context
-              { cName = "Part"
-              , cSyntax = "ABC"
-              , cRules = []
-              , cAttribute = FloatTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Preprocessor"
-          , Context
-              { cName = "Preprocessor"
-              , cSyntax = "ABC"
-              , cRules = []
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Andrea Primiani (primiani@dag.it)"
-  , sVersion = "3"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.abc" , "*.ABC" ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"ABC\", sFilename = \"abc.xml\", sShortname = \"Abc\", sContexts = fromList [(\"Bar\",Context {cName = \"Bar\", cSyntax = \"ABC\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[A-Ga-gZz]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar ' ', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RangeDetect '!' '!', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"()\", rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \":*\\\\|*[1-9]|/*\\\\|\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CharTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment\",Context {cName = \"Comment\", cSyntax = \"ABC\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Header\",Context {cName = \"Header\", cSyntax = \"ABC\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"K:.+\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar ']', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = FloatTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Header2\",Context {cName = \"Header2\", cSyntax = \"ABC\", cRules = [], cAttribute = FloatTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Lyrics\",Context {cName = \"Lyrics\", cSyntax = \"ABC\", cRules = [], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"ABC\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\([23456789]:?[23456789]?:?[23456789]?\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RangeDetect '\"' '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RangeDetect '!' '!', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[[ABCGHILMNOQRSTUVZ]:\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ABC\",\"Header\")]},Rule {rMatcher = RegExpr (RE {reString = \"[ABCGHILMNOPQRSTUVZ]:\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ABC\",\"Header2\")]},Rule {rMatcher = Detect2Chars 'X' ':', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"ABC\",\"Header\")]},Rule {rMatcher = AnyChar \"|:[\", rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ABC\",\"Bar\")]},Rule {rMatcher = DetectChar ']', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"()\", rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"{}\", rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars 'W' ':', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ABC\",\"Lyrics\")]},Rule {rMatcher = Detect2Chars 'w' ':', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ABC\",\"Lyrics\")]},Rule {rMatcher = Detect2Chars '%' '%', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ABC\",\"Preprocessor\")]},Rule {rMatcher = DetectChar '%', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ABC\",\"Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"[_|\\\\^]?[_|=|\\\\^][A-Ga-g]\", 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}),(\"Part\",Context {cName = \"Part\", cSyntax = \"ABC\", cRules = [], cAttribute = FloatTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Preprocessor\",Context {cName = \"Preprocessor\", cSyntax = \"ABC\", cRules = [], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Andrea Primiani (primiani@dag.it)\", sVersion = \"3\", sLicense = \"LGPL\", sExtensions = [\"*.abc\",\"*.ABC\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Actionscript.hs b/src/Skylighting/Syntax/Actionscript.hs
--- a/src/Skylighting/Syntax/Actionscript.hs
+++ b/src/Skylighting/Syntax/Actionscript.hs
@@ -2,956 +2,6 @@
 module Skylighting.Syntax.Actionscript (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "ActionScript 2.0"
-  , sFilename = "actionscript.xml"
-  , sShortname = "Actionscript"
-  , sContexts =
-      fromList
-        [ ( "Commentar 1"
-          , Context
-              { cName = "Commentar 1"
-              , cSyntax = "ActionScript 2.0"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Commentar 2"
-          , Context
-              { cName = "Commentar 2"
-              , cSyntax = "ActionScript 2.0"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Imports"
-          , Context
-              { cName = "Imports"
-              , cSyntax = "ActionScript 2.0"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*.*$"
-                              , reCompiled = Just (compileRegex True "\\s*.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ImportTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Member"
-          , Context
-              { cName = "Member"
-              , cSyntax = "ActionScript 2.0"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[_a-zA-Z]\\w*(?=[\\s]*)"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b[_a-zA-Z]\\w*(?=[\\s]*)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "ActionScript 2.0"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Javadoc" , "" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "_accProps"
-                               , "_focusrect"
-                               , "_global"
-                               , "_highquality"
-                               , "_level"
-                               , "_parent"
-                               , "_quality"
-                               , "_root"
-                               , "_soundbuftime"
-                               , "maxscroll"
-                               , "scroll"
-                               , "this"
-                               ])
-                      , rAttribute = AttributeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "asfunction"
-                               , "call"
-                               , "chr"
-                               , "clearInterval"
-                               , "duplicateMovieClip"
-                               , "escape"
-                               , "eval"
-                               , "fscommand"
-                               , "getProperty"
-                               , "getTimer"
-                               , "getURL"
-                               , "getVersion"
-                               , "gotoAndPlay"
-                               , "gotoAndStop"
-                               , "ifFrameLoaded"
-                               , "int"
-                               , "isFinite"
-                               , "isNaN"
-                               , "length"
-                               , "loadMovie"
-                               , "loadMovieNum"
-                               , "loadVariables"
-                               , "loadVariablesNum"
-                               , "mbchr"
-                               , "mblength"
-                               , "mbord"
-                               , "mbsubstring"
-                               , "nextFrame"
-                               , "nextScene"
-                               , "on"
-                               , "onClipEvent"
-                               , "ord"
-                               , "parseFloat"
-                               , "parseInt"
-                               , "play"
-                               , "prevFrame"
-                               , "prevScene"
-                               , "print"
-                               , "printAsBitmap"
-                               , "printAsBitmapNum"
-                               , "printNum"
-                               , "random"
-                               , "removeMovieClip"
-                               , "setInterval"
-                               , "setProperty"
-                               , "showRedrawRegions"
-                               , "startDrag"
-                               , "stop"
-                               , "stopAllSounds"
-                               , "stopDrag"
-                               , "substring"
-                               , "targetPath"
-                               , "tellTarget"
-                               , "toggleHighQuality"
-                               , "trace"
-                               , "typeof"
-                               , "unescape"
-                               , "unloadMovie"
-                               , "unloadMovieNum"
-                               , "updateAfterEvent"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Accessibility"
-                               , "Accordion"
-                               , "Alert"
-                               , "Binding"
-                               , "Button"
-                               , "Camera"
-                               , "CellRenderer"
-                               , "CheckBox"
-                               , "Collection"
-                               , "Color"
-                               , "ComboBox"
-                               , "ComponentMixins"
-                               , "ContextMenu"
-                               , "ContextMenuItem"
-                               , "CustomActions"
-                               , "CustomFormatter"
-                               , "CustomValidator"
-                               , "DataGrid"
-                               , "DataHolder"
-                               , "DataProvider"
-                               , "DataSet"
-                               , "DataType"
-                               , "Date"
-                               , "DateChooser"
-                               , "DateField"
-                               , "Delta"
-                               , "DeltaItem"
-                               , "DeltaPacket"
-                               , "DepthManager"
-                               , "EndPoint"
-                               , "Error"
-                               , "FaultEvent"
-                               , "FocusManager"
-                               , "Form"
-                               , "Function"
-                               , "Iterator"
-                               , "Key"
-                               , "Label"
-                               , "List"
-                               , "LoadVars"
-                               , "Loader"
-                               , "LocalConnection"
-                               , "Log"
-                               , "Math"
-                               , "Media"
-                               , "Menu"
-                               , "MenuBar"
-                               , "Microphone"
-                               , "Mouse"
-                               , "MovieClip"
-                               , "MovieClipLoader"
-                               , "NetConnection"
-                               , "NetStream"
-                               , "Number"
-                               , "NumericStepper"
-                               , "PendingCall"
-                               , "PopUpManager"
-                               , "PrintJob"
-                               , "ProgressBar"
-                               , "RDBMSResolver"
-                               , "RadioButton"
-                               , "RelayResponder"
-                               , "SOAPCall"
-                               , "Screen"
-                               , "ScrollPane"
-                               , "Selection"
-                               , "SharedObject"
-                               , "Slide"
-                               , "Sound"
-                               , "Stage"
-                               , "StyleManager"
-                               , "System"
-                               , "TextArea"
-                               , "TextField"
-                               , "TextFormat"
-                               , "TextInput"
-                               , "TextSnapshot"
-                               , "TransferObject"
-                               , "Tree"
-                               , "TreeDataProvider"
-                               , "TypedValue"
-                               , "UIComponent"
-                               , "UIEventDispatcher"
-                               , "UIObject"
-                               , "Video"
-                               , "WebService"
-                               , "WebServiceConnector"
-                               , "Window"
-                               , "XML"
-                               , "XMLConnector"
-                               , "XUpdateResolver"
-                               ])
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "add"
-                               , "and"
-                               , "break"
-                               , "case"
-                               , "catch"
-                               , "class"
-                               , "continue"
-                               , "default"
-                               , "delete"
-                               , "do"
-                               , "dynamic"
-                               , "else"
-                               , "eq"
-                               , "extends"
-                               , "finally"
-                               , "for"
-                               , "function"
-                               , "ge"
-                               , "get"
-                               , "gt"
-                               , "if"
-                               , "implements"
-                               , "import"
-                               , "in"
-                               , "instanceof"
-                               , "interface"
-                               , "intrinsic"
-                               , "le"
-                               , "lt"
-                               , "ne"
-                               , "new"
-                               , "not"
-                               , "or"
-                               , "private"
-                               , "public"
-                               , "return"
-                               , "set"
-                               , "static"
-                               , "switch"
-                               , "throw"
-                               , "try"
-                               , "var"
-                               , "void"
-                               , "while"
-                               , "with"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "-Infinity"
-                               , "Infinity"
-                               , "NaN"
-                               , "false"
-                               , "newline"
-                               , "null"
-                               , "true"
-                               , "undefined"
-                               ])
-                      , rAttribute = ConstantTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Array" , "Boolean" , "Number" , "Object" , "String" , "Void" ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = AnyChar "fF"
-                              , rAttribute = FloatTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = True
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = StringDetect "ULL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LUL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LLU"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "UL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LU"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "U"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "L"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "//\\s*BEGIN.*$"
-                              , reCompiled = Just (compileRegex True "//\\s*BEGIN.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "//\\s*END.*$"
-                              , reCompiled = Just (compileRegex True "//\\s*END.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ActionScript 2.0" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ActionScript 2.0" , "Commentar 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ActionScript 2.0" , "Commentar 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.{3,3}\\s+"
-                              , reCompiled = Just (compileRegex True "\\.{3,3}\\s+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(import\\s+static)\\b"
-                              , reCompiled = Just (compileRegex True "\\b(import\\s+static)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "ActionScript 2.0" , "StaticImports" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(package|import)\\b"
-                              , reCompiled = Just (compileRegex True "\\b(package|import)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ActionScript 2.0" , "Imports" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b[_\\w][_\\w\\d]*(?=[\\s]*(/\\*\\s*\\d+\\s*\\*/\\s*)?[(])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\b[_\\w][_\\w\\d]*(?=[\\s]*(/\\*\\s*\\d+\\s*\\*/\\s*)?[(])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[.]{1,1}"
-                              , reCompiled = Just (compileRegex True "[.]{1,1}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ActionScript 2.0" , "Member" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ":!%&()+,-/.*<=>?[]|~^;"
-                      , 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
-              }
-          )
-        , ( "StaticImports"
-          , Context
-              { cName = "StaticImports"
-              , cSyntax = "ActionScript 2.0"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*.*$"
-                              , reCompiled = Just (compileRegex True "\\s*.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ImportTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "ActionScript 2.0"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Aaron Miller (armantic101@gmail.com)"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.as" ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"ActionScript 2.0\", sFilename = \"actionscript.xml\", sShortname = \"Actionscript\", sContexts = fromList [(\"Commentar 1\",Context {cName = \"Commentar 1\", cSyntax = \"ActionScript 2.0\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Commentar 2\",Context {cName = \"Commentar 2\", cSyntax = \"ActionScript 2.0\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Imports\",Context {cName = \"Imports\", cSyntax = \"ActionScript 2.0\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*.*$\", reCaseSensitive = True}), rAttribute = ImportTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Member\",Context {cName = \"Member\", cSyntax = \"ActionScript 2.0\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[_a-zA-Z]\\\\w*(?=[\\\\s]*)\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"ActionScript 2.0\", cRules = [Rule {rMatcher = IncludeRules (\"Javadoc\",\"\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"_accProps\",\"_focusrect\",\"_global\",\"_highquality\",\"_level\",\"_parent\",\"_quality\",\"_root\",\"_soundbuftime\",\"maxscroll\",\"scroll\",\"this\"])), rAttribute = AttributeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"asfunction\",\"call\",\"chr\",\"clearInterval\",\"duplicateMovieClip\",\"escape\",\"eval\",\"fscommand\",\"getProperty\",\"getTimer\",\"getURL\",\"getVersion\",\"gotoAndPlay\",\"gotoAndStop\",\"ifFrameLoaded\",\"int\",\"isFinite\",\"isNaN\",\"length\",\"loadMovie\",\"loadMovieNum\",\"loadVariables\",\"loadVariablesNum\",\"mbchr\",\"mblength\",\"mbord\",\"mbsubstring\",\"nextFrame\",\"nextScene\",\"on\",\"onClipEvent\",\"ord\",\"parseFloat\",\"parseInt\",\"play\",\"prevFrame\",\"prevScene\",\"print\",\"printAsBitmap\",\"printAsBitmapNum\",\"printNum\",\"random\",\"removeMovieClip\",\"setInterval\",\"setProperty\",\"showRedrawRegions\",\"startDrag\",\"stop\",\"stopAllSounds\",\"stopDrag\",\"substring\",\"targetPath\",\"tellTarget\",\"toggleHighQuality\",\"trace\",\"typeof\",\"unescape\",\"unloadMovie\",\"unloadMovieNum\",\"updateAfterEvent\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"Accessibility\",\"Accordion\",\"Alert\",\"Binding\",\"Button\",\"Camera\",\"CellRenderer\",\"CheckBox\",\"Collection\",\"Color\",\"ComboBox\",\"ComponentMixins\",\"ContextMenu\",\"ContextMenuItem\",\"CustomActions\",\"CustomFormatter\",\"CustomValidator\",\"DataGrid\",\"DataHolder\",\"DataProvider\",\"DataSet\",\"DataType\",\"Date\",\"DateChooser\",\"DateField\",\"Delta\",\"DeltaItem\",\"DeltaPacket\",\"DepthManager\",\"EndPoint\",\"Error\",\"FaultEvent\",\"FocusManager\",\"Form\",\"Function\",\"Iterator\",\"Key\",\"Label\",\"List\",\"LoadVars\",\"Loader\",\"LocalConnection\",\"Log\",\"Math\",\"Media\",\"Menu\",\"MenuBar\",\"Microphone\",\"Mouse\",\"MovieClip\",\"MovieClipLoader\",\"NetConnection\",\"NetStream\",\"Number\",\"NumericStepper\",\"PendingCall\",\"PopUpManager\",\"PrintJob\",\"ProgressBar\",\"RDBMSResolver\",\"RadioButton\",\"RelayResponder\",\"SOAPCall\",\"Screen\",\"ScrollPane\",\"Selection\",\"SharedObject\",\"Slide\",\"Sound\",\"Stage\",\"StyleManager\",\"System\",\"TextArea\",\"TextField\",\"TextFormat\",\"TextInput\",\"TextSnapshot\",\"TransferObject\",\"Tree\",\"TreeDataProvider\",\"TypedValue\",\"UIComponent\",\"UIEventDispatcher\",\"UIObject\",\"Video\",\"WebService\",\"WebServiceConnector\",\"Window\",\"XML\",\"XMLConnector\",\"XUpdateResolver\"])), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"add\",\"and\",\"break\",\"case\",\"catch\",\"class\",\"continue\",\"default\",\"delete\",\"do\",\"dynamic\",\"else\",\"eq\",\"extends\",\"finally\",\"for\",\"function\",\"ge\",\"get\",\"gt\",\"if\",\"implements\",\"import\",\"in\",\"instanceof\",\"interface\",\"intrinsic\",\"le\",\"lt\",\"ne\",\"new\",\"not\",\"or\",\"private\",\"public\",\"return\",\"set\",\"static\",\"switch\",\"throw\",\"try\",\"var\",\"void\",\"while\",\"with\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"-Infinity\",\"Infinity\",\"NaN\",\"false\",\"newline\",\"null\",\"true\",\"undefined\"])), rAttribute = ConstantTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"Array\",\"Boolean\",\"Number\",\"Object\",\"String\",\"Void\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [Rule {rMatcher = AnyChar \"fF\", rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [Rule {rMatcher = StringDetect \"ULL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LUL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LLU\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"UL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LU\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"U\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"L\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"//\\\\s*BEGIN.*$\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"//\\\\s*END.*$\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ActionScript 2.0\",\"String\")]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ActionScript 2.0\",\"Commentar 1\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ActionScript 2.0\",\"Commentar 2\")]},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.{3,3}\\\\s+\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(import\\\\s+static)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ActionScript 2.0\",\"StaticImports\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(package|import)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ActionScript 2.0\",\"Imports\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[_\\\\w][_\\\\w\\\\d]*(?=[\\\\s]*(/\\\\*\\\\s*\\\\d+\\\\s*\\\\*/\\\\s*)?[(])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[.]{1,1}\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ActionScript 2.0\",\"Member\")]},Rule {rMatcher = AnyChar \":!%&()+,-/.*<=>?[]|~^;\", 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}),(\"StaticImports\",Context {cName = \"StaticImports\", cSyntax = \"ActionScript 2.0\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*.*$\", reCaseSensitive = True}), rAttribute = ImportTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"ActionScript 2.0\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCStringChar, rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Aaron Miller (armantic101@gmail.com)\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [\"*.as\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Ada.hs b/src/Skylighting/Syntax/Ada.hs
--- a/src/Skylighting/Syntax/Ada.hs
+++ b/src/Skylighting/Syntax/Ada.hs
@@ -2,603 +2,6 @@
 module Skylighting.Syntax.Ada (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Ada"
-  , sFilename = "ada.xml"
-  , sShortname = "Ada"
-  , sContexts =
-      fromList
-        [ ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "Ada"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Default"
-          , Context
-              { cName = "Default"
-              , cSyntax = "Ada"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\brecord\\b"
-                              , reCompiled = Just (compileRegex False "\\brecord\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bend\\s+record\\b"
-                              , reCompiled = Just (compileRegex False "\\bend\\s+record\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bcase\\b"
-                              , reCompiled = Just (compileRegex False "\\bcase\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bend\\s+case\\b"
-                              , reCompiled = Just (compileRegex False "\\bend\\s+case\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bif\\b"
-                              , reCompiled = Just (compileRegex False "\\bif\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bend\\s+if\\b"
-                              , reCompiled = Just (compileRegex False "\\bend\\s+if\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bloop\\b"
-                              , reCompiled = Just (compileRegex False "\\bloop\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bend\\s+loop\\b"
-                              , reCompiled = Just (compileRegex False "\\bend\\s+loop\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bselect\\b"
-                              , reCompiled = Just (compileRegex False "\\bselect\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bend\\s+select\\b"
-                              , reCompiled = Just (compileRegex False "\\bend\\s+select\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bbegin\\b"
-                              , reCompiled = Just (compileRegex False "\\bbegin\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bend\\b"
-                              , reCompiled = Just (compileRegex False "\\bend\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "--  BEGIN"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ada" , "Region Marker" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "--  END"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ada" , "Region Marker" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "abort"
-                               , "abs"
-                               , "abstract"
-                               , "accept"
-                               , "access"
-                               , "aliased"
-                               , "all"
-                               , "and"
-                               , "array"
-                               , "at"
-                               , "begin"
-                               , "body"
-                               , "constant"
-                               , "declare"
-                               , "delay"
-                               , "delta"
-                               , "digits"
-                               , "do"
-                               , "else"
-                               , "elsif"
-                               , "end"
-                               , "entry"
-                               , "exception"
-                               , "exit"
-                               , "for"
-                               , "function"
-                               , "generic"
-                               , "goto"
-                               , "in"
-                               , "interface"
-                               , "is"
-                               , "limited"
-                               , "mod"
-                               , "new"
-                               , "not"
-                               , "null"
-                               , "of"
-                               , "or"
-                               , "others"
-                               , "out"
-                               , "overriding"
-                               , "package"
-                               , "pragma"
-                               , "private"
-                               , "procedure"
-                               , "protected"
-                               , "raise"
-                               , "range"
-                               , "record"
-                               , "rem"
-                               , "renames"
-                               , "requeue"
-                               , "return"
-                               , "reverse"
-                               , "separate"
-                               , "subtype"
-                               , "tagged"
-                               , "task"
-                               , "terminate"
-                               , "then"
-                               , "type"
-                               , "until"
-                               , "use"
-                               , "when"
-                               , "while"
-                               , "with"
-                               , "xor"
-                               ])
-                      , rAttribute = KeywordTok
-                      , 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
-                               [ "all_calls_remote"
-                               , "assert"
-                               , "assertion_policy"
-                               , "asynchronous"
-                               , "atomic"
-                               , "atomic_components"
-                               , "attach_handler"
-                               , "controlled"
-                               , "convention"
-                               , "detect_blocking"
-                               , "discard_names"
-                               , "elaborate"
-                               , "elaborate_all"
-                               , "elaborate_body"
-                               , "export"
-                               , "import"
-                               , "inline"
-                               , "inspection_point"
-                               , "interrupt_handler"
-                               , "interrupt_priority"
-                               , "linker_options"
-                               , "list"
-                               , "locking_policy"
-                               , "no_return"
-                               , "normalize_scalars"
-                               , "optimize"
-                               , "pack"
-                               , "page"
-                               , "partition_elaboration_policy"
-                               , "preelaborable_initialization"
-                               , "preelaborate"
-                               , "priority"
-                               , "priority_specific_dispatching"
-                               , "profile"
-                               , "pure"
-                               , "queuing_policy"
-                               , "relative_deadline"
-                               , "remote_call_interface"
-                               , "remote_types"
-                               , "restrictions"
-                               , "reviewable"
-                               , "shared_passive"
-                               , "storage_size"
-                               , "suppress"
-                               , "task_dispatching_policy"
-                               , "unchecked_union"
-                               , "unsuppress"
-                               , "volatile"
-                               , "volatile_components"
-                               ])
-                      , rAttribute = ExtensionTok
-                      , 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
-                               [ "boolean"
-                               , "character"
-                               , "float"
-                               , "integer"
-                               , "long_float"
-                               , "long_integer"
-                               , "long_long_float"
-                               , "long_long_integer"
-                               , "short_float"
-                               , "short_integer"
-                               , "string"
-                               , "wide_character"
-                               , "wide_string"
-                               , "wide_wide_character"
-                               , "wide_wide_string"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'.'"
-                              , reCompiled = Just (compileRegex True "'.'")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ada" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '-' '-'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ada" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ":!%&()+,-/.*<=>|"
-                      , 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
-              }
-          )
-        , ( "Region Marker"
-          , Context
-              { cName = "Region Marker"
-              , cSyntax = "Ada"
-              , cRules = []
-              , cAttribute = RegionMarkerTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Ada"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = ""
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.adb" , "*.ads" , "*.ada" , "*.a" ]
-  , sStartingContext = "Default"
-  }
+syntax = read $! "Syntax {sName = \"Ada\", sFilename = \"ada.xml\", sShortname = \"Ada\", sContexts = fromList [(\"Comment\",Context {cName = \"Comment\", cSyntax = \"Ada\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Default\",Context {cName = \"Default\", cSyntax = \"Ada\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\brecord\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bend\\\\s+record\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bcase\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bend\\\\s+case\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bif\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bend\\\\s+if\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bloop\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bend\\\\s+loop\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bselect\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bend\\\\s+select\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bbegin\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bend\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"--  BEGIN\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Ada\",\"Region Marker\")]},Rule {rMatcher = StringDetect \"--  END\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Ada\",\"Region Marker\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"abort\",\"abs\",\"abstract\",\"accept\",\"access\",\"aliased\",\"all\",\"and\",\"array\",\"at\",\"begin\",\"body\",\"constant\",\"declare\",\"delay\",\"delta\",\"digits\",\"do\",\"else\",\"elsif\",\"end\",\"entry\",\"exception\",\"exit\",\"for\",\"function\",\"generic\",\"goto\",\"in\",\"interface\",\"is\",\"limited\",\"mod\",\"new\",\"not\",\"null\",\"of\",\"or\",\"others\",\"out\",\"overriding\",\"package\",\"pragma\",\"private\",\"procedure\",\"protected\",\"raise\",\"range\",\"record\",\"rem\",\"renames\",\"requeue\",\"return\",\"reverse\",\"separate\",\"subtype\",\"tagged\",\"task\",\"terminate\",\"then\",\"type\",\"until\",\"use\",\"when\",\"while\",\"with\",\"xor\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"all_calls_remote\",\"assert\",\"assertion_policy\",\"asynchronous\",\"atomic\",\"atomic_components\",\"attach_handler\",\"controlled\",\"convention\",\"detect_blocking\",\"discard_names\",\"elaborate\",\"elaborate_all\",\"elaborate_body\",\"export\",\"import\",\"inline\",\"inspection_point\",\"interrupt_handler\",\"interrupt_priority\",\"linker_options\",\"list\",\"locking_policy\",\"no_return\",\"normalize_scalars\",\"optimize\",\"pack\",\"page\",\"partition_elaboration_policy\",\"preelaborable_initialization\",\"preelaborate\",\"priority\",\"priority_specific_dispatching\",\"profile\",\"pure\",\"queuing_policy\",\"relative_deadline\",\"remote_call_interface\",\"remote_types\",\"restrictions\",\"reviewable\",\"shared_passive\",\"storage_size\",\"suppress\",\"task_dispatching_policy\",\"unchecked_union\",\"unsuppress\",\"volatile\",\"volatile_components\"])), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"boolean\",\"character\",\"float\",\"integer\",\"long_float\",\"long_integer\",\"long_long_float\",\"long_long_integer\",\"short_float\",\"short_integer\",\"string\",\"wide_character\",\"wide_string\",\"wide_wide_character\",\"wide_wide_string\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"'.'\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ada\",\"String\")]},Rule {rMatcher = Detect2Chars '-' '-', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ada\",\"Comment\")]},Rule {rMatcher = AnyChar \":!%&()+,-/.*<=>|\", 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}),(\"Region Marker\",Context {cName = \"Region Marker\", cSyntax = \"Ada\", cRules = [], cAttribute = RegionMarkerTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Ada\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.adb\",\"*.ads\",\"*.ada\",\"*.a\"], sStartingContext = \"Default\"}"
diff --git a/src/Skylighting/Syntax/Agda.hs b/src/Skylighting/Syntax/Agda.hs
--- a/src/Skylighting/Syntax/Agda.hs
+++ b/src/Skylighting/Syntax/Agda.hs
@@ -2,441 +2,6 @@
 module Skylighting.Syntax.Agda (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Agda"
-  , sFilename = "agda.xml"
-  , sShortname = "Agda"
-  , sContexts =
-      fromList
-        [ ( "char"
-          , Context
-              { cName = "char"
-              , cSyntax = "Agda"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "code"
-          , Context
-              { cName = "code"
-              , cSyntax = "Agda"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\{-#.*#-\\}"
-                              , reCompiled = Just (compileRegex True "\\{-#.*#-\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n \"().;@_{}"
-                              }
-                            (makeWordSet
-                               True
-                               [ "abstract"
-                               , "codata"
-                               , "coinductive"
-                               , "constructor"
-                               , "data"
-                               , "field"
-                               , "forall"
-                               , "hiding"
-                               , "import"
-                               , "in"
-                               , "inductive"
-                               , "infix"
-                               , "infixl"
-                               , "infixr"
-                               , "let"
-                               , "module"
-                               , "mutual"
-                               , "open"
-                               , "pattern"
-                               , "postulate"
-                               , "primitive"
-                               , "private"
-                               , "public"
-                               , "quote"
-                               , "quoteGoal"
-                               , "quoteTerm"
-                               , "record"
-                               , "renaming"
-                               , "rewrite"
-                               , "syntax"
-                               , "to"
-                               , "unquote"
-                               , "using"
-                               , "where"
-                               , "with"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(Prop|Set[\226\130\128-\226\130\137]+|Set[0-9]*)(?=([_;.\"(){}@]|\\s|$))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(Prop|Set[\226\130\128-\226\130\137]+|Set[0-9]*)(?=([_;.\"(){}@]|\\s|$))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(->|\226\134\146|\226\136\128|\206\187|:|=|\\|)(?=([_;.\"(){}@]|\\s|$))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(->|\226\134\146|\226\136\128|\206\187|:|=|\\|)(?=([_;.\"(){}@]|\\s|$))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\d+\\.\\d+(?=([_;.\"(){}@]|\\s|$))"
-                              , reCompiled =
-                                  Just (compileRegex True "\\d+\\.\\d+(?=([_;.\"(){}@]|\\s|$))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[0-9]+(?=([_;.\"(){}@]|\\s|$))"
-                              , reCompiled =
-                                  Just (compileRegex True "[0-9]+(?=([_;.\"(){}@]|\\s|$))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Agda" , "char" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Agda" , "string" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '-' '-'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Agda" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '{' '-'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Agda" , "comments" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '{' '!'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Agda" , "hole" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "_;.\"(){}@\\\\"
-                      , rAttribute = OtherTok
-                      , 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 = 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 = "Agda"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "comments"
-          , Context
-              { cName = "comments"
-              , cSyntax = "Agda"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '{' '-'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Agda" , "comments" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '-' '}'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "hole"
-          , Context
-              { cName = "hole"
-              , cSyntax = "Agda"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '!' '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "string"
-          , Context
-              { cName = "string"
-              , cSyntax = "Agda"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Matthias C. M. Troffaes"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.agda" ]
-  , sStartingContext = "code"
-  }
+syntax = read $! "Syntax {sName = \"Agda\", sFilename = \"agda.xml\", sShortname = \"Agda\", sContexts = fromList [(\"char\",Context {cName = \"char\", cSyntax = \"Agda\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CharTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"code\",Context {cName = \"code\", cSyntax = \"Agda\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\{-#.*#-\\\\}\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n \\\"().;@_{}\"}) (CaseSensitiveWords (fromList [\"abstract\",\"codata\",\"coinductive\",\"constructor\",\"data\",\"field\",\"forall\",\"hiding\",\"import\",\"in\",\"inductive\",\"infix\",\"infixl\",\"infixr\",\"let\",\"module\",\"mutual\",\"open\",\"pattern\",\"postulate\",\"primitive\",\"private\",\"public\",\"quote\",\"quoteGoal\",\"quoteTerm\",\"record\",\"renaming\",\"rewrite\",\"syntax\",\"to\",\"unquote\",\"using\",\"where\",\"with\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(Prop|Set[\\226\\130\\128-\\226\\130\\137]+|Set[0-9]*)(?=([_;.\\\"(){}@]|\\\\s|$))\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(->|\\226\\134\\146|\\226\\136\\128|\\206\\187|:|=|\\\\|)(?=([_;.\\\"(){}@]|\\\\s|$))\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\d+\\\\.\\\\d+(?=([_;.\\\"(){}@]|\\\\s|$))\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[0-9]+(?=([_;.\\\"(){}@]|\\\\s|$))\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Agda\",\"char\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Agda\",\"string\")]},Rule {rMatcher = Detect2Chars '-' '-', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Agda\",\"comment\")]},Rule {rMatcher = Detect2Chars '{' '-', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Agda\",\"comments\")]},Rule {rMatcher = Detect2Chars '{' '!', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Agda\",\"hole\")]},Rule {rMatcher = AnyChar \"_;.\\\"(){}@\\\\\\\\\", rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[^_;.\\\"(){}@\\\\s]+\", 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}),(\"comment\",Context {cName = \"comment\", cSyntax = \"Agda\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"comments\",Context {cName = \"comments\", cSyntax = \"Agda\", cRules = [Rule {rMatcher = Detect2Chars '{' '-', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Agda\",\"comments\")]},Rule {rMatcher = Detect2Chars '-' '}', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"hole\",Context {cName = \"hole\", cSyntax = \"Agda\", cRules = [Rule {rMatcher = Detect2Chars '!' '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"string\",Context {cName = \"string\", cSyntax = \"Agda\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Matthias C. M. Troffaes\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [\"*.agda\"], sStartingContext = \"code\"}"
diff --git a/src/Skylighting/Syntax/Alert.hs b/src/Skylighting/Syntax/Alert.hs
--- a/src/Skylighting/Syntax/Alert.hs
+++ b/src/Skylighting/Syntax/Alert.hs
@@ -2,153 +2,6 @@
 module Skylighting.Syntax.Alert (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Alerts"
-  , sFilename = "alert.xml"
-  , sShortname = "Alert"
-  , sContexts =
-      fromList
-        [ ( "Normal Text"
-          , Context
-              { cName = "Normal Text"
-              , cSyntax = "Alerts"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "{{{"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "}}}"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "BEGIN"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "END"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True [ "ALERT" , "ATTENTION" , "DANGER" , "HACK" , "SECURITY" ])
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "BUG"
-                               , "CAUTION"
-                               , "DEPRECATED"
-                               , "FIXME"
-                               , "NOLINT"
-                               , "TASK"
-                               , "TBD"
-                               , "TODO"
-                               , "WARNING"
-                               ])
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True [ "###" , "NOTE" , "NOTICE" , "TEST" , "TESTING" ])
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Dominik Haumann (dhdev@gmx.de)"
-  , sVersion = "3"
-  , sLicense = "LGPLv2+"
-  , sExtensions = []
-  , sStartingContext = "Normal Text"
-  }
+syntax = read $! "Syntax {sName = \"Alerts\", sFilename = \"alert.xml\", sShortname = \"Alert\", sContexts = fromList [(\"Normal Text\",Context {cName = \"Normal Text\", cSyntax = \"Alerts\", cRules = [Rule {rMatcher = StringDetect \"{{{\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"}}}\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"BEGIN\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"END\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"ALERT\",\"ATTENTION\",\"DANGER\",\"HACK\",\"SECURITY\"])), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"BUG\",\"CAUTION\",\"DEPRECATED\",\"FIXME\",\"NOLINT\",\"TASK\",\"TBD\",\"TODO\",\"WARNING\"])), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"###\",\"NOTE\",\"NOTICE\",\"TEST\",\"TESTING\"])), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Dominik Haumann (dhdev@gmx.de)\", sVersion = \"3\", sLicense = \"LGPLv2+\", sExtensions = [], sStartingContext = \"Normal Text\"}"
diff --git a/src/Skylighting/Syntax/AlertIndent.hs b/src/Skylighting/Syntax/AlertIndent.hs
--- a/src/Skylighting/Syntax/AlertIndent.hs
+++ b/src/Skylighting/Syntax/AlertIndent.hs
@@ -2,46 +2,6 @@
 module Skylighting.Syntax.AlertIndent (syntax) where
 
 import Skylighting.Types
-import Data.Map
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Alerts_indent"
-  , sFilename = "alert_indent.xml"
-  , sShortname = "AlertIndent"
-  , sContexts =
-      fromList
-        [ ( "Normal Text"
-          , Context
-              { cName = "Normal Text"
-              , cSyntax = "Alerts_indent"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Dominik Haumann (dhdev@gmx.de)"
-  , sVersion = "3"
-  , sLicense = "LGPLv2+"
-  , sExtensions = []
-  , sStartingContext = "Normal Text"
-  }
+syntax = read $! "Syntax {sName = \"Alerts_indent\", sFilename = \"alert_indent.xml\", sShortname = \"AlertIndent\", sContexts = fromList [(\"Normal Text\",Context {cName = \"Normal Text\", cSyntax = \"Alerts_indent\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Dominik Haumann (dhdev@gmx.de)\", sVersion = \"3\", sLicense = \"LGPLv2+\", sExtensions = [], sStartingContext = \"Normal Text\"}"
diff --git a/src/Skylighting/Syntax/Apache.hs b/src/Skylighting/Syntax/Apache.hs
--- a/src/Skylighting/Syntax/Apache.hs
+++ b/src/Skylighting/Syntax/Apache.hs
@@ -2,1018 +2,6 @@
 module Skylighting.Syntax.Apache (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Apache Configuration"
-  , sFilename = "apache.xml"
-  , sShortname = "Apache"
-  , sContexts =
-      fromList
-        [ ( "Alert"
-          , Context
-              { cName = "Alert"
-              , cSyntax = "Apache Configuration"
-              , cRules = []
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Alternative Directives"
-          , Context
-              { cName = "Alternative Directives"
-              , cSyntax = "Apache Configuration"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "alert"
-                               , "All"
-                               , "Allow,Deny"
-                               , "always"
-                               , "Any"
-                               , "Ascending"
-                               , "auth"
-                               , "auth-int"
-                               , "AuthConfig"
-                               , "Basic"
-                               , "Block"
-                               , "CompatEnvVars"
-                               , "Connection"
-                               , "Cookie"
-                               , "Cookie2"
-                               , "crit"
-                               , "Date"
-                               , "DB"
-                               , "dbm:"
-                               , "dc:"
-                               , "debug"
-                               , "Default"
-                               , "Deny,Allow"
-                               , "Descending"
-                               , "Description"
-                               , "Digest"
-                               , "DNS"
-                               , "Double"
-                               , "EMail"
-                               , "emerg"
-                               , "error"
-                               , "ExecCGI"
-                               , "ExportCertData"
-                               , "FakeBasicAuth"
-                               , "Fallback"
-                               , "fcntl"
-                               , "fcntl:"
-                               , "file:"
-                               , "FileInfo"
-                               , "Filters"
-                               , "finding"
-                               , "flock"
-                               , "flock:"
-                               , "FollowSymLinks"
-                               , "formatted"
-                               , "Full"
-                               , "GDBM"
-                               , "GDSF"
-                               , "Handlers"
-                               , "Ignore"
-                               , "Includes"
-                               , "IncludesNOEXEC"
-                               , "Indexes"
-                               , "info"
-                               , "inherit"
-                               , "INode"
-                               , "IsError"
-                               , "Keep-Alive"
-                               , "Limit"
-                               , "LRU"
-                               , "Major"
-                               , "map"
-                               , "MD5"
-                               , "MD5-sess"
-                               , "Min"
-                               , "Minimal"
-                               , "Minor"
-                               , "MTime"
-                               , "MultiViews"
-                               , "Mutual-failure"
-                               , "Name"
-                               , "NDBM"
-                               , "NegotiatedOnly"
-                               , "Netscape"
-                               , "never"
-                               , "no"
-                               , "nocontent"
-                               , "None"
-                               , "nonenotnull"
-                               , "notice"
-                               , "Off"
-                               , "On"
-                               , "optional"
-                               , "optional_no_ca"
-                               , "Options"
-                               , "OptRenegotiate"
-                               , "OS"
-                               , "posixsem"
-                               , "Prefer"
-                               , "Prod"
-                               , "ProductOnly"
-                               , "Proxy-Authenticate"
-                               , "Proxy-Authorization"
-                               , "pthread"
-                               , "referer"
-                               , "Registry"
-                               , "Registry-Strict"
-                               , "require"
-                               , "RFC2109"
-                               , "RFC2965"
-                               , "Script"
-                               , "SDBM"
-                               , "searching"
-                               , "sem"
-                               , "semiformatted"
-                               , "shm:"
-                               , "Size"
-                               , "SSL"
-                               , "SSLv2"
-                               , "SSLv3"
-                               , "StartBody"
-                               , "STARTTLS"
-                               , "StdEnvVars"
-                               , "StrictRequire"
-                               , "SymLinksIfOwnerMatch"
-                               , "sysvsem"
-                               , "TE"
-                               , "TLS"
-                               , "TLSv1"
-                               , "Trailers"
-                               , "Transfer-Encoding"
-                               , "unformatted"
-                               , "Upgrade"
-                               , "warn"
-                               , "yes"
-                               ])
-                      , rAttribute = KeywordTok
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '+'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Apache Configuration" , "Comment Alert" )
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "Apache Configuration"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment Alert"
-          , Context
-              { cName = "Comment Alert"
-              , cSyntax = "Apache Configuration"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Apache Configuration" , "Alert" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Container Close"
-          , Context
-              { cName = "Container Close"
-              , cSyntax = "Apache Configuration"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Apache Configuration" , "Alert" ) ]
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Container Open"
-          , Context
-              { cName = "Container Open"
-              , cSyntax = "Apache Configuration"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Apache Configuration" , "Alert" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^#>]*"
-                              , reCompiled = Just (compileRegex True "[^#>]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AttributeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Apache Configuration" , "Comment Alert" )
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Integer Directives"
-          , Context
-              { cName = "Integer Directives"
-              , cSyntax = "Apache Configuration"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Apache Configuration" , "Integer Directives" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Apache Configuration" , "Integer Directives" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Apache Configuration" , "Comment Alert" )
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String Directives"
-          , Context
-              { cName = "String Directives"
-              , cSyntax = "Apache Configuration"
-              , 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 =
-                          IncludeRules ( "Apache Configuration" , "Comment Alert" )
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ExtensionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "apache"
-          , Context
-              { cName = "apache"
-              , cSyntax = "Apache Configuration"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "AcceptFilter"
-                               , "AccessFileName"
-                               , "Action"
-                               , "AddAlt"
-                               , "AddAltByEncoding"
-                               , "AddAltByType"
-                               , "AddCharset"
-                               , "AddDefaultCharset"
-                               , "AddDescription"
-                               , "AddEncoding"
-                               , "AddHandler"
-                               , "AddIcon"
-                               , "AddIconByEncoding"
-                               , "AddIconByType"
-                               , "AddInputFilter"
-                               , "AddLanguage"
-                               , "AddModuleInfo"
-                               , "AddOutputFilter"
-                               , "AddOutputFilterByType"
-                               , "AddType"
-                               , "Alias"
-                               , "AliasMatch"
-                               , "Allow"
-                               , "Anonymous"
-                               , "AuthBasicProvider"
-                               , "AuthDBMGroupFile"
-                               , "AuthDBMUserFile"
-                               , "AuthDigestDomain"
-                               , "AuthDigestFile"
-                               , "AuthDigestGroupFile"
-                               , "AuthDigestNonceFormat"
-                               , "AuthDigestProvider"
-                               , "AuthGroupFile"
-                               , "AuthLDAPBindDN"
-                               , "AuthLDAPBindPassword"
-                               , "AuthLDAPCharsetConfig"
-                               , "AuthLDAPGroupAttribute"
-                               , "AuthLDAPUrl"
-                               , "AuthName"
-                               , "AuthUserFile"
-                               , "BrowserMatch"
-                               , "BrowserMatchNoCase"
-                               , "BS2000Account"
-                               , "CacheDisable"
-                               , "CacheEnable"
-                               , "CacheFile"
-                               , "CacheGcClean"
-                               , "CacheGcUnused"
-                               , "CacheRoot"
-                               , "CGIMapExtension"
-                               , "CharsetDefault"
-                               , "CharsetOptions"
-                               , "CharsetSourceEnc"
-                               , "CookieDomain"
-                               , "CookieLog"
-                               , "CookieName"
-                               , "CoreDumpDirectory"
-                               , "CustomLog"
-                               , "Dav"
-                               , "DavGenericLockDB"
-                               , "DavLockDB"
-                               , "DBDParams"
-                               , "DBDPrepareSQL"
-                               , "DBDriver"
-                               , "DefaultIcon"
-                               , "DefaultLanguage"
-                               , "DefaultType"
-                               , "DeflateFilterNote"
-                               , "Deny"
-                               , "DirectoryIndex"
-                               , "DocumentRoot"
-                               , "ErrorDocument"
-                               , "ErrorLog"
-                               , "Example"
-                               , "ExpiresByType"
-                               , "ExpiresDefault"
-                               , "ExtFilterDefine"
-                               , "ExtFilterOptions"
-                               , "FilterChain"
-                               , "FilterDeclare"
-                               , "FilterProtocol"
-                               , "FilterProvider"
-                               , "FilterTrace"
-                               , "ForceType"
-                               , "ForensicLog"
-                               , "Group"
-                               , "Header"
-                               , "HeaderName"
-                               , "ImapBase"
-                               , "Include"
-                               , "IndexIgnore"
-                               , "IndexOptions"
-                               , "IndexStyleSheet"
-                               , "ISAPICacheFile"
-                               , "LanguagePriority"
-                               , "LDAPSharedCacheFile"
-                               , "LDAPTrustedCA"
-                               , "LDAPTrustedCAType"
-                               , "LDAPTrustedClientCert"
-                               , "LDAPTrustedGlobalCert"
-                               , "Listen"
-                               , "LoadFile"
-                               , "LoadModule"
-                               , "LockFile"
-                               , "LogFormat"
-                               , "MetaDir"
-                               , "MetaSuffix"
-                               , "MimeMagicFile"
-                               , "MMapFile"
-                               , "NameVirtualHost"
-                               , "NoProxy"
-                               , "NWSSLTrustedCerts"
-                               , "NWSSLUpgradeable"
-                               , "PassEnv"
-                               , "PidFile"
-                               , "ProxyBlock"
-                               , "ProxyDomain"
-                               , "ProxyPass"
-                               , "ProxyPassReverse"
-                               , "ProxyPassReverseCookieDomain"
-                               , "ProxyPassReverseCookiePath"
-                               , "ProxyRemote"
-                               , "ProxyRemoteMatch"
-                               , "ReadmeName"
-                               , "Redirect"
-                               , "RedirectMatch"
-                               , "RedirectPermanent"
-                               , "RedirectTemp"
-                               , "RemoveCharset"
-                               , "RemoveEncoding"
-                               , "RemoveHandler"
-                               , "RemoveInputFilter"
-                               , "RemoveLanguage"
-                               , "RemoveOutputFilter"
-                               , "RemoveType"
-                               , "RequestHeader"
-                               , "Require"
-                               , "RewriteBase"
-                               , "RewriteCond"
-                               , "RewriteLock"
-                               , "RewriteLog"
-                               , "RewriteMap"
-                               , "RewriteRule"
-                               , "ScoreBoardFile"
-                               , "Script"
-                               , "ScriptAlias"
-                               , "ScriptAliasMatch"
-                               , "ScriptLog"
-                               , "ScriptSock"
-                               , "SecureListen"
-                               , "ServerAdmin"
-                               , "ServerAlias"
-                               , "ServerName"
-                               , "ServerPath"
-                               , "ServerRoot"
-                               , "SetEnv"
-                               , "SetEnvIf"
-                               , "SetEnvIfNoCase"
-                               , "SetHandler"
-                               , "SetInputFilter"
-                               , "SetOutputFilter"
-                               , "SSIEndTag"
-                               , "SSIErrorMsg"
-                               , "SSIStartTag"
-                               , "SSITimeFormat"
-                               , "SSIUndefinedEcho"
-                               , "SSLCACertificateFile"
-                               , "SSLCACertificatePath"
-                               , "SSLCADNRequestFile"
-                               , "SSLCADNRequestPath"
-                               , "SSLCARevocationFile"
-                               , "SSLCARevocationPath"
-                               , "SSLCertificateChainFile"
-                               , "SSLCertificateFile"
-                               , "SSLCertificateKeyFile"
-                               , "SSLCipherSuite"
-                               , "SSLCryptoDevice"
-                               , "SSLHonorCiperOrder"
-                               , "SSLPassPhraseDialog"
-                               , "SSLProxyCACertificateFile"
-                               , "SSLProxyCACertificatePath"
-                               , "SSLProxyCARevocationFile"
-                               , "SSLProxyCARevocationPath"
-                               , "SSLProxyCipherSuite"
-                               , "SSLProxyMachineCertificateFile"
-                               , "SSLProxyMachineCertificatePath"
-                               , "SSLProxyProtocol"
-                               , "SSLRandomSeed"
-                               , "SSLRequire"
-                               , "SSLRequireSSL"
-                               , "SSLUserName"
-                               , "SuexecUserGroup"
-                               , "TransferLog"
-                               , "TypesConfig"
-                               , "UnsetEnv"
-                               , "User"
-                               , "UserDir"
-                               , "VirtualDocumentRoot"
-                               , "VirtualDocumentRootIP"
-                               , "VirtualScriptAlias"
-                               , "VirtualScriptAliasIP"
-                               , "Win32DisableAcceptEx"
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Apache Configuration" , "String Directives" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "AllowCONNECT"
-                               , "AssignUserID"
-                               , "AuthDigestNonceLifetime"
-                               , "AuthDigestShmemSize"
-                               , "CacheDefaultExpire"
-                               , "CacheDirLength"
-                               , "CacheDirLevels"
-                               , "CacheForceCompletion"
-                               , "CacheGcDaily"
-                               , "CacheGcInterval"
-                               , "CacheGcMemUsage"
-                               , "CacheLastModifiedFactor"
-                               , "CacheMaxExpire"
-                               , "CacheMaxFileSize"
-                               , "CacheMinFileSize"
-                               , "CacheSize"
-                               , "CacheTimeMargin"
-                               , "ChildPerUserID"
-                               , "CookieExpires"
-                               , "DavMinTimeout"
-                               , "DBDExptime"
-                               , "DBDKeep"
-                               , "DBDMax"
-                               , "DBDMin"
-                               , "DBDPersist"
-                               , "DeflateBufferSize"
-                               , "DeflateCompressionLevel"
-                               , "DeflateMemLevel"
-                               , "DeflateWindowSize"
-                               , "IdentityCheckTimeout"
-                               , "ISAPIReadAheadBuffer"
-                               , "KeepAliveTimeout"
-                               , "LDAPCacheEntries"
-                               , "LDAPCacheTTL"
-                               , "LDAPConnectionTimeout"
-                               , "LDAPOpCacheEntries"
-                               , "LDAPOpCacheTTL"
-                               , "LDAPSharedCacheSize"
-                               , "LimitInternalRecursion"
-                               , "LimitRequestBody"
-                               , "LimitRequestFields"
-                               , "LimitRequestFieldsize"
-                               , "LimitRequestLine"
-                               , "LimitXMLRequestBody"
-                               , "ListenBacklog"
-                               , "MaxClients"
-                               , "MaxKeepAliveRequests"
-                               , "MaxMemFree"
-                               , "MaxRequestsPerChild"
-                               , "MaxRequestsPerThread"
-                               , "MaxSpareServers"
-                               , "MaxSpareThreads"
-                               , "MaxThreads"
-                               , "MaxThreadsPerChild"
-                               , "MCacheMaxObjectCount"
-                               , "MCacheMaxObjectSize"
-                               , "MCacheMaxStreamingBuffer"
-                               , "MCacheMinObjectSize"
-                               , "MCacheSize"
-                               , "MinSpareServers"
-                               , "MinSpareThreads"
-                               , "NumServers"
-                               , "ProxyIOBufferSize"
-                               , "ProxyMaxForwards"
-                               , "ProxyReceiveBufferSize"
-                               , "ProxyTimeout"
-                               , "RewriteLogLevel"
-                               , "RLimitCPU"
-                               , "RLimitMEM"
-                               , "RLimitNPROC"
-                               , "ScriptLogBuffer"
-                               , "ScriptLogLength"
-                               , "SendBufferSize"
-                               , "ServerLimit"
-                               , "SSLProxyVerifyDepth"
-                               , "SSLSessionCacheTimeout"
-                               , "SSLVerifyDepth"
-                               , "StartServers"
-                               , "StartThreads"
-                               , "ThreadLimit"
-                               , "ThreadsPerChild"
-                               , "ThreadStackSize"
-                               , "TimeOut"
-                               ])
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Apache Configuration" , "Integer Directives" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "AcceptMutex"
-                               , "AcceptPathInfo"
-                               , "AllowEncodedSlashes"
-                               , "AllowOverride"
-                               , "Anonymous_Authoritative"
-                               , "Anonymous_LogEmail"
-                               , "Anonymous_MustGiveEmail"
-                               , "Anonymous_NoUserID"
-                               , "Anonymous_VerifyEmail"
-                               , "AuthAuthoritative"
-                               , "AuthBasicAuthoritative"
-                               , "AuthBasicProvider"
-                               , "AuthDBMAuthoritative"
-                               , "AuthDBMType"
-                               , "AuthDefaultAuthoritative"
-                               , "AuthDigestAlgorithm"
-                               , "AuthDigestNcCheck"
-                               , "AuthDigestQop"
-                               , "AuthLDAPAuthoritative"
-                               , "AuthLDAPCompareDNOnServer"
-                               , "AuthLDAPDereferenceAliases"
-                               , "AuthLDAPEnabled"
-                               , "AuthLDAPFrontPageHack"
-                               , "AuthLDAPGroupAttributeIsDN"
-                               , "AuthLDAPRemoteUserIsDN"
-                               , "AuthType"
-                               , "AuthzDBMAuthoritative"
-                               , "AuthzDBMType"
-                               , "AuthzDefaultAuthoritative"
-                               , "AuthzGroupFileAuthoritative"
-                               , "AuthzLDAPAuthoritative"
-                               , "AuthzOwnerAuthoritative"
-                               , "AuthzUserAuthoritative"
-                               , "BufferedLogs"
-                               , "CacheExpiryCheck"
-                               , "CacheIgnoreCacheControl"
-                               , "CacheIgnoreHeaders"
-                               , "CacheIgnoreNoLastMod"
-                               , "CacheNegotiatedDocs"
-                               , "CacheStoreNoStore"
-                               , "CacheStorePrivate"
-                               , "CheckSpelling"
-                               , "ContentDigest"
-                               , "CookieStyle"
-                               , "CookieTracking"
-                               , "CoreDumpDirectory"
-                               , "CustomLog"
-                               , "DavDepthInfinity"
-                               , "DirectorySlash"
-                               , "DumpIOInput"
-                               , "DumpIOOutput"
-                               , "EnableExceptionHook"
-                               , "EnableMMAP"
-                               , "EnableSendfile"
-                               , "ExpiresActive"
-                               , "ExtendedStatus"
-                               , "FileETag"
-                               , "ForceLanguagePriority"
-                               , "HostnameLookups"
-                               , "IdentityCheck"
-                               , "ImapDefault"
-                               , "ImapMenu"
-                               , "IndexOrderDefault"
-                               , "ISAPIAppendLogToErrors"
-                               , "ISAPIAppendLogToQuery"
-                               , "ISAPIFakeAsync"
-                               , "ISAPILogNotSupported"
-                               , "KeepAlive"
-                               , "LDAPTrustedMode"
-                               , "LDAPVerifyServerCert"
-                               , "LogLevel"
-                               , "MCacheRemovalAlgorithm"
-                               , "MetaFiles"
-                               , "ModMimeUsePathInfo"
-                               , "MultiviewsMatch"
-                               , "Options"
-                               , "Order"
-                               , "ProtocolEcho"
-                               , "ProxyBadHeader"
-                               , "ProxyErrorOverride"
-                               , "ProxyPreserveHost"
-                               , "ProxyRequests"
-                               , "ProxyVia"
-                               , "RewriteEngine"
-                               , "RewriteOptions"
-                               , "Satisfy"
-                               , "ScriptInterpreterSource"
-                               , "ServerSignature"
-                               , "ServerTokens"
-                               , "SSLEngine"
-                               , "SSLMutex"
-                               , "SSLOptions"
-                               , "SSLProtocol"
-                               , "SSLProxyEngine"
-                               , "SSLProxyVerify"
-                               , "SSLSessionCache"
-                               , "SSLVerifyClient"
-                               , "UseCanonicalName"
-                               , "XBitHack"
-                               ])
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Apache Configuration" , "Alternative Directives" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\w+"
-                              , reCompiled = Just (compileRegex True "<\\w+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Apache Configuration" , "Container Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</\\w+"
-                              , reCompiled = Just (compileRegex True "</\\w+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Apache Configuration" , "Container Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Apache Configuration" , "Comment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Jan Janssen (medhefgo@googlemail.com)"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions =
-      [ "httpd.conf"
-      , "httpd2.conf"
-      , "apache.conf"
-      , "apache2.conf"
-      , ".htaccess*"
-      , ".htpasswd*"
-      ]
-  , sStartingContext = "apache"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Apache Configuration\", sFilename = \"apache.xml\", sShortname = \"Apache\", sContexts = fromList [(\"Alert\",Context {cName = \"Alert\", cSyntax = \"Apache Configuration\", cRules = [], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Alternative Directives\",Context {cName = \"Alternative Directives\", cSyntax = \"Apache Configuration\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"alert\",\"All\",\"Allow,Deny\",\"always\",\"Any\",\"Ascending\",\"auth\",\"auth-int\",\"AuthConfig\",\"Basic\",\"Block\",\"CompatEnvVars\",\"Connection\",\"Cookie\",\"Cookie2\",\"crit\",\"Date\",\"DB\",\"dbm:\",\"dc:\",\"debug\",\"Default\",\"Deny,Allow\",\"Descending\",\"Description\",\"Digest\",\"DNS\",\"Double\",\"EMail\",\"emerg\",\"error\",\"ExecCGI\",\"ExportCertData\",\"FakeBasicAuth\",\"Fallback\",\"fcntl\",\"fcntl:\",\"file:\",\"FileInfo\",\"Filters\",\"finding\",\"flock\",\"flock:\",\"FollowSymLinks\",\"formatted\",\"Full\",\"GDBM\",\"GDSF\",\"Handlers\",\"Ignore\",\"Includes\",\"IncludesNOEXEC\",\"Indexes\",\"info\",\"inherit\",\"INode\",\"IsError\",\"Keep-Alive\",\"Limit\",\"LRU\",\"Major\",\"map\",\"MD5\",\"MD5-sess\",\"Min\",\"Minimal\",\"Minor\",\"MTime\",\"MultiViews\",\"Mutual-failure\",\"Name\",\"NDBM\",\"NegotiatedOnly\",\"Netscape\",\"never\",\"no\",\"nocontent\",\"None\",\"nonenotnull\",\"notice\",\"Off\",\"On\",\"optional\",\"optional_no_ca\",\"Options\",\"OptRenegotiate\",\"OS\",\"posixsem\",\"Prefer\",\"Prod\",\"ProductOnly\",\"Proxy-Authenticate\",\"Proxy-Authorization\",\"pthread\",\"referer\",\"Registry\",\"Registry-Strict\",\"require\",\"RFC2109\",\"RFC2965\",\"Script\",\"SDBM\",\"searching\",\"sem\",\"semiformatted\",\"shm:\",\"Size\",\"SSL\",\"SSLv2\",\"SSLv3\",\"StartBody\",\"STARTTLS\",\"StdEnvVars\",\"StrictRequire\",\"SymLinksIfOwnerMatch\",\"sysvsem\",\"TE\",\"TLS\",\"TLSv1\",\"Trailers\",\"Transfer-Encoding\",\"unformatted\",\"Upgrade\",\"warn\",\"yes\"])), rAttribute = KeywordTok, 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 = []},Rule {rMatcher = DetectChar '+', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Apache Configuration\",\"Comment Alert\"), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CharTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment\",Context {cName = \"Comment\", cSyntax = \"Apache Configuration\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},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 = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment Alert\",Context {cName = \"Comment Alert\", cSyntax = \"Apache Configuration\", cRules = [Rule {rMatcher = DetectChar '#', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Apache Configuration\",\"Alert\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Container Close\",Context {cName = \"Container Close\", cSyntax = \"Apache Configuration\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Apache Configuration\",\"Alert\")]}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Container Open\",Context {cName = \"Container Open\", cSyntax = \"Apache Configuration\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Apache Configuration\",\"Alert\")]},Rule {rMatcher = RegExpr (RE {reString = \"[^#>]*\", reCaseSensitive = True}), rAttribute = AttributeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Apache Configuration\",\"Comment Alert\"), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Integer Directives\",Context {cName = \"Integer Directives\", cSyntax = \"Apache Configuration\", cRules = [Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Apache Configuration\",\"Integer Directives\")]},Rule {rMatcher = Int, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Apache Configuration\",\"Integer Directives\")]},Rule {rMatcher = IncludeRules (\"Apache Configuration\",\"Comment Alert\"), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CharTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String Directives\",Context {cName = \"String Directives\", cSyntax = \"Apache Configuration\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[^#]*\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Apache Configuration\",\"Comment Alert\"), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ExtensionTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"apache\",Context {cName = \"apache\", cSyntax = \"Apache Configuration\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"AcceptFilter\",\"AccessFileName\",\"Action\",\"AddAlt\",\"AddAltByEncoding\",\"AddAltByType\",\"AddCharset\",\"AddDefaultCharset\",\"AddDescription\",\"AddEncoding\",\"AddHandler\",\"AddIcon\",\"AddIconByEncoding\",\"AddIconByType\",\"AddInputFilter\",\"AddLanguage\",\"AddModuleInfo\",\"AddOutputFilter\",\"AddOutputFilterByType\",\"AddType\",\"Alias\",\"AliasMatch\",\"Allow\",\"Anonymous\",\"AuthBasicProvider\",\"AuthDBMGroupFile\",\"AuthDBMUserFile\",\"AuthDigestDomain\",\"AuthDigestFile\",\"AuthDigestGroupFile\",\"AuthDigestNonceFormat\",\"AuthDigestProvider\",\"AuthGroupFile\",\"AuthLDAPBindDN\",\"AuthLDAPBindPassword\",\"AuthLDAPCharsetConfig\",\"AuthLDAPGroupAttribute\",\"AuthLDAPUrl\",\"AuthName\",\"AuthUserFile\",\"BrowserMatch\",\"BrowserMatchNoCase\",\"BS2000Account\",\"CacheDisable\",\"CacheEnable\",\"CacheFile\",\"CacheGcClean\",\"CacheGcUnused\",\"CacheRoot\",\"CGIMapExtension\",\"CharsetDefault\",\"CharsetOptions\",\"CharsetSourceEnc\",\"CookieDomain\",\"CookieLog\",\"CookieName\",\"CoreDumpDirectory\",\"CustomLog\",\"Dav\",\"DavGenericLockDB\",\"DavLockDB\",\"DBDParams\",\"DBDPrepareSQL\",\"DBDriver\",\"DefaultIcon\",\"DefaultLanguage\",\"DefaultType\",\"DeflateFilterNote\",\"Deny\",\"DirectoryIndex\",\"DocumentRoot\",\"ErrorDocument\",\"ErrorLog\",\"Example\",\"ExpiresByType\",\"ExpiresDefault\",\"ExtFilterDefine\",\"ExtFilterOptions\",\"FilterChain\",\"FilterDeclare\",\"FilterProtocol\",\"FilterProvider\",\"FilterTrace\",\"ForceType\",\"ForensicLog\",\"Group\",\"Header\",\"HeaderName\",\"ImapBase\",\"Include\",\"IndexIgnore\",\"IndexOptions\",\"IndexStyleSheet\",\"ISAPICacheFile\",\"LanguagePriority\",\"LDAPSharedCacheFile\",\"LDAPTrustedCA\",\"LDAPTrustedCAType\",\"LDAPTrustedClientCert\",\"LDAPTrustedGlobalCert\",\"Listen\",\"LoadFile\",\"LoadModule\",\"LockFile\",\"LogFormat\",\"MetaDir\",\"MetaSuffix\",\"MimeMagicFile\",\"MMapFile\",\"NameVirtualHost\",\"NoProxy\",\"NWSSLTrustedCerts\",\"NWSSLUpgradeable\",\"PassEnv\",\"PidFile\",\"ProxyBlock\",\"ProxyDomain\",\"ProxyPass\",\"ProxyPassReverse\",\"ProxyPassReverseCookieDomain\",\"ProxyPassReverseCookiePath\",\"ProxyRemote\",\"ProxyRemoteMatch\",\"ReadmeName\",\"Redirect\",\"RedirectMatch\",\"RedirectPermanent\",\"RedirectTemp\",\"RemoveCharset\",\"RemoveEncoding\",\"RemoveHandler\",\"RemoveInputFilter\",\"RemoveLanguage\",\"RemoveOutputFilter\",\"RemoveType\",\"RequestHeader\",\"Require\",\"RewriteBase\",\"RewriteCond\",\"RewriteLock\",\"RewriteLog\",\"RewriteMap\",\"RewriteRule\",\"ScoreBoardFile\",\"Script\",\"ScriptAlias\",\"ScriptAliasMatch\",\"ScriptLog\",\"ScriptSock\",\"SecureListen\",\"ServerAdmin\",\"ServerAlias\",\"ServerName\",\"ServerPath\",\"ServerRoot\",\"SetEnv\",\"SetEnvIf\",\"SetEnvIfNoCase\",\"SetHandler\",\"SetInputFilter\",\"SetOutputFilter\",\"SSIEndTag\",\"SSIErrorMsg\",\"SSIStartTag\",\"SSITimeFormat\",\"SSIUndefinedEcho\",\"SSLCACertificateFile\",\"SSLCACertificatePath\",\"SSLCADNRequestFile\",\"SSLCADNRequestPath\",\"SSLCARevocationFile\",\"SSLCARevocationPath\",\"SSLCertificateChainFile\",\"SSLCertificateFile\",\"SSLCertificateKeyFile\",\"SSLCipherSuite\",\"SSLCryptoDevice\",\"SSLHonorCiperOrder\",\"SSLPassPhraseDialog\",\"SSLProxyCACertificateFile\",\"SSLProxyCACertificatePath\",\"SSLProxyCARevocationFile\",\"SSLProxyCARevocationPath\",\"SSLProxyCipherSuite\",\"SSLProxyMachineCertificateFile\",\"SSLProxyMachineCertificatePath\",\"SSLProxyProtocol\",\"SSLRandomSeed\",\"SSLRequire\",\"SSLRequireSSL\",\"SSLUserName\",\"SuexecUserGroup\",\"TransferLog\",\"TypesConfig\",\"UnsetEnv\",\"User\",\"UserDir\",\"VirtualDocumentRoot\",\"VirtualDocumentRootIP\",\"VirtualScriptAlias\",\"VirtualScriptAliasIP\",\"Win32DisableAcceptEx\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Apache Configuration\",\"String Directives\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"AllowCONNECT\",\"AssignUserID\",\"AuthDigestNonceLifetime\",\"AuthDigestShmemSize\",\"CacheDefaultExpire\",\"CacheDirLength\",\"CacheDirLevels\",\"CacheForceCompletion\",\"CacheGcDaily\",\"CacheGcInterval\",\"CacheGcMemUsage\",\"CacheLastModifiedFactor\",\"CacheMaxExpire\",\"CacheMaxFileSize\",\"CacheMinFileSize\",\"CacheSize\",\"CacheTimeMargin\",\"ChildPerUserID\",\"CookieExpires\",\"DavMinTimeout\",\"DBDExptime\",\"DBDKeep\",\"DBDMax\",\"DBDMin\",\"DBDPersist\",\"DeflateBufferSize\",\"DeflateCompressionLevel\",\"DeflateMemLevel\",\"DeflateWindowSize\",\"IdentityCheckTimeout\",\"ISAPIReadAheadBuffer\",\"KeepAliveTimeout\",\"LDAPCacheEntries\",\"LDAPCacheTTL\",\"LDAPConnectionTimeout\",\"LDAPOpCacheEntries\",\"LDAPOpCacheTTL\",\"LDAPSharedCacheSize\",\"LimitInternalRecursion\",\"LimitRequestBody\",\"LimitRequestFields\",\"LimitRequestFieldsize\",\"LimitRequestLine\",\"LimitXMLRequestBody\",\"ListenBacklog\",\"MaxClients\",\"MaxKeepAliveRequests\",\"MaxMemFree\",\"MaxRequestsPerChild\",\"MaxRequestsPerThread\",\"MaxSpareServers\",\"MaxSpareThreads\",\"MaxThreads\",\"MaxThreadsPerChild\",\"MCacheMaxObjectCount\",\"MCacheMaxObjectSize\",\"MCacheMaxStreamingBuffer\",\"MCacheMinObjectSize\",\"MCacheSize\",\"MinSpareServers\",\"MinSpareThreads\",\"NumServers\",\"ProxyIOBufferSize\",\"ProxyMaxForwards\",\"ProxyReceiveBufferSize\",\"ProxyTimeout\",\"RewriteLogLevel\",\"RLimitCPU\",\"RLimitMEM\",\"RLimitNPROC\",\"ScriptLogBuffer\",\"ScriptLogLength\",\"SendBufferSize\",\"ServerLimit\",\"SSLProxyVerifyDepth\",\"SSLSessionCacheTimeout\",\"SSLVerifyDepth\",\"StartServers\",\"StartThreads\",\"ThreadLimit\",\"ThreadsPerChild\",\"ThreadStackSize\",\"TimeOut\"])), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Apache Configuration\",\"Integer Directives\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"AcceptMutex\",\"AcceptPathInfo\",\"AllowEncodedSlashes\",\"AllowOverride\",\"Anonymous_Authoritative\",\"Anonymous_LogEmail\",\"Anonymous_MustGiveEmail\",\"Anonymous_NoUserID\",\"Anonymous_VerifyEmail\",\"AuthAuthoritative\",\"AuthBasicAuthoritative\",\"AuthBasicProvider\",\"AuthDBMAuthoritative\",\"AuthDBMType\",\"AuthDefaultAuthoritative\",\"AuthDigestAlgorithm\",\"AuthDigestNcCheck\",\"AuthDigestQop\",\"AuthLDAPAuthoritative\",\"AuthLDAPCompareDNOnServer\",\"AuthLDAPDereferenceAliases\",\"AuthLDAPEnabled\",\"AuthLDAPFrontPageHack\",\"AuthLDAPGroupAttributeIsDN\",\"AuthLDAPRemoteUserIsDN\",\"AuthType\",\"AuthzDBMAuthoritative\",\"AuthzDBMType\",\"AuthzDefaultAuthoritative\",\"AuthzGroupFileAuthoritative\",\"AuthzLDAPAuthoritative\",\"AuthzOwnerAuthoritative\",\"AuthzUserAuthoritative\",\"BufferedLogs\",\"CacheExpiryCheck\",\"CacheIgnoreCacheControl\",\"CacheIgnoreHeaders\",\"CacheIgnoreNoLastMod\",\"CacheNegotiatedDocs\",\"CacheStoreNoStore\",\"CacheStorePrivate\",\"CheckSpelling\",\"ContentDigest\",\"CookieStyle\",\"CookieTracking\",\"CoreDumpDirectory\",\"CustomLog\",\"DavDepthInfinity\",\"DirectorySlash\",\"DumpIOInput\",\"DumpIOOutput\",\"EnableExceptionHook\",\"EnableMMAP\",\"EnableSendfile\",\"ExpiresActive\",\"ExtendedStatus\",\"FileETag\",\"ForceLanguagePriority\",\"HostnameLookups\",\"IdentityCheck\",\"ImapDefault\",\"ImapMenu\",\"IndexOrderDefault\",\"ISAPIAppendLogToErrors\",\"ISAPIAppendLogToQuery\",\"ISAPIFakeAsync\",\"ISAPILogNotSupported\",\"KeepAlive\",\"LDAPTrustedMode\",\"LDAPVerifyServerCert\",\"LogLevel\",\"MCacheRemovalAlgorithm\",\"MetaFiles\",\"ModMimeUsePathInfo\",\"MultiviewsMatch\",\"Options\",\"Order\",\"ProtocolEcho\",\"ProxyBadHeader\",\"ProxyErrorOverride\",\"ProxyPreserveHost\",\"ProxyRequests\",\"ProxyVia\",\"RewriteEngine\",\"RewriteOptions\",\"Satisfy\",\"ScriptInterpreterSource\",\"ServerSignature\",\"ServerTokens\",\"SSLEngine\",\"SSLMutex\",\"SSLOptions\",\"SSLProtocol\",\"SSLProxyEngine\",\"SSLProxyVerify\",\"SSLSessionCache\",\"SSLVerifyClient\",\"UseCanonicalName\",\"XBitHack\"])), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Apache Configuration\",\"Alternative Directives\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\w+\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Apache Configuration\",\"Container Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"</\\\\w+\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Apache Configuration\",\"Container Close\")]},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Apache Configuration\",\"Comment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Jan Janssen (medhefgo@googlemail.com)\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [\"httpd.conf\",\"httpd2.conf\",\"apache.conf\",\"apache2.conf\",\".htaccess*\",\".htpasswd*\"], sStartingContext = \"apache\"}"
diff --git a/src/Skylighting/Syntax/Asn1.hs b/src/Skylighting/Syntax/Asn1.hs
--- a/src/Skylighting/Syntax/Asn1.hs
+++ b/src/Skylighting/Syntax/Asn1.hs
@@ -2,128 +2,6 @@
 module Skylighting.Syntax.Asn1 (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "ASN.1"
-  , sFilename = "asn1.xml"
-  , sShortname = "Asn1"
-  , sContexts =
-      fromList
-        [ ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "ASN.1"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal Text"
-          , Context
-              { cName = "Normal Text"
-              , cSyntax = "ASN.1"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "APPLICATION"
-                               , "BEGIN"
-                               , "DEFAULT"
-                               , "DEFINITIONS"
-                               , "END"
-                               , "EXPORTS"
-                               , "FALSE"
-                               , "FROM"
-                               , "IMPORTS"
-                               , "OPTIONAL"
-                               , "PRIVATE"
-                               , "TRUE"
-                               , "UNIVERSAL"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "BOOLEAN"
-                               , "CHOICE"
-                               , "ENUMERATED"
-                               , "INTEGER"
-                               , "NULL"
-                               , "OCTET STRING"
-                               , "OF"
-                               , "REAL"
-                               , "SEQUENCE"
-                               , "SET"
-                               , "StringStore"
-                               , "VisibleString"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , 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 ( "ASN.1" , "Comment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Philippe Rigault"
-  , sVersion = "2"
-  , sLicense = "GPL"
-  , sExtensions = [ "*.asn" , "*.asn1" ]
-  , sStartingContext = "Normal Text"
-  }
+syntax = read $! "Syntax {sName = \"ASN.1\", sFilename = \"asn1.xml\", sShortname = \"Asn1\", sContexts = fromList [(\"Comment\",Context {cName = \"Comment\", cSyntax = \"ASN.1\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal Text\",Context {cName = \"Normal Text\", cSyntax = \"ASN.1\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"APPLICATION\",\"BEGIN\",\"DEFAULT\",\"DEFINITIONS\",\"END\",\"EXPORTS\",\"FALSE\",\"FROM\",\"IMPORTS\",\"OPTIONAL\",\"PRIVATE\",\"TRUE\",\"UNIVERSAL\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"BOOLEAN\",\"CHOICE\",\"ENUMERATED\",\"INTEGER\",\"NULL\",\"OCTET STRING\",\"OF\",\"REAL\",\"SEQUENCE\",\"SET\",\"StringStore\",\"VisibleString\"])), rAttribute = DataTypeTok, 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 (\"ASN.1\",\"Comment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Philippe Rigault\", sVersion = \"2\", sLicense = \"GPL\", sExtensions = [\"*.asn\",\"*.asn1\"], sStartingContext = \"Normal Text\"}"
diff --git a/src/Skylighting/Syntax/Asp.hs b/src/Skylighting/Syntax/Asp.hs
--- a/src/Skylighting/Syntax/Asp.hs
+++ b/src/Skylighting/Syntax/Asp.hs
@@ -2,1963 +2,6 @@
 module Skylighting.Syntax.Asp (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "ASP"
-  , sFilename = "asp.xml"
-  , sShortname = "Asp"
-  , sContexts =
-      fromList
-        [ ( "asp_onelinecomment"
-          , Context
-              { cName = "asp_onelinecomment"
-              , cSyntax = "ASP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "%>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "aspsource"
-          , Context
-              { cName = "aspsource"
-              , cSyntax = "ASP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "%>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\s*\\/\\s*script\\s*>"
-                              , reCompiled = Just (compileRegex False "<\\s*\\/\\s*script\\s*>")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "asp_onelinecomment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "doublequotestring" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "singlequotestring" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '&'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 =
-                          RegExpr
-                            RE
-                              { reString = "[0123456789]*\\.\\.\\.[0123456789]*"
-                              , reCompiled =
-                                  Just (compileRegex True "[0123456789]*\\.\\.\\.[0123456789]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ";()}{:,[]"
-                      , rAttribute = OtherTok
-                      , 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 True [])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\belseif\\b"
-                              , reCompiled = Just (compileRegex False "\\belseif\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\belse\\b"
-                              , reCompiled = Just (compileRegex False "\\belse\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bif\\b"
-                              , reCompiled = Just (compileRegex False "\\bif\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bend if\\b"
-                              , reCompiled = Just (compileRegex False "\\bend if\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bexit function\\b"
-                              , reCompiled = Just (compileRegex False "\\bexit function\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bfunction\\b"
-                              , reCompiled = Just (compileRegex False "\\bfunction\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bend function\\b"
-                              , reCompiled = Just (compileRegex False "\\bend function\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bexit sub\\b"
-                              , reCompiled = Just (compileRegex False "\\bexit sub\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bsub\\b"
-                              , reCompiled = Just (compileRegex False "\\bsub\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bend sub\\b"
-                              , reCompiled = Just (compileRegex False "\\bend sub\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bclass\\b"
-                              , reCompiled = Just (compileRegex False "\\bclass\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bend class\\b"
-                              , reCompiled = Just (compileRegex False "\\bend class\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bexit do\\b"
-                              , reCompiled = Just (compileRegex False "\\bexit do\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bdo(\\s+(while))?\\b"
-                              , reCompiled = Just (compileRegex False "\\bdo(\\s+(while))?\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bloop\\b"
-                              , reCompiled = Just (compileRegex False "\\bloop\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bexit while\\b"
-                              , reCompiled = Just (compileRegex False "\\bexit while\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bwhile\\b"
-                              , reCompiled = Just (compileRegex False "\\bwhile\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bwend\\b"
-                              , reCompiled = Just (compileRegex False "\\bwend\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bexit for\\b"
-                              , reCompiled = Just (compileRegex False "\\bexit for\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bfor\\b"
-                              , reCompiled = Just (compileRegex False "\\bfor\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bnext\\b"
-                              , reCompiled = Just (compileRegex False "\\bnext\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bselect case\\b"
-                              , reCompiled = Just (compileRegex False "\\bselect case\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bend select\\b"
-                              , reCompiled = Just (compileRegex False "\\bend select\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "and"
-                               , "call"
-                               , "class"
-                               , "close"
-                               , "const"
-                               , "dim"
-                               , "eof"
-                               , "erase"
-                               , "execute"
-                               , "false"
-                               , "function"
-                               , "me"
-                               , "movenext"
-                               , "new"
-                               , "not"
-                               , "nothing"
-                               , "open"
-                               , "or"
-                               , "preserve"
-                               , "private"
-                               , "public"
-                               , "randomize"
-                               , "redim"
-                               , "set"
-                               , "sub"
-                               , "true"
-                               , "with"
-                               , "xor"
-                               ])
-                      , rAttribute = KeywordTok
-                      , 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
-                               [ "case"
-                               , "continue"
-                               , "do"
-                               , "each"
-                               , "else"
-                               , "elseif"
-                               , "end if"
-                               , "end select"
-                               , "exit"
-                               , "for"
-                               , "if"
-                               , "in"
-                               , "loop"
-                               , "next"
-                               , "select"
-                               , "then"
-                               , "to"
-                               , "until"
-                               , "wend"
-                               , "while"
-                               ])
-                      , rAttribute = ControlFlowTok
-                      , 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
-                               [ "abs"
-                               , "Add"
-                               , "AddFolders"
-                               , "array"
-                               , "asc"
-                               , "atn"
-                               , "BuildPath"
-                               , "cbool"
-                               , "cbyte"
-                               , "ccur"
-                               , "cdate"
-                               , "cdbl"
-                               , "chr"
-                               , "cint"
-                               , "Clear"
-                               , "clng"
-                               , "Close"
-                               , "cookies"
-                               , "Copy"
-                               , "CopyFile"
-                               , "CopyFolder"
-                               , "cos"
-                               , "CreateFolder"
-                               , "createobject"
-                               , "CreateTextFile"
-                               , "csng"
-                               , "cstr"
-                               , "date"
-                               , "dateadd"
-                               , "DateDiff"
-                               , "DatePart"
-                               , "DateSerial"
-                               , "DateValue"
-                               , "Day"
-                               , "Delete"
-                               , "DeleteFile"
-                               , "DeleteFolder"
-                               , "DriveExists"
-                               , "end"
-                               , "Exists"
-                               , "Exp"
-                               , "FileExists"
-                               , "Filter"
-                               , "Fix"
-                               , "FolderExists"
-                               , "form"
-                               , "FormatCurrency"
-                               , "FormatDateTime"
-                               , "FormatNumber"
-                               , "FormatPercent"
-                               , "GetAbsolutePathName"
-                               , "GetBaseName"
-                               , "GetDrive"
-                               , "GetDriveName"
-                               , "GetExtensionName"
-                               , "GetFile"
-                               , "GetFileName"
-                               , "GetFolder"
-                               , "GetObject"
-                               , "GetParentFolderName"
-                               , "GetSpecialFolder"
-                               , "GetTempName"
-                               , "Hex"
-                               , "Hour"
-                               , "InputBox"
-                               , "InStr"
-                               , "InStrRev"
-                               , "Int"
-                               , "IsArray"
-                               , "IsDate"
-                               , "IsEmpty"
-                               , "IsNull"
-                               , "IsNumeric"
-                               , "IsObject"
-                               , "item"
-                               , "Items"
-                               , "Join"
-                               , "Keys"
-                               , "LBound"
-                               , "LCase"
-                               , "Left"
-                               , "Len"
-                               , "LoadPicture"
-                               , "Log"
-                               , "LTrim"
-                               , "Mid"
-                               , "Minute"
-                               , "Month"
-                               , "MonthName"
-                               , "Move"
-                               , "MoveFile"
-                               , "MoveFolder"
-                               , "MsgBox"
-                               , "Now"
-                               , "Oct"
-                               , "OpenAsTextStream"
-                               , "OpenTextFile"
-                               , "querystring"
-                               , "Raise"
-                               , "Read"
-                               , "ReadAll"
-                               , "ReadLine"
-                               , "redirect"
-                               , "Remove"
-                               , "RemoveAll"
-                               , "Replace"
-                               , "request"
-                               , "response"
-                               , "RGB"
-                               , "Right"
-                               , "Rnd"
-                               , "Round"
-                               , "RTrim"
-                               , "ScriptEngine"
-                               , "ScriptEngineBuildVersion"
-                               , "ScriptEngineMajorVersion"
-                               , "ScriptEngineMinorVersion"
-                               , "Second"
-                               , "server"
-                               , "servervariables"
-                               , "session"
-                               , "Sgn"
-                               , "Sin"
-                               , "Skip"
-                               , "SkipLine"
-                               , "Space"
-                               , "Split"
-                               , "Sqr"
-                               , "StrComp"
-                               , "String"
-                               , "StrReverse"
-                               , "Tan"
-                               , "Time"
-                               , "Timer"
-                               , "TimeSerial"
-                               , "TimeValue"
-                               , "Trim"
-                               , "TypeName"
-                               , "UBound"
-                               , "UCase"
-                               , "VarType"
-                               , "Weekday"
-                               , "WeekdayName"
-                               , "write"
-                               , "WriteBlankLines"
-                               , "WriteLine"
-                               , "Year"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "doublequotestring"
-          , Context
-              { cName = "doublequotestring"
-              , cSyntax = "ASP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '"' '"'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[0-7]{1,3}"
-                              , reCompiled = Just (compileRegex True "\\\\[0-7]{1,3}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\x[0-9A-Fa-f]{1,2}"
-                              , reCompiled = Just (compileRegex True "\\\\x[0-9A-Fa-f]{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "htmlcomment"
-          , Context
-              { cName = "htmlcomment"
-              , cSyntax = "ASP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<%"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "aspsource" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<%"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "aspsource" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "-->"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*=\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*=\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "identifiers" ) ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "htmltag"
-          , Context
-              { cName = "htmltag"
-              , cSyntax = "ASP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<%"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "aspsource" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<%"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "aspsource" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*=\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*=\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "identifiers" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "identifiers"
-          , Context
-              { cName = "identifiers"
-              , cSyntax = "ASP"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*#?[a-zA-Z0-9]*"
-                              , reCompiled = Just (compileRegex True "\\s*#?[a-zA-Z0-9]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "types1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "types2" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "nosource"
-          , Context
-              { cName = "nosource"
-              , cSyntax = "ASP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<%"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "aspsource" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\s*script\\s*language=\"VBScript\"[^>]*>"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False "<\\s*script\\s*language=\"VBScript\"[^>]*>")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "aspsource" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\s*script(\\s|>)"
-                              , reCompiled = Just (compileRegex False "<\\s*script(\\s|>)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "scripts" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\s*\\/?\\s*[a-zA-Z_:][a-zA-Z0-9._:-]*"
-                              , reCompiled =
-                                  Just (compileRegex True "<\\s*\\/?\\s*[a-zA-Z_:][a-zA-Z0-9._:-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "htmltag" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "htmlcomment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "scripts"
-          , Context
-              { cName = "scripts"
-              , cSyntax = "ASP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "scripts_onelinecomment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "twolinecomment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "case"
-                               , "continue"
-                               , "do"
-                               , "each"
-                               , "else"
-                               , "elseif"
-                               , "end if"
-                               , "end select"
-                               , "exit"
-                               , "for"
-                               , "if"
-                               , "in"
-                               , "loop"
-                               , "next"
-                               , "select"
-                               , "then"
-                               , "to"
-                               , "until"
-                               , "wend"
-                               , "while"
-                               ])
-                      , rAttribute = ControlFlowTok
-                      , 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
-                               [ "and"
-                               , "call"
-                               , "class"
-                               , "close"
-                               , "const"
-                               , "dim"
-                               , "eof"
-                               , "erase"
-                               , "execute"
-                               , "false"
-                               , "function"
-                               , "me"
-                               , "movenext"
-                               , "new"
-                               , "not"
-                               , "nothing"
-                               , "open"
-                               , "or"
-                               , "preserve"
-                               , "private"
-                               , "public"
-                               , "randomize"
-                               , "redim"
-                               , "set"
-                               , "sub"
-                               , "true"
-                               , "with"
-                               , "xor"
-                               ])
-                      , rAttribute = KeywordTok
-                      , 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
-                               [ "abs"
-                               , "Add"
-                               , "AddFolders"
-                               , "array"
-                               , "asc"
-                               , "atn"
-                               , "BuildPath"
-                               , "cbool"
-                               , "cbyte"
-                               , "ccur"
-                               , "cdate"
-                               , "cdbl"
-                               , "chr"
-                               , "cint"
-                               , "Clear"
-                               , "clng"
-                               , "Close"
-                               , "cookies"
-                               , "Copy"
-                               , "CopyFile"
-                               , "CopyFolder"
-                               , "cos"
-                               , "CreateFolder"
-                               , "createobject"
-                               , "CreateTextFile"
-                               , "csng"
-                               , "cstr"
-                               , "date"
-                               , "dateadd"
-                               , "DateDiff"
-                               , "DatePart"
-                               , "DateSerial"
-                               , "DateValue"
-                               , "Day"
-                               , "Delete"
-                               , "DeleteFile"
-                               , "DeleteFolder"
-                               , "DriveExists"
-                               , "end"
-                               , "Exists"
-                               , "Exp"
-                               , "FileExists"
-                               , "Filter"
-                               , "Fix"
-                               , "FolderExists"
-                               , "form"
-                               , "FormatCurrency"
-                               , "FormatDateTime"
-                               , "FormatNumber"
-                               , "FormatPercent"
-                               , "GetAbsolutePathName"
-                               , "GetBaseName"
-                               , "GetDrive"
-                               , "GetDriveName"
-                               , "GetExtensionName"
-                               , "GetFile"
-                               , "GetFileName"
-                               , "GetFolder"
-                               , "GetObject"
-                               , "GetParentFolderName"
-                               , "GetSpecialFolder"
-                               , "GetTempName"
-                               , "Hex"
-                               , "Hour"
-                               , "InputBox"
-                               , "InStr"
-                               , "InStrRev"
-                               , "Int"
-                               , "IsArray"
-                               , "IsDate"
-                               , "IsEmpty"
-                               , "IsNull"
-                               , "IsNumeric"
-                               , "IsObject"
-                               , "item"
-                               , "Items"
-                               , "Join"
-                               , "Keys"
-                               , "LBound"
-                               , "LCase"
-                               , "Left"
-                               , "Len"
-                               , "LoadPicture"
-                               , "Log"
-                               , "LTrim"
-                               , "Mid"
-                               , "Minute"
-                               , "Month"
-                               , "MonthName"
-                               , "Move"
-                               , "MoveFile"
-                               , "MoveFolder"
-                               , "MsgBox"
-                               , "Now"
-                               , "Oct"
-                               , "OpenAsTextStream"
-                               , "OpenTextFile"
-                               , "querystring"
-                               , "Raise"
-                               , "Read"
-                               , "ReadAll"
-                               , "ReadLine"
-                               , "redirect"
-                               , "Remove"
-                               , "RemoveAll"
-                               , "Replace"
-                               , "request"
-                               , "response"
-                               , "RGB"
-                               , "Right"
-                               , "Rnd"
-                               , "Round"
-                               , "RTrim"
-                               , "ScriptEngine"
-                               , "ScriptEngineBuildVersion"
-                               , "ScriptEngineMajorVersion"
-                               , "ScriptEngineMinorVersion"
-                               , "Second"
-                               , "server"
-                               , "servervariables"
-                               , "session"
-                               , "Sgn"
-                               , "Sin"
-                               , "Skip"
-                               , "SkipLine"
-                               , "Space"
-                               , "Split"
-                               , "Sqr"
-                               , "StrComp"
-                               , "String"
-                               , "StrReverse"
-                               , "Tan"
-                               , "Time"
-                               , "Timer"
-                               , "TimeSerial"
-                               , "TimeValue"
-                               , "Trim"
-                               , "TypeName"
-                               , "UBound"
-                               , "UCase"
-                               , "VarType"
-                               , "Weekday"
-                               , "WeekdayName"
-                               , "write"
-                               , "WriteBlankLines"
-                               , "WriteLine"
-                               , "Year"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<%"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "aspsource" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\s*\\/\\s*script\\s*>"
-                              , reCompiled = Just (compileRegex False "<\\s*\\/\\s*script\\s*>")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "doublequotestring" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "singlequotestring" ) ]
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ";()}{:,[]"
-                      , rAttribute = OtherTok
-                      , 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 True [])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "scripts_onelinecomment"
-          , Context
-              { cName = "scripts_onelinecomment"
-              , cSyntax = "ASP"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\s*\\/\\s*script\\s*>"
-                              , reCompiled = Just (compileRegex False "<\\s*\\/\\s*script\\s*>")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "singlequotestring"
-          , Context
-              { cName = "singlequotestring"
-              , cSyntax = "ASP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\'' '\''
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "twolinecomment"
-          , Context
-              { cName = "twolinecomment"
-              , cSyntax = "ASP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "types1"
-          , Context
-              { cName = "types1"
-              , cSyntax = "ASP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<%"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "aspsource" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<%"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "aspsource" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "types2"
-          , Context
-              { cName = "types2"
-              , cSyntax = "ASP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<%"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "aspsource" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<%"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ASP" , "aspsource" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Antonio Salazar (savedfastcool@gmail.com)"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.asp" ]
-  , sStartingContext = "nosource"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"ASP\", sFilename = \"asp.xml\", sShortname = \"Asp\", sContexts = fromList [(\"asp_onelinecomment\",Context {cName = \"asp_onelinecomment\", cSyntax = \"ASP\", cRules = [Rule {rMatcher = StringDetect \"%>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"aspsource\",Context {cName = \"aspsource\", cSyntax = \"ASP\", cRules = [Rule {rMatcher = StringDetect \"%>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\s*\\\\/\\\\s*script\\\\s*>\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\\'', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"asp_onelinecomment\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"doublequotestring\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"singlequotestring\")]},Rule {rMatcher = DetectChar '&', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[0123456789]*\\\\.\\\\.\\\\.[0123456789]*\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \";()}{:,[]\", rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\belseif\\\\b\", reCaseSensitive = False}), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\belse\\\\b\", reCaseSensitive = False}), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bif\\\\b\", reCaseSensitive = False}), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bend if\\\\b\", reCaseSensitive = False}), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bexit function\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bfunction\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bend function\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bexit sub\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bsub\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bend sub\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bclass\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bend class\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bexit do\\\\b\", reCaseSensitive = False}), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bdo(\\\\s+(while))?\\\\b\", reCaseSensitive = False}), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bloop\\\\b\", reCaseSensitive = False}), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bexit while\\\\b\", reCaseSensitive = False}), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bwhile\\\\b\", reCaseSensitive = False}), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bwend\\\\b\", reCaseSensitive = False}), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bexit for\\\\b\", reCaseSensitive = False}), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bfor\\\\b\", reCaseSensitive = False}), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bnext\\\\b\", reCaseSensitive = False}), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bselect case\\\\b\", reCaseSensitive = False}), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bend select\\\\b\", reCaseSensitive = False}), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"and\",\"call\",\"class\",\"close\",\"const\",\"dim\",\"eof\",\"erase\",\"execute\",\"false\",\"function\",\"me\",\"movenext\",\"new\",\"not\",\"nothing\",\"open\",\"or\",\"preserve\",\"private\",\"public\",\"randomize\",\"redim\",\"set\",\"sub\",\"true\",\"with\",\"xor\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"case\",\"continue\",\"do\",\"each\",\"else\",\"elseif\",\"end if\",\"end select\",\"exit\",\"for\",\"if\",\"in\",\"loop\",\"next\",\"select\",\"then\",\"to\",\"until\",\"wend\",\"while\"])), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"abs\",\"Add\",\"AddFolders\",\"array\",\"asc\",\"atn\",\"BuildPath\",\"cbool\",\"cbyte\",\"ccur\",\"cdate\",\"cdbl\",\"chr\",\"cint\",\"Clear\",\"clng\",\"Close\",\"cookies\",\"Copy\",\"CopyFile\",\"CopyFolder\",\"cos\",\"CreateFolder\",\"createobject\",\"CreateTextFile\",\"csng\",\"cstr\",\"date\",\"dateadd\",\"DateDiff\",\"DatePart\",\"DateSerial\",\"DateValue\",\"Day\",\"Delete\",\"DeleteFile\",\"DeleteFolder\",\"DriveExists\",\"end\",\"Exists\",\"Exp\",\"FileExists\",\"Filter\",\"Fix\",\"FolderExists\",\"form\",\"FormatCurrency\",\"FormatDateTime\",\"FormatNumber\",\"FormatPercent\",\"GetAbsolutePathName\",\"GetBaseName\",\"GetDrive\",\"GetDriveName\",\"GetExtensionName\",\"GetFile\",\"GetFileName\",\"GetFolder\",\"GetObject\",\"GetParentFolderName\",\"GetSpecialFolder\",\"GetTempName\",\"Hex\",\"Hour\",\"InputBox\",\"InStr\",\"InStrRev\",\"Int\",\"IsArray\",\"IsDate\",\"IsEmpty\",\"IsNull\",\"IsNumeric\",\"IsObject\",\"item\",\"Items\",\"Join\",\"Keys\",\"LBound\",\"LCase\",\"Left\",\"Len\",\"LoadPicture\",\"Log\",\"LTrim\",\"Mid\",\"Minute\",\"Month\",\"MonthName\",\"Move\",\"MoveFile\",\"MoveFolder\",\"MsgBox\",\"Now\",\"Oct\",\"OpenAsTextStream\",\"OpenTextFile\",\"querystring\",\"Raise\",\"Read\",\"ReadAll\",\"ReadLine\",\"redirect\",\"Remove\",\"RemoveAll\",\"Replace\",\"request\",\"response\",\"RGB\",\"Right\",\"Rnd\",\"Round\",\"RTrim\",\"ScriptEngine\",\"ScriptEngineBuildVersion\",\"ScriptEngineMajorVersion\",\"ScriptEngineMinorVersion\",\"Second\",\"server\",\"servervariables\",\"session\",\"Sgn\",\"Sin\",\"Skip\",\"SkipLine\",\"Space\",\"Split\",\"Sqr\",\"StrComp\",\"String\",\"StrReverse\",\"Tan\",\"Time\",\"Timer\",\"TimeSerial\",\"TimeValue\",\"Trim\",\"TypeName\",\"UBound\",\"UCase\",\"VarType\",\"Weekday\",\"WeekdayName\",\"write\",\"WriteBlankLines\",\"WriteLine\",\"Year\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"doublequotestring\",Context {cName = \"doublequotestring\", cSyntax = \"ASP\", cRules = [Rule {rMatcher = Detect2Chars '\"' '\"', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[0-7]{1,3}\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\x[0-9A-Fa-f]{1,2}\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"htmlcomment\",Context {cName = \"htmlcomment\", cSyntax = \"ASP\", cRules = [Rule {rMatcher = StringDetect \"<%\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"aspsource\")]},Rule {rMatcher = StringDetect \"<%\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"aspsource\")]},Rule {rMatcher = StringDetect \"-->\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*=\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"identifiers\")]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"htmltag\",Context {cName = \"htmltag\", cSyntax = \"ASP\", cRules = [Rule {rMatcher = Detect2Chars '/' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"<%\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"aspsource\")]},Rule {rMatcher = StringDetect \"<%\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"aspsource\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*=\\\\s*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"identifiers\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"identifiers\",Context {cName = \"identifiers\", cSyntax = \"ASP\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*#?[a-zA-Z0-9]*\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\\'', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"types1\")]},Rule {rMatcher = DetectChar '\"', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"types2\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"nosource\",Context {cName = \"nosource\", cSyntax = \"ASP\", cRules = [Rule {rMatcher = StringDetect \"<%\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"aspsource\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\s*script\\\\s*language=\\\"VBScript\\\"[^>]*>\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"aspsource\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\s*script(\\\\s|>)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"scripts\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\s*\\\\/?\\\\s*[a-zA-Z_:][a-zA-Z0-9._:-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"htmltag\")]},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"htmlcomment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"scripts\",Context {cName = \"scripts\", cSyntax = \"ASP\", cRules = [Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"scripts_onelinecomment\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"twolinecomment\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"case\",\"continue\",\"do\",\"each\",\"else\",\"elseif\",\"end if\",\"end select\",\"exit\",\"for\",\"if\",\"in\",\"loop\",\"next\",\"select\",\"then\",\"to\",\"until\",\"wend\",\"while\"])), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"and\",\"call\",\"class\",\"close\",\"const\",\"dim\",\"eof\",\"erase\",\"execute\",\"false\",\"function\",\"me\",\"movenext\",\"new\",\"not\",\"nothing\",\"open\",\"or\",\"preserve\",\"private\",\"public\",\"randomize\",\"redim\",\"set\",\"sub\",\"true\",\"with\",\"xor\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"abs\",\"Add\",\"AddFolders\",\"array\",\"asc\",\"atn\",\"BuildPath\",\"cbool\",\"cbyte\",\"ccur\",\"cdate\",\"cdbl\",\"chr\",\"cint\",\"Clear\",\"clng\",\"Close\",\"cookies\",\"Copy\",\"CopyFile\",\"CopyFolder\",\"cos\",\"CreateFolder\",\"createobject\",\"CreateTextFile\",\"csng\",\"cstr\",\"date\",\"dateadd\",\"DateDiff\",\"DatePart\",\"DateSerial\",\"DateValue\",\"Day\",\"Delete\",\"DeleteFile\",\"DeleteFolder\",\"DriveExists\",\"end\",\"Exists\",\"Exp\",\"FileExists\",\"Filter\",\"Fix\",\"FolderExists\",\"form\",\"FormatCurrency\",\"FormatDateTime\",\"FormatNumber\",\"FormatPercent\",\"GetAbsolutePathName\",\"GetBaseName\",\"GetDrive\",\"GetDriveName\",\"GetExtensionName\",\"GetFile\",\"GetFileName\",\"GetFolder\",\"GetObject\",\"GetParentFolderName\",\"GetSpecialFolder\",\"GetTempName\",\"Hex\",\"Hour\",\"InputBox\",\"InStr\",\"InStrRev\",\"Int\",\"IsArray\",\"IsDate\",\"IsEmpty\",\"IsNull\",\"IsNumeric\",\"IsObject\",\"item\",\"Items\",\"Join\",\"Keys\",\"LBound\",\"LCase\",\"Left\",\"Len\",\"LoadPicture\",\"Log\",\"LTrim\",\"Mid\",\"Minute\",\"Month\",\"MonthName\",\"Move\",\"MoveFile\",\"MoveFolder\",\"MsgBox\",\"Now\",\"Oct\",\"OpenAsTextStream\",\"OpenTextFile\",\"querystring\",\"Raise\",\"Read\",\"ReadAll\",\"ReadLine\",\"redirect\",\"Remove\",\"RemoveAll\",\"Replace\",\"request\",\"response\",\"RGB\",\"Right\",\"Rnd\",\"Round\",\"RTrim\",\"ScriptEngine\",\"ScriptEngineBuildVersion\",\"ScriptEngineMajorVersion\",\"ScriptEngineMinorVersion\",\"Second\",\"server\",\"servervariables\",\"session\",\"Sgn\",\"Sin\",\"Skip\",\"SkipLine\",\"Space\",\"Split\",\"Sqr\",\"StrComp\",\"String\",\"StrReverse\",\"Tan\",\"Time\",\"Timer\",\"TimeSerial\",\"TimeValue\",\"Trim\",\"TypeName\",\"UBound\",\"UCase\",\"VarType\",\"Weekday\",\"WeekdayName\",\"write\",\"WriteBlankLines\",\"WriteLine\",\"Year\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<%\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"aspsource\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\s*\\\\/\\\\s*script\\\\s*>\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"doublequotestring\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"singlequotestring\")]},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \";()}{:,[]\", rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"scripts_onelinecomment\",Context {cName = \"scripts_onelinecomment\", cSyntax = \"ASP\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<\\\\s*\\\\/\\\\s*script\\\\s*>\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"singlequotestring\",Context {cName = \"singlequotestring\", cSyntax = \"ASP\", cRules = [Rule {rMatcher = Detect2Chars '\\'' '\\'', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"twolinecomment\",Context {cName = \"twolinecomment\", cSyntax = \"ASP\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"types1\",Context {cName = \"types1\", cSyntax = \"ASP\", cRules = [Rule {rMatcher = StringDetect \"<%\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"aspsource\")]},Rule {rMatcher = StringDetect \"<%\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"aspsource\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"types2\",Context {cName = \"types2\", cSyntax = \"ASP\", cRules = [Rule {rMatcher = StringDetect \"<%\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"aspsource\")]},Rule {rMatcher = StringDetect \"<%\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ASP\",\"aspsource\")]},Rule {rMatcher = DetectChar '\"', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Antonio Salazar (savedfastcool@gmail.com)\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [\"*.asp\"], sStartingContext = \"nosource\"}"
diff --git a/src/Skylighting/Syntax/Ats.hs b/src/Skylighting/Syntax/Ats.hs
--- a/src/Skylighting/Syntax/Ats.hs
+++ b/src/Skylighting/Syntax/Ats.hs
@@ -2,715 +2,6 @@
 module Skylighting.Syntax.Ats (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "ATS"
-  , sFilename = "ats.xml"
-  , sShortname = "Ats"
-  , sContexts =
-      fromList
-        [ ( "Existential Context"
-          , Context
-              { cName = "Existential Context"
-              , cSyntax = "ATS"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Function Keyword Context"
-          , Context
-              { cName = "Function Keyword Context"
-              , cSyntax = "ATS"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ATS" , "Universal Context" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ATS" , "Existential Context" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "ATS" , "Normal" )
-                      , 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
-              }
-          )
-        , ( "Multiline C-style Comment"
-          , Context
-              { cName = "Multiline C-style Comment"
-              , cSyntax = "ATS"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Multiline Comment"
-          , Context
-              { cName = "Multiline Comment"
-              , cSyntax = "ATS"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' ')'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '(' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ATS" , "Multiline Comment" ) ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "ATS"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "////"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ATS" , "Rest-of-file Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '(' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ATS" , "Multiline Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ATS" , "Multiline C-style Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "ATS" , "Singleline C++ style Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '.' '<'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "ATS" , "Termination Metrics Context" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "`\\s*[A-Za-z\\300-\\326\\330-\\366\\370-\\377_][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "`\\s*[A-Za-z\\300-\\326\\330-\\366\\370-\\377_][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "absprop"
-                               , "abst0ype"
-                               , "abstype"
-                               , "absview"
-                               , "absviewt0ype"
-                               , "absviewtype"
-                               , "absvt0ype"
-                               , "absvtype"
-                               , "and"
-                               , "as"
-                               , "assume"
-                               , "begin"
-                               , "break"
-                               , "classdec"
-                               , "continue"
-                               , "dataprop"
-                               , "datasort"
-                               , "datatype"
-                               , "dataview"
-                               , "dataviewtype"
-                               , "datavtype"
-                               , "do"
-                               , "dynload"
-                               , "else"
-                               , "end"
-                               , "exception"
-                               , "extern"
-                               , "extval"
-                               , "extype"
-                               , "for"
-                               , "if"
-                               , "in"
-                               , "infix"
-                               , "infixl"
-                               , "infixr"
-                               , "let"
-                               , "local"
-                               , "macdef"
-                               , "macrodef"
-                               , "nonfix"
-                               , "of"
-                               , "op"
-                               , "overload"
-                               , "postfix"
-                               , "prefix"
-                               , "propdef"
-                               , "prval"
-                               , "prvar"
-                               , "rec"
-                               , "scase"
-                               , "sif"
-                               , "sortdef"
-                               , "sta"
-                               , "stacst"
-                               , "stadef"
-                               , "staload"
-                               , "stavar"
-                               , "symelim"
-                               , "symintr"
-                               , "then"
-                               , "tkindef"
-                               , "try"
-                               , "type"
-                               , "typedef"
-                               , "val"
-                               , "var"
-                               , "viewdef"
-                               , "viewtypedef"
-                               , "vtypedef"
-                               , "when"
-                               , "where"
-                               , "while"
-                               , "with"
-                               , "withprop"
-                               , "withtype"
-                               , "withview"
-                               , "withviewtype"
-                               , "withvtype"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "castfn"
-                               , "fix"
-                               , "fn"
-                               , "fnx"
-                               , "fun"
-                               , "implement"
-                               , "implmnt"
-                               , "lam"
-                               , "llam"
-                               , "praxi"
-                               , "prfn"
-                               , "prfun"
-                               , "primplement"
-                               , "primplmnt"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ATS" , "Function Keyword Context" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "#assert"
-                               , "#define"
-                               , "#elif"
-                               , "#elifdef"
-                               , "#elifndef"
-                               , "#else"
-                               , "#endif"
-                               , "#error"
-                               , "#if"
-                               , "#ifdef"
-                               , "#ifndef"
-                               , "#include"
-                               , "#print"
-                               , "#then"
-                               , "#undef"
-                               , "$arrpsz"
-                               , "$arrptrsize"
-                               , "$delay"
-                               , "$effmask"
-                               , "$effmask_all"
-                               , "$effmask_exn"
-                               , "$effmask_ntm"
-                               , "$effmask_ref"
-                               , "$effmask_wrt"
-                               , "$extern"
-                               , "$extkind"
-                               , "$extval"
-                               , "$extype"
-                               , "$extype_struct"
-                               , "$ldelay"
-                               , "$list"
-                               , "$list_t"
-                               , "$list_vt"
-                               , "$lst"
-                               , "$lst_t"
-                               , "$lst_vt"
-                               , "$myfilename"
-                               , "$myfunction"
-                               , "$mylocation"
-                               , "$raise"
-                               , "$rec"
-                               , "$rec_t"
-                               , "$rec_vt"
-                               , "$record"
-                               , "$record_t"
-                               , "$record_vt"
-                               , "$showtype"
-                               , "$tup"
-                               , "$tup_t"
-                               , "$tup_vt"
-                               , "$tuple"
-                               , "$tuple_t"
-                               , "$tuple_vt"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "[A-Za-z\\300-\\326\\330-\\366\\370-\\377_][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "[A-Za-z\\300-\\326\\330-\\366\\370-\\377_][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "~?0[xX][0-9A-Fa-f_]+"
-                              , reCompiled = Just (compileRegex True "~?0[xX][0-9A-Fa-f_]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "~?[0-9][0-9_]*((\\.([0-9][0-9_]*)?([eE][-+]?[0-9][0-9_]*)?)|([eE][-+]?[0-9][0-9_]*))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "~?[0-9][0-9_]*((\\.([0-9][0-9_]*)?([eE][-+]?[0-9][0-9_]*)?)|([eE][-+]?[0-9][0-9_]*))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "~?[0-9][0-9_]*"
-                              , reCompiled = Just (compileRegex True "~?[0-9][0-9_]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Rest-of-file Comment"
-          , Context
-              { cName = "Rest-of-file Comment"
-              , cSyntax = "ATS"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Singleline C++ style Comment"
-          , Context
-              { cName = "Singleline C++ style Comment"
-              , cSyntax = "ATS"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String Context"
-          , Context
-              { cName = "String Context"
-              , cSyntax = "ATS"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\\\[ntbr'\"\\\\]|\\\\[0-9]{3}|\\\\x[0-9A-Fa-f]{2})"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(\\\\[ntbr'\"\\\\]|\\\\[0-9]{3}|\\\\x[0-9A-Fa-f]{2})")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\$"
-                              , reCompiled = Just (compileRegex True "\\\\$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Termination Metrics Context"
-          , Context
-              { cName = "Termination Metrics Context"
-              , cSyntax = "ATS"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '>' '.'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Universal Context"
-          , Context
-              { cName = "Universal Context"
-              , cSyntax = "ATS"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Kiwamu Okabe (kiwamu@debian.or.jp)"
-  , sVersion = "0.01"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.dats" , "*.sats" , "*.hats" ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"ATS\", sFilename = \"ats.xml\", sShortname = \"Ats\", sContexts = fromList [(\"Existential Context\",Context {cName = \"Existential Context\", cSyntax = \"ATS\", cRules = [Rule {rMatcher = DetectChar ']', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Function Keyword Context\",Context {cName = \"Function Keyword Context\", cSyntax = \"ATS\", cRules = [Rule {rMatcher = DetectChar '=', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '{', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ATS\",\"Universal Context\")]},Rule {rMatcher = DetectChar '[', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ATS\",\"Existential Context\")]},Rule {rMatcher = IncludeRules (\"ATS\",\"Normal\"), 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}),(\"Multiline C-style Comment\",Context {cName = \"Multiline C-style Comment\", cSyntax = \"ATS\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Multiline Comment\",Context {cName = \"Multiline Comment\", cSyntax = \"ATS\", cRules = [Rule {rMatcher = Detect2Chars '*' ')', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '(' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ATS\",\"Multiline Comment\")]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"ATS\", cRules = [Rule {rMatcher = StringDetect \"////\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ATS\",\"Rest-of-file Comment\")]},Rule {rMatcher = Detect2Chars '(' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ATS\",\"Multiline Comment\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ATS\",\"Multiline C-style Comment\")]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ATS\",\"Singleline C++ style Comment\")]},Rule {rMatcher = Detect2Chars '.' '<', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ATS\",\"Termination Metrics Context\")]},Rule {rMatcher = RegExpr (RE {reString = \"`\\\\s*[A-Za-z\\\\300-\\\\326\\\\330-\\\\366\\\\370-\\\\377_][A-Za-z\\\\300-\\\\326\\\\330-\\\\366\\\\370-\\\\3770-9_']*\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"absprop\",\"abst0ype\",\"abstype\",\"absview\",\"absviewt0ype\",\"absviewtype\",\"absvt0ype\",\"absvtype\",\"and\",\"as\",\"assume\",\"begin\",\"break\",\"classdec\",\"continue\",\"dataprop\",\"datasort\",\"datatype\",\"dataview\",\"dataviewtype\",\"datavtype\",\"do\",\"dynload\",\"else\",\"end\",\"exception\",\"extern\",\"extval\",\"extype\",\"for\",\"if\",\"in\",\"infix\",\"infixl\",\"infixr\",\"let\",\"local\",\"macdef\",\"macrodef\",\"nonfix\",\"of\",\"op\",\"overload\",\"postfix\",\"prefix\",\"propdef\",\"prval\",\"prvar\",\"rec\",\"scase\",\"sif\",\"sortdef\",\"sta\",\"stacst\",\"stadef\",\"staload\",\"stavar\",\"symelim\",\"symintr\",\"then\",\"tkindef\",\"try\",\"type\",\"typedef\",\"val\",\"var\",\"viewdef\",\"viewtypedef\",\"vtypedef\",\"when\",\"where\",\"while\",\"with\",\"withprop\",\"withtype\",\"withview\",\"withviewtype\",\"withvtype\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"castfn\",\"fix\",\"fn\",\"fnx\",\"fun\",\"implement\",\"implmnt\",\"lam\",\"llam\",\"praxi\",\"prfn\",\"prfun\",\"primplement\",\"primplmnt\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ATS\",\"Function Keyword Context\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"#assert\",\"#define\",\"#elif\",\"#elifdef\",\"#elifndef\",\"#else\",\"#endif\",\"#error\",\"#if\",\"#ifdef\",\"#ifndef\",\"#include\",\"#print\",\"#then\",\"#undef\",\"$arrpsz\",\"$arrptrsize\",\"$delay\",\"$effmask\",\"$effmask_all\",\"$effmask_exn\",\"$effmask_ntm\",\"$effmask_ref\",\"$effmask_wrt\",\"$extern\",\"$extkind\",\"$extval\",\"$extype\",\"$extype_struct\",\"$ldelay\",\"$list\",\"$list_t\",\"$list_vt\",\"$lst\",\"$lst_t\",\"$lst_vt\",\"$myfilename\",\"$myfunction\",\"$mylocation\",\"$raise\",\"$rec\",\"$rec_t\",\"$rec_vt\",\"$record\",\"$record_t\",\"$record_vt\",\"$showtype\",\"$tup\",\"$tup_t\",\"$tup_vt\",\"$tuple\",\"$tuple_t\",\"$tuple_vt\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[A-Za-z\\\\300-\\\\326\\\\330-\\\\366\\\\370-\\\\377_][A-Za-z\\\\300-\\\\326\\\\330-\\\\366\\\\370-\\\\3770-9_']*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"~?0[xX][0-9A-Fa-f_]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"~?[0-9][0-9_]*((\\\\.([0-9][0-9_]*)?([eE][-+]?[0-9][0-9_]*)?)|([eE][-+]?[0-9][0-9_]*))\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"~?[0-9][0-9_]*\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Rest-of-file Comment\",Context {cName = \"Rest-of-file Comment\", cSyntax = \"ATS\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Singleline C++ style Comment\",Context {cName = \"Singleline C++ style Comment\", cSyntax = \"ATS\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String Context\",Context {cName = \"String Context\", cSyntax = \"ATS\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\\\\\[ntbr'\\\"\\\\\\\\]|\\\\\\\\[0-9]{3}|\\\\\\\\x[0-9A-Fa-f]{2})\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\$\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Termination Metrics Context\",Context {cName = \"Termination Metrics Context\", cSyntax = \"ATS\", cRules = [Rule {rMatcher = Detect2Chars '>' '.', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Universal Context\",Context {cName = \"Universal Context\", cSyntax = \"ATS\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Kiwamu Okabe (kiwamu@debian.or.jp)\", sVersion = \"0.01\", sLicense = \"LGPL\", sExtensions = [\"*.dats\",\"*.sats\",\"*.hats\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Awk.hs b/src/Skylighting/Syntax/Awk.hs
--- a/src/Skylighting/Syntax/Awk.hs
+++ b/src/Skylighting/Syntax/Awk.hs
@@ -2,1088 +2,6 @@
 module Skylighting.Syntax.Awk (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "AWK"
-  , sFilename = "awk.xml"
-  , sShortname = "Awk"
-  , sContexts =
-      fromList
-        [ ( "Block"
-          , Context
-              { cName = "Block"
-              , cSyntax = "AWK"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "AWK" , "Block" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "AWK" , "base" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "BEGIN" , "END" ])
-                      , 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
-              }
-          )
-        , ( "CharClass"
-          , Context
-              { cName = "CharClass"
-              , cSyntax = "AWK"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(alpha|alnum|blank|cntrl|digit|graph|lower|punct|space|upper|xdigit)(?=:\\])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(alpha|alnum|blank|cntrl|digit|graph|lower|punct|space|upper|xdigit)(?=:\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars ':' ']'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CheckRange"
-          , Context
-              { cName = "CheckRange"
-              , cSyntax = "AWK"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*,\\s*(?=/)"
-                              , reCompiled = Just (compileRegex True "\\s*,\\s*(?=/)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "AWK" , "RangePattern" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop , Pop , Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "AWK"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Escape"
-          , Context
-              { cName = "Escape"
-              , cSyntax = "AWK"
-              , 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 = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "InChar"
-          , Context
-              { cName = "InChar"
-              , cSyntax = "AWK"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "AWK" , "Regex Escape" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '-' ']'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "AWK" , "Regex Escape" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '-'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[:(?=[_\\w][_\\d\\w]*:\\])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\[:(?=[_\\w][_\\d\\w]*:\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "AWK" , "CharClass" ) ]
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Match"
-          , Context
-              { cName = "Match"
-              , cSyntax = "AWK"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '^'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "AWK" , "Regex" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '/'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "AWK" , "Regex" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "MatchPattern"
-          , Context
-              { cName = "MatchPattern"
-              , cSyntax = "AWK"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '^'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "AWK" , "RegexPattern" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '/'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "AWK" , "RegexPattern" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "Pattern"
-          , Context
-              { cName = "Pattern"
-              , cSyntax = "AWK"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "AWK" , "Block" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '/'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "AWK" , "MatchPattern" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "AWK" , "base" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "BEGIN" , "END" ])
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Pattern2"
-          , Context
-              { cName = "Pattern2"
-              , cSyntax = "AWK"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "AWK" , "regex" )
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '/'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "RangePattern"
-          , Context
-              { cName = "RangePattern"
-              , cSyntax = "AWK"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '^'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "AWK" , "Pattern2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '/'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "AWK" , "Pattern2" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop , Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop , Pop , Pop , Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "Regex"
-          , Context
-              { cName = "Regex"
-              , cSyntax = "AWK"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "AWK" , "regex" )
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '/'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Regex Escape"
-          , Context
-              { cName = "Regex Escape"
-              , cSyntax = "AWK"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "."
-                              , reCompiled = Just (compileRegex True ".")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "RegexChar"
-          , Context
-              { cName = "RegexChar"
-              , cSyntax = "AWK"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '-' ']'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "AWK" , "InChar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "-]"
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "AWK" , "InChar" ) ]
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Push ( "AWK" , "InChar" ) ]
-              , cDynamic = False
-              }
-          )
-        , ( "RegexPattern"
-          , Context
-              { cName = "RegexPattern"
-              , cSyntax = "AWK"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "AWK" , "regex" )
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '/'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "AWK" , "CheckRange" ) ]
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "AWK"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "AWK" , "Escape" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "base"
-          , Context
-              { cName = "base"
-              , cSyntax = "AWK"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "AWK" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '~'
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "AWK" , "Match" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "AWK" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "!%&*+,-./:;<=>?^|"
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "break"
-                               , "continue"
-                               , "do"
-                               , "else"
-                               , "exit"
-                               , "for"
-                               , "function"
-                               , "getline"
-                               , "if"
-                               , "in"
-                               , "next"
-                               , "print"
-                               , "printf"
-                               , "return"
-                               , "while"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ARGC"
-                               , "ARGV"
-                               , "CONVFMT"
-                               , "ENVIRON"
-                               , "FILENAME"
-                               , "FNR"
-                               , "FS"
-                               , "NF"
-                               , "NR"
-                               , "OFMT"
-                               , "OFS"
-                               , "ORS"
-                               , "RLENGTH"
-                               , "RS"
-                               , "RSTART"
-                               , "SUBSEP"
-                               ])
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "atan2"
-                               , "close"
-                               , "cos"
-                               , "exp"
-                               , "fflush"
-                               , "gensub"
-                               , "gsub"
-                               , "index"
-                               , "int"
-                               , "length"
-                               , "log"
-                               , "match"
-                               , "rand"
-                               , "sin"
-                               , "split"
-                               , "sprintf"
-                               , "sqrt"
-                               , "srand"
-                               , "sub"
-                               , "substr"
-                               , "system"
-                               , "tolower"
-                               , "toupper"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$[A-Za-z0-9_]+"
-                              , reCompiled = Just (compileRegex True "\\$[A-Za-z0-9_]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "regex"
-          , Context
-              { cName = "regex"
-              , cSyntax = "AWK"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "AWK" , "Regex Escape" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '[' '^'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "AWK" , "RegexChar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "AWK" , "RegexChar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "$.+?*()|"
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = ""
-  , sVersion = "1"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.awk" ]
-  , sStartingContext = "Pattern"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"AWK\", sFilename = \"awk.xml\", sShortname = \"Awk\", sContexts = fromList [(\"Block\",Context {cName = \"Block\", cSyntax = \"AWK\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"AWK\",\"Block\")]},Rule {rMatcher = IncludeRules (\"AWK\",\"base\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"BEGIN\",\"END\"])), 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}),(\"CharClass\",Context {cName = \"CharClass\", cSyntax = \"AWK\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(alpha|alnum|blank|cntrl|digit|graph|lower|punct|space|upper|xdigit)(?=:\\\\])\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars ':' ']', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CheckRange\",Context {cName = \"CheckRange\", cSyntax = \"AWK\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*,\\\\s*(?=/)\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"AWK\",\"RangePattern\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop,Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop,Pop,Pop], cDynamic = False}),(\"Comment\",Context {cName = \"Comment\", cSyntax = \"AWK\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Escape\",Context {cName = \"Escape\", cSyntax = \"AWK\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"InChar\",Context {cName = \"InChar\", cSyntax = \"AWK\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\\\', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"AWK\",\"Regex Escape\")]},Rule {rMatcher = Detect2Chars '-' ']', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"AWK\",\"Regex Escape\")]},Rule {rMatcher = DetectChar ']', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar '-', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[:(?=[_\\\\w][_\\\\d\\\\w]*:\\\\])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"AWK\",\"CharClass\")]}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Match\",Context {cName = \"Match\", cSyntax = \"AWK\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '/' '^', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"AWK\",\"Regex\")]},Rule {rMatcher = DetectChar '/', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"AWK\",\"Regex\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"MatchPattern\",Context {cName = \"MatchPattern\", cSyntax = \"AWK\", cRules = [Rule {rMatcher = Detect2Chars '/' '^', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"AWK\",\"RegexPattern\")]},Rule {rMatcher = DetectChar '/', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"AWK\",\"RegexPattern\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"Pattern\",Context {cName = \"Pattern\", cSyntax = \"AWK\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"AWK\",\"Block\")]},Rule {rMatcher = DetectChar '}', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '/', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"AWK\",\"MatchPattern\")]},Rule {rMatcher = IncludeRules (\"AWK\",\"base\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"BEGIN\",\"END\"])), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Pattern2\",Context {cName = \"Pattern2\", cSyntax = \"AWK\", cRules = [Rule {rMatcher = IncludeRules (\"AWK\",\"regex\"), rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '/', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop,Pop,Pop]}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"RangePattern\",Context {cName = \"RangePattern\", cSyntax = \"AWK\", cRules = [Rule {rMatcher = Detect2Chars '/' '^', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"AWK\",\"Pattern2\")]},Rule {rMatcher = DetectChar '/', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"AWK\",\"Pattern2\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop,Pop,Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop,Pop,Pop,Pop], cDynamic = False}),(\"Regex\",Context {cName = \"Regex\", cSyntax = \"AWK\", cRules = [Rule {rMatcher = IncludeRules (\"AWK\",\"regex\"), rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '/', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Regex Escape\",Context {cName = \"Regex Escape\", cSyntax = \"AWK\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"RegexChar\",Context {cName = \"RegexChar\", cSyntax = \"AWK\", cRules = [Rule {rMatcher = Detect2Chars '-' ']', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"AWK\",\"InChar\")]},Rule {rMatcher = AnyChar \"-]\", rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"AWK\",\"InChar\")]}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Push (\"AWK\",\"InChar\")], cDynamic = False}),(\"RegexPattern\",Context {cName = \"RegexPattern\", cSyntax = \"AWK\", cRules = [Rule {rMatcher = IncludeRules (\"AWK\",\"regex\"), rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '/', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"AWK\",\"CheckRange\")]}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"AWK\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = HlCStringChar, rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\\\', rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"AWK\",\"Escape\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"base\",Context {cName = \"base\", cSyntax = \"AWK\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"AWK\",\"Comment\")]},Rule {rMatcher = DetectChar '~', rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"AWK\",\"Match\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"AWK\",\"String\")]},Rule {rMatcher = AnyChar \"!%&*+,-./:;<=>?^|\", rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"break\",\"continue\",\"do\",\"else\",\"exit\",\"for\",\"function\",\"getline\",\"if\",\"in\",\"next\",\"print\",\"printf\",\"return\",\"while\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"ARGC\",\"ARGV\",\"CONVFMT\",\"ENVIRON\",\"FILENAME\",\"FNR\",\"FS\",\"NF\",\"NR\",\"OFMT\",\"OFS\",\"ORS\",\"RLENGTH\",\"RS\",\"RSTART\",\"SUBSEP\"])), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"atan2\",\"close\",\"cos\",\"exp\",\"fflush\",\"gensub\",\"gsub\",\"index\",\"int\",\"length\",\"log\",\"match\",\"rand\",\"sin\",\"split\",\"sprintf\",\"sqrt\",\"srand\",\"sub\",\"substr\",\"system\",\"tolower\",\"toupper\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[A-Za-z0-9_]+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"regex\",Context {cName = \"regex\", cSyntax = \"AWK\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\\\', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"AWK\",\"Regex Escape\")]},Rule {rMatcher = Detect2Chars '[' '^', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"AWK\",\"RegexChar\")]},Rule {rMatcher = DetectChar '[', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"AWK\",\"RegexChar\")]},Rule {rMatcher = AnyChar \"$.+?*()|\", rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"\", sVersion = \"1\", sLicense = \"LGPL\", sExtensions = [\"*.awk\"], sStartingContext = \"Pattern\"}"
diff --git a/src/Skylighting/Syntax/Bash.hs b/src/Skylighting/Syntax/Bash.hs
--- a/src/Skylighting/Syntax/Bash.hs
+++ b/src/Skylighting/Syntax/Bash.hs
@@ -2,5233 +2,6 @@
 module Skylighting.Syntax.Bash (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Bash"
-  , sFilename = "bash.xml"
-  , sShortname = "Bash"
-  , sContexts =
-      fromList
-        [ ( "Assign"
-          , Context
-              { cName = "Assign"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "AssignArray" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindOthers" )
-                      , rAttribute = NormalTok
-                      , 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 = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "AssignArray"
-          , Context
-              { cName = "AssignArray"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "Subscript" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "Assign" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindMost" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "AssignSubscr"
-          , Context
-              { cName = "AssignSubscr"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "Subscript" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '+' '='
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "Assign" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "Assign" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindOthers" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "Case"
-          , Context
-              { cName = "Case"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\sin\\b"
-                              , reCompiled = Just (compileRegex True "\\sin\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "CaseIn" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindMost" )
-                      , 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
-              }
-          )
-        , ( "CaseExpr"
-          , Context
-              { cName = "CaseExpr"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars ';' ';'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "esac(?=$|[\\s;)])"
-                              , reCompiled = Just (compileRegex True "esac(?=$|[\\s;)])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindAll" )
-                      , 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
-              }
-          )
-        , ( "CaseIn"
-          , Context
-              { cName = "CaseIn"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\besac(?=$|[\\s;)])"
-                              , reCompiled = Just (compileRegex True "\\besac(?=$|[\\s;)])")
-                              , reCaseSensitive = True
-                              }
-                      , 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 = [ Push ( "Bash" , "CaseExpr" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "(|"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindMost" )
-                      , 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
-              }
-          )
-        , ( "CommandArgs"
-          , Context
-              { cName = "CommandArgs"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindMost" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\$"
-                              , reCompiled = Just (compileRegex True "\\\\$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , 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 = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\d*<<<"
-                              , reCompiled = Just (compileRegex True "\\d*<<<")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<<"
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "HereDoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[<>]\\("
-                              , reCompiled = Just (compileRegex True "[<>]\\(")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "ProcessSubst" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([0-9]*(>{1,2}|<)(&[0-9]+-?)?|&>|>&|[0-9]*<>)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "([0-9]*(>{1,2}|<)(&[0-9]+-?)?|&>|>&|[0-9]*<>)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([|&;])\\1?"
-                              , reCompiled = Just (compileRegex True "([|&;])\\1?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-?-[a-z][A-Za-z0-9_-]*"
-                              , reCompiled = Just (compileRegex True "-?-[a-z][A-Za-z0-9_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,;<=>?\\`|~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "elif"
-                               , "else"
-                               , "for"
-                               , "function"
-                               , "in"
-                               , "select"
-                               , "set"
-                               , "then"
-                               , "until"
-                               , "while"
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ")}"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CommandArgsBackq"
-          , Context
-              { cName = "CommandArgsBackq"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = NormalTok
-                      , 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 = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "CommandArgs" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Modelines" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CommentBackq"
-          , Context
-              { cName = "CommentBackq"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^`](?=`)"
-                              , reCompiled = Just (compileRegex True "[^`](?=`)")
-                              , reCaseSensitive = True
-                              }
-                      , 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 = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CommentParen"
-          , Context
-              { cName = "CommentParen"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^)](?=\\))"
-                              , reCompiled = Just (compileRegex True "[^)](?=\\))")
-                              , reCaseSensitive = True
-                              }
-                      , 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 = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ExprBracket"
-          , Context
-              { cName = "ExprBracket"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s\\](?=($|[\\s;|&]))"
-                              , reCompiled = Just (compileRegex True "\\s\\](?=($|[\\s;|&]))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\](?=($|[\\s;|&]))"
-                              , reCompiled = Just (compileRegex True "\\](?=($|[\\s;|&]))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "ExprSubParen" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindTests" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindMost" )
-                      , 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
-              }
-          )
-        , ( "ExprDblBracket"
-          , Context
-              { cName = "ExprDblBracket"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s\\]\\](?=($|[\\s;|&]))"
-                              , reCompiled = Just (compileRegex True "\\s\\]\\](?=($|[\\s;|&]))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\]\\](?=($|[\\s;|&]))"
-                              , reCompiled = Just (compileRegex True "\\]\\](?=($|[\\s;|&]))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "ExprSubParen" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindTests" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindMost" )
-                      , 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
-              }
-          )
-        , ( "ExprDblParen"
-          , Context
-              { cName = "ExprDblParen"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars ')' ')'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "ExprSubParen" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindMost" )
-                      , 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
-              }
-          )
-        , ( "ExprDblParenSubst"
-          , Context
-              { cName = "ExprDblParenSubst"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars ')' ')'
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "ExprSubParen" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindMost" )
-                      , 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
-              }
-          )
-        , ( "ExprSubParen"
-          , Context
-              { cName = "ExprSubParen"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "ExprSubParen" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindMost" )
-                      , 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
-              }
-          )
-        , ( "FindAll"
-          , Context
-              { cName = "FindAll"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindComments" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindCommands" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindOthers" )
-                      , 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
-              }
-          )
-        , ( "FindCommands"
-          , Context
-              { cName = "FindCommands"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindSpecialCommands" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindNormalCommands" )
-                      , 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
-              }
-          )
-        , ( "FindCommandsBackq"
-          , Context
-              { cName = "FindCommandsBackq"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindSpecialCommands" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindNormalCommandsBackq" )
-                      , 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
-              }
-          )
-        , ( "FindComments"
-          , Context
-              { cName = "FindComments"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\s;](?=#)"
-                              , reCompiled = Just (compileRegex True "[\\s;](?=#)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "Comment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindCommentsBackq"
-          , Context
-              { cName = "FindCommentsBackq"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "CommentBackq" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\s;](?=#)"
-                              , reCompiled = Just (compileRegex True "[\\s;](?=#)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "CommentBackq" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindCommentsParen"
-          , Context
-              { cName = "FindCommentsParen"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "CommentParen" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\s;](?=#)"
-                              , reCompiled = Just (compileRegex True "[\\s;](?=#)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "CommentParen" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindMost"
-          , Context
-              { cName = "FindMost"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindComments" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindOthers" )
-                      , 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
-              }
-          )
-        , ( "FindNormalCommands"
-          , Context
-              { cName = "FindNormalCommands"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,;<=>?\\`|~"
-                              }
-                            (makeWordSet
-                               True
-                               [ ":"
-                               , "alias"
-                               , "bg"
-                               , "bind"
-                               , "break"
-                               , "builtin"
-                               , "caller"
-                               , "cd"
-                               , "command"
-                               , "compgen"
-                               , "complete"
-                               , "continue"
-                               , "dirs"
-                               , "disown"
-                               , "echo"
-                               , "enable"
-                               , "eval"
-                               , "exec"
-                               , "exit"
-                               , "fc"
-                               , "fg"
-                               , "getopts"
-                               , "hash"
-                               , "help"
-                               , "history"
-                               , "jobs"
-                               , "kill"
-                               , "let"
-                               , "logout"
-                               , "popd"
-                               , "printf"
-                               , "pushd"
-                               , "pwd"
-                               , "return"
-                               , "set"
-                               , "shift"
-                               , "shopt"
-                               , "source"
-                               , "suspend"
-                               , "test"
-                               , "time"
-                               , "times"
-                               , "trap"
-                               , "type"
-                               , "ulimit"
-                               , "umask"
-                               , "unalias"
-                               , "wait"
-                               ])
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "CommandArgs" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,;<=>?\\`|~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "aclocal"
-                               , "aconnect"
-                               , "aplay"
-                               , "apm"
-                               , "apmsleep"
-                               , "apropos"
-                               , "ar"
-                               , "arch"
-                               , "arecord"
-                               , "as"
-                               , "as86"
-                               , "autoconf"
-                               , "autoheader"
-                               , "automake"
-                               , "awk"
-                               , "basename"
-                               , "bash"
-                               , "bc"
-                               , "bison"
-                               , "bunzip2"
-                               , "bzcat"
-                               , "bzcmp"
-                               , "bzdiff"
-                               , "bzegrep"
-                               , "bzfgrep"
-                               , "bzgrep"
-                               , "bzip2"
-                               , "bzip2recover"
-                               , "bzless"
-                               , "bzmore"
-                               , "c++"
-                               , "cal"
-                               , "cat"
-                               , "cc"
-                               , "cd-read"
-                               , "cdda2wav"
-                               , "cdparanoia"
-                               , "cdrdao"
-                               , "cdrecord"
-                               , "chattr"
-                               , "chfn"
-                               , "chgrp"
-                               , "chmod"
-                               , "chown"
-                               , "chroot"
-                               , "chsh"
-                               , "chvt"
-                               , "clang"
-                               , "clear"
-                               , "cmake"
-                               , "cmp"
-                               , "co"
-                               , "col"
-                               , "comm"
-                               , "cp"
-                               , "cpio"
-                               , "cpp"
-                               , "cut"
-                               , "date"
-                               , "dc"
-                               , "dcop"
-                               , "dd"
-                               , "deallocvt"
-                               , "df"
-                               , "diff"
-                               , "diff3"
-                               , "dir"
-                               , "dircolors"
-                               , "directomatic"
-                               , "dirname"
-                               , "dmesg"
-                               , "dnsdomainname"
-                               , "domainname"
-                               , "du"
-                               , "dumpkeys"
-                               , "echo"
-                               , "ed"
-                               , "egrep"
-                               , "env"
-                               , "expr"
-                               , "false"
-                               , "fbset"
-                               , "fgconsole"
-                               , "fgrep"
-                               , "file"
-                               , "find"
-                               , "flex"
-                               , "flex++"
-                               , "fmt"
-                               , "free"
-                               , "ftp"
-                               , "funzip"
-                               , "fuser"
-                               , "g++"
-                               , "gawk"
-                               , "gc"
-                               , "gcc"
-                               , "gdb"
-                               , "getent"
-                               , "getkeycodes"
-                               , "getopt"
-                               , "gettext"
-                               , "gettextize"
-                               , "gimp"
-                               , "gimp-remote"
-                               , "gimptool"
-                               , "git"
-                               , "gmake"
-                               , "gocr"
-                               , "grep"
-                               , "groff"
-                               , "groups"
-                               , "gs"
-                               , "gunzip"
-                               , "gzexe"
-                               , "gzip"
-                               , "head"
-                               , "hexdump"
-                               , "hostname"
-                               , "id"
-                               , "igawk"
-                               , "install"
-                               , "join"
-                               , "kbd_mode"
-                               , "kbdrate"
-                               , "kdialog"
-                               , "kfile"
-                               , "kill"
-                               , "killall"
-                               , "last"
-                               , "lastb"
-                               , "ld"
-                               , "ld86"
-                               , "ldd"
-                               , "less"
-                               , "lex"
-                               , "link"
-                               , "ln"
-                               , "loadkeys"
-                               , "loadunimap"
-                               , "locate"
-                               , "lockfile"
-                               , "login"
-                               , "logname"
-                               , "lp"
-                               , "lpr"
-                               , "ls"
-                               , "lsattr"
-                               , "lsmod"
-                               , "lsmod.old"
-                               , "lynx"
-                               , "lzcat"
-                               , "lzcmp"
-                               , "lzdiff"
-                               , "lzegrep"
-                               , "lzfgrep"
-                               , "lzgrep"
-                               , "lzless"
-                               , "lzma"
-                               , "lzmainfo"
-                               , "lzmore"
-                               , "m4"
-                               , "make"
-                               , "man"
-                               , "mapscrn"
-                               , "mesg"
-                               , "mkdir"
-                               , "mkfifo"
-                               , "mknod"
-                               , "mktemp"
-                               , "more"
-                               , "mount"
-                               , "msgfmt"
-                               , "mv"
-                               , "namei"
-                               , "nano"
-                               , "nasm"
-                               , "nawk"
-                               , "netstat"
-                               , "nice"
-                               , "nisdomainname"
-                               , "nl"
-                               , "nm"
-                               , "nm86"
-                               , "nmap"
-                               , "nohup"
-                               , "nop"
-                               , "nroff"
-                               , "od"
-                               , "openvt"
-                               , "passwd"
-                               , "patch"
-                               , "pcregrep"
-                               , "pcretest"
-                               , "perl"
-                               , "perror"
-                               , "pgawk"
-                               , "pidof"
-                               , "ping"
-                               , "pr"
-                               , "printf"
-                               , "procmail"
-                               , "prune"
-                               , "ps"
-                               , "ps2ascii"
-                               , "ps2epsi"
-                               , "ps2frag"
-                               , "ps2pdf"
-                               , "ps2ps"
-                               , "psbook"
-                               , "psmerge"
-                               , "psnup"
-                               , "psresize"
-                               , "psselect"
-                               , "pstops"
-                               , "pstree"
-                               , "pwd"
-                               , "qmake"
-                               , "rbash"
-                               , "rcs"
-                               , "readlink"
-                               , "red"
-                               , "resizecons"
-                               , "rev"
-                               , "rm"
-                               , "rmdir"
-                               , "rsync"
-                               , "run-parts"
-                               , "sash"
-                               , "scp"
-                               , "sed"
-                               , "seq"
-                               , "setfont"
-                               , "setkeycodes"
-                               , "setleds"
-                               , "setmetamode"
-                               , "setserial"
-                               , "setterm"
-                               , "sh"
-                               , "showkey"
-                               , "shred"
-                               , "size"
-                               , "size86"
-                               , "skill"
-                               , "sleep"
-                               , "slogin"
-                               , "snice"
-                               , "sort"
-                               , "sox"
-                               , "split"
-                               , "ssed"
-                               , "ssh"
-                               , "ssh-add"
-                               , "ssh-agent"
-                               , "ssh-keygen"
-                               , "ssh-keyscan"
-                               , "stat"
-                               , "strings"
-                               , "strip"
-                               , "stty"
-                               , "su"
-                               , "sudo"
-                               , "suidperl"
-                               , "sum"
-                               , "svn"
-                               , "sync"
-                               , "tac"
-                               , "tail"
-                               , "tar"
-                               , "tee"
-                               , "tempfile"
-                               , "test"
-                               , "touch"
-                               , "tr"
-                               , "troff"
-                               , "true"
-                               , "umount"
-                               , "uname"
-                               , "unicode_start"
-                               , "unicode_stop"
-                               , "uniq"
-                               , "unlink"
-                               , "unlzma"
-                               , "unxz"
-                               , "unzip"
-                               , "updatedb"
-                               , "updmap"
-                               , "uptime"
-                               , "users"
-                               , "utmpdump"
-                               , "uuidgen"
-                               , "valgrind"
-                               , "vdir"
-                               , "vmstat"
-                               , "w"
-                               , "wall"
-                               , "wc"
-                               , "wget"
-                               , "whatis"
-                               , "whereis"
-                               , "which"
-                               , "who"
-                               , "whoami"
-                               , "write"
-                               , "xargs"
-                               , "xdg-open"
-                               , "xhost"
-                               , "xmodmap"
-                               , "xset"
-                               , "xz"
-                               , "xzcat"
-                               , "yacc"
-                               , "yes"
-                               , "ypdomainname"
-                               , "zcat"
-                               , "zcmp"
-                               , "zdiff"
-                               , "zegrep"
-                               , "zfgrep"
-                               , "zforce"
-                               , "zgrep"
-                               , "zip"
-                               , "zless"
-                               , "zmore"
-                               , "znew"
-                               , "zsh"
-                               , "zsoelim"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "CommandArgs" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([\\w_@.%*?+-]|\\\\ )*(?=/)"
-                              , reCompiled =
-                                  Just (compileRegex True "([\\w_@.%*?+-]|\\\\ )*(?=/)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , 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 = ExtensionTok
-                      , 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 = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "/([\\w_@.%*?+-]|\\\\ )*(?=([\\s);$`'\"]|$))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "/([\\w_@.%*?+-]|\\\\ )*(?=([\\s);$`'\"]|$))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "CommandArgs" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([\\w_@.%*?+-]|\\\\ )*"
-                              , reCompiled = Just (compileRegex True "([\\w_@.%*?+-]|\\\\ )*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "CommandArgs" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindNormalCommandsBackq"
-          , Context
-              { cName = "FindNormalCommandsBackq"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,;<=>?\\`|~"
-                              }
-                            (makeWordSet
-                               True
-                               [ ":"
-                               , "alias"
-                               , "bg"
-                               , "bind"
-                               , "break"
-                               , "builtin"
-                               , "caller"
-                               , "cd"
-                               , "command"
-                               , "compgen"
-                               , "complete"
-                               , "continue"
-                               , "dirs"
-                               , "disown"
-                               , "echo"
-                               , "enable"
-                               , "eval"
-                               , "exec"
-                               , "exit"
-                               , "fc"
-                               , "fg"
-                               , "getopts"
-                               , "hash"
-                               , "help"
-                               , "history"
-                               , "jobs"
-                               , "kill"
-                               , "let"
-                               , "logout"
-                               , "popd"
-                               , "printf"
-                               , "pushd"
-                               , "pwd"
-                               , "return"
-                               , "set"
-                               , "shift"
-                               , "shopt"
-                               , "source"
-                               , "suspend"
-                               , "test"
-                               , "time"
-                               , "times"
-                               , "trap"
-                               , "type"
-                               , "ulimit"
-                               , "umask"
-                               , "unalias"
-                               , "wait"
-                               ])
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "CommandArgsBackq" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,;<=>?\\`|~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "aclocal"
-                               , "aconnect"
-                               , "aplay"
-                               , "apm"
-                               , "apmsleep"
-                               , "apropos"
-                               , "ar"
-                               , "arch"
-                               , "arecord"
-                               , "as"
-                               , "as86"
-                               , "autoconf"
-                               , "autoheader"
-                               , "automake"
-                               , "awk"
-                               , "basename"
-                               , "bash"
-                               , "bc"
-                               , "bison"
-                               , "bunzip2"
-                               , "bzcat"
-                               , "bzcmp"
-                               , "bzdiff"
-                               , "bzegrep"
-                               , "bzfgrep"
-                               , "bzgrep"
-                               , "bzip2"
-                               , "bzip2recover"
-                               , "bzless"
-                               , "bzmore"
-                               , "c++"
-                               , "cal"
-                               , "cat"
-                               , "cc"
-                               , "cd-read"
-                               , "cdda2wav"
-                               , "cdparanoia"
-                               , "cdrdao"
-                               , "cdrecord"
-                               , "chattr"
-                               , "chfn"
-                               , "chgrp"
-                               , "chmod"
-                               , "chown"
-                               , "chroot"
-                               , "chsh"
-                               , "chvt"
-                               , "clang"
-                               , "clear"
-                               , "cmake"
-                               , "cmp"
-                               , "co"
-                               , "col"
-                               , "comm"
-                               , "cp"
-                               , "cpio"
-                               , "cpp"
-                               , "cut"
-                               , "date"
-                               , "dc"
-                               , "dcop"
-                               , "dd"
-                               , "deallocvt"
-                               , "df"
-                               , "diff"
-                               , "diff3"
-                               , "dir"
-                               , "dircolors"
-                               , "directomatic"
-                               , "dirname"
-                               , "dmesg"
-                               , "dnsdomainname"
-                               , "domainname"
-                               , "du"
-                               , "dumpkeys"
-                               , "echo"
-                               , "ed"
-                               , "egrep"
-                               , "env"
-                               , "expr"
-                               , "false"
-                               , "fbset"
-                               , "fgconsole"
-                               , "fgrep"
-                               , "file"
-                               , "find"
-                               , "flex"
-                               , "flex++"
-                               , "fmt"
-                               , "free"
-                               , "ftp"
-                               , "funzip"
-                               , "fuser"
-                               , "g++"
-                               , "gawk"
-                               , "gc"
-                               , "gcc"
-                               , "gdb"
-                               , "getent"
-                               , "getkeycodes"
-                               , "getopt"
-                               , "gettext"
-                               , "gettextize"
-                               , "gimp"
-                               , "gimp-remote"
-                               , "gimptool"
-                               , "git"
-                               , "gmake"
-                               , "gocr"
-                               , "grep"
-                               , "groff"
-                               , "groups"
-                               , "gs"
-                               , "gunzip"
-                               , "gzexe"
-                               , "gzip"
-                               , "head"
-                               , "hexdump"
-                               , "hostname"
-                               , "id"
-                               , "igawk"
-                               , "install"
-                               , "join"
-                               , "kbd_mode"
-                               , "kbdrate"
-                               , "kdialog"
-                               , "kfile"
-                               , "kill"
-                               , "killall"
-                               , "last"
-                               , "lastb"
-                               , "ld"
-                               , "ld86"
-                               , "ldd"
-                               , "less"
-                               , "lex"
-                               , "link"
-                               , "ln"
-                               , "loadkeys"
-                               , "loadunimap"
-                               , "locate"
-                               , "lockfile"
-                               , "login"
-                               , "logname"
-                               , "lp"
-                               , "lpr"
-                               , "ls"
-                               , "lsattr"
-                               , "lsmod"
-                               , "lsmod.old"
-                               , "lynx"
-                               , "lzcat"
-                               , "lzcmp"
-                               , "lzdiff"
-                               , "lzegrep"
-                               , "lzfgrep"
-                               , "lzgrep"
-                               , "lzless"
-                               , "lzma"
-                               , "lzmainfo"
-                               , "lzmore"
-                               , "m4"
-                               , "make"
-                               , "man"
-                               , "mapscrn"
-                               , "mesg"
-                               , "mkdir"
-                               , "mkfifo"
-                               , "mknod"
-                               , "mktemp"
-                               , "more"
-                               , "mount"
-                               , "msgfmt"
-                               , "mv"
-                               , "namei"
-                               , "nano"
-                               , "nasm"
-                               , "nawk"
-                               , "netstat"
-                               , "nice"
-                               , "nisdomainname"
-                               , "nl"
-                               , "nm"
-                               , "nm86"
-                               , "nmap"
-                               , "nohup"
-                               , "nop"
-                               , "nroff"
-                               , "od"
-                               , "openvt"
-                               , "passwd"
-                               , "patch"
-                               , "pcregrep"
-                               , "pcretest"
-                               , "perl"
-                               , "perror"
-                               , "pgawk"
-                               , "pidof"
-                               , "ping"
-                               , "pr"
-                               , "printf"
-                               , "procmail"
-                               , "prune"
-                               , "ps"
-                               , "ps2ascii"
-                               , "ps2epsi"
-                               , "ps2frag"
-                               , "ps2pdf"
-                               , "ps2ps"
-                               , "psbook"
-                               , "psmerge"
-                               , "psnup"
-                               , "psresize"
-                               , "psselect"
-                               , "pstops"
-                               , "pstree"
-                               , "pwd"
-                               , "qmake"
-                               , "rbash"
-                               , "rcs"
-                               , "readlink"
-                               , "red"
-                               , "resizecons"
-                               , "rev"
-                               , "rm"
-                               , "rmdir"
-                               , "rsync"
-                               , "run-parts"
-                               , "sash"
-                               , "scp"
-                               , "sed"
-                               , "seq"
-                               , "setfont"
-                               , "setkeycodes"
-                               , "setleds"
-                               , "setmetamode"
-                               , "setserial"
-                               , "setterm"
-                               , "sh"
-                               , "showkey"
-                               , "shred"
-                               , "size"
-                               , "size86"
-                               , "skill"
-                               , "sleep"
-                               , "slogin"
-                               , "snice"
-                               , "sort"
-                               , "sox"
-                               , "split"
-                               , "ssed"
-                               , "ssh"
-                               , "ssh-add"
-                               , "ssh-agent"
-                               , "ssh-keygen"
-                               , "ssh-keyscan"
-                               , "stat"
-                               , "strings"
-                               , "strip"
-                               , "stty"
-                               , "su"
-                               , "sudo"
-                               , "suidperl"
-                               , "sum"
-                               , "svn"
-                               , "sync"
-                               , "tac"
-                               , "tail"
-                               , "tar"
-                               , "tee"
-                               , "tempfile"
-                               , "test"
-                               , "touch"
-                               , "tr"
-                               , "troff"
-                               , "true"
-                               , "umount"
-                               , "uname"
-                               , "unicode_start"
-                               , "unicode_stop"
-                               , "uniq"
-                               , "unlink"
-                               , "unlzma"
-                               , "unxz"
-                               , "unzip"
-                               , "updatedb"
-                               , "updmap"
-                               , "uptime"
-                               , "users"
-                               , "utmpdump"
-                               , "uuidgen"
-                               , "valgrind"
-                               , "vdir"
-                               , "vmstat"
-                               , "w"
-                               , "wall"
-                               , "wc"
-                               , "wget"
-                               , "whatis"
-                               , "whereis"
-                               , "which"
-                               , "who"
-                               , "whoami"
-                               , "write"
-                               , "xargs"
-                               , "xdg-open"
-                               , "xhost"
-                               , "xmodmap"
-                               , "xset"
-                               , "xz"
-                               , "xzcat"
-                               , "yacc"
-                               , "yes"
-                               , "ypdomainname"
-                               , "zcat"
-                               , "zcmp"
-                               , "zdiff"
-                               , "zegrep"
-                               , "zfgrep"
-                               , "zforce"
-                               , "zgrep"
-                               , "zip"
-                               , "zless"
-                               , "zmore"
-                               , "znew"
-                               , "zsh"
-                               , "zsoelim"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "CommandArgsBackq" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([\\w_@.%*?+-]|\\\\ )*(?=/)"
-                              , reCompiled =
-                                  Just (compileRegex True "([\\w_@.%*?+-]|\\\\ )*(?=/)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , 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 = ExtensionTok
-                      , 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 = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "/([\\w_@.%*?+-]|\\\\ )*(?=([\\s);$`'\"]|$))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "/([\\w_@.%*?+-]|\\\\ )*(?=([\\s);$`'\"]|$))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "CommandArgsBackq" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([\\w_@.%*?+-]|\\\\ )*"
-                              , reCompiled = Just (compileRegex True "([\\w_@.%*?+-]|\\\\ )*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "CommandArgsBackq" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindOthers"
-          , Context
-              { cName = "FindOthers"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[][;\\\\$`{}()|&<>* ]"
-                              , reCompiled = Just (compileRegex True "\\\\[][;\\\\$`{}()|&<>* ]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\$"
-                              , reCompiled = Just (compileRegex True "\\\\$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\{(?!(\\s|$))\\S*\\}"
-                              , reCompiled = Just (compileRegex True "\\{(?!(\\s|$))\\S*\\}")
-                              , 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 = []
-                      }
-                  , 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 = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "/([\\w_@.%*?+-]|\\\\ )*(?=([\\s/):;$`'\"]|$))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "/([\\w_@.%*?+-]|\\\\ )*(?=([\\s/):;$`'\"]|$))")
-                              , 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
-              }
-          )
-        , ( "FindSpecialCommands"
-          , Context
-              { cName = "FindSpecialCommands"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '(' '('
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "ExprDblParen" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[\\[(?=($|\\s))"
-                              , reCompiled = Just (compileRegex True "\\[\\[(?=($|\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Bash" , "ExprDblBracket" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s\\[\\[(?=($|\\s))"
-                              , reCompiled = Just (compileRegex True "\\s\\[\\[(?=($|\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "ExprDblBracket" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[(?=($|\\s))"
-                              , reCompiled = Just (compileRegex True "\\[(?=($|\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Bash" , "ExprBracket" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s\\[(?=($|\\s))"
-                              , reCompiled = Just (compileRegex True "\\s\\[(?=($|\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "ExprBracket" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\{(?=($|\\s))"
-                              , reCompiled = Just (compileRegex True "\\{(?=($|\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "Group" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "SubShell" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bdo(?![\\w$+-])"
-                              , reCompiled = Just (compileRegex True "\\bdo(?![\\w$+-])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bdone(?![\\w$+-])"
-                              , reCompiled = Just (compileRegex True "\\bdone(?![\\w$+-])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bif(?=($|\\s))"
-                              , reCompiled = Just (compileRegex True "\\bif(?=($|\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bfi(?![\\w$+-])"
-                              , reCompiled = Just (compileRegex True "\\bfi(?![\\w$+-])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bcase(?![\\w$+-])"
-                              , reCompiled = Just (compileRegex True "\\bcase(?![\\w$+-])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "Case" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[A-Za-z_][A-Za-z0-9_]*\\+?="
-                              , reCompiled =
-                                  Just (compileRegex True "\\b[A-Za-z_][A-Za-z0-9_]*\\+?=")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "Assign" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[A-Za-z_][A-Za-z0-9_]*(?=\\[.+\\]\\+?=)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "\\b[A-Za-z_][A-Za-z0-9_]*(?=\\[.+\\]\\+?=)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "AssignSubscr" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ":()"
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bfunction\\b"
-                              , reCompiled = Just (compileRegex True "\\bfunction\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "FunctionDef" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Za-z_:][A-Za-z0-9_:#%@-]*\\s*\\(\\)"
-                              , reCompiled =
-                                  Just (compileRegex True "[A-Za-z_:][A-Za-z0-9_:#%@-]*\\s*\\(\\)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,;<=>?\\`|~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "elif"
-                               , "else"
-                               , "for"
-                               , "function"
-                               , "in"
-                               , "select"
-                               , "set"
-                               , "then"
-                               , "until"
-                               , "while"
-                               ])
-                      , rAttribute = KeywordTok
-                      , 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 = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,;<=>?\\`|~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "declare"
-                               , "export"
-                               , "local"
-                               , "read"
-                               , "readonly"
-                               , "typeset"
-                               , "unset"
-                               ])
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "VarName" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\d*<<<"
-                              , reCompiled = Just (compileRegex True "\\d*<<<")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<<"
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "HereDoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[<>]\\("
-                              , reCompiled = Just (compileRegex True "[<>]\\(")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "ProcessSubst" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([0-9]*(>{1,2}|<)(&[0-9]+-?)?|&>|>&|[0-9]*<>)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "([0-9]*(>{1,2}|<)(&[0-9]+-?)?|&>|>&|[0-9]*<>)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([|&])\\1?"
-                              , reCompiled = Just (compileRegex True "([|&])\\1?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , 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 = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '\''
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '"'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "StringSQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "StringDQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "StringEsc" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "StringDQ" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindSubstitutions"
-          , Context
-              { cName = "FindSubstitutions"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$[A-Za-z_][A-Za-z0-9_]*\\["
-                              , reCompiled =
-                                  Just (compileRegex True "\\$[A-Za-z_][A-Za-z0-9_]*\\[")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "Subscript" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$[A-Za-z_][A-Za-z0-9_]*"
-                              , reCompiled = Just (compileRegex True "\\$[A-Za-z_][A-Za-z0-9_]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , 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 = VariableTok
-                      , 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 = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$\\{#[A-Za-z_][A-Za-z0-9_]*(\\[[*@]\\])?\\}"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\$\\{#[A-Za-z_][A-Za-z0-9_]*(\\[[*@]\\])?\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$\\{![A-Za-z_][A-Za-z0-9_]*(\\[[*@]\\]|[*@])?\\}"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\$\\{![A-Za-z_][A-Za-z0-9_]*(\\[[*@]\\]|[*@])?\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , 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 = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$\\{[A-Za-z_][A-Za-z0-9_]*"
-                              , reCompiled =
-                                  Just (compileRegex True "\\$\\{[A-Za-z_][A-Za-z0-9_]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "VarBrace" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$\\{[*@#?$!_0-9-](?=[:#%/=?+-])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\$\\{[*@#?$!_0-9-](?=[:#%/=?+-])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "VarBrace" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "$(("
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "ExprDblParenSubst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "$(<"
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "SubstFile" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "$("
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "SubstCommand" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "SubstBackq" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[`$\\\\]"
-                              , reCompiled = Just (compileRegex True "\\\\[`$\\\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindTests"
-          , Context
-              { cName = "FindTests"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-[abcdefghkprstuwxOGLSNozn](?=\\s)"
-                              , reCompiled =
-                                  Just (compileRegex True "-[abcdefghkprstuwxOGLSNozn](?=\\s)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-([no]t|ef)(?=\\s)"
-                              , reCompiled = Just (compileRegex True "-([no]t|ef)(?=\\s)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , 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 = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-(eq|ne|[gl][te])(?=\\s)"
-                              , reCompiled = Just (compileRegex True "-(eq|ne|[gl][te])(?=\\s)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FunctionDef"
-          , Context
-              { cName = "FunctionDef"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s+[A-Za-z_:][A-Za-z0-9_:#%@-]*(\\s*\\(\\))?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\s+[A-Za-z_:][A-Za-z0-9_:#%@-]*(\\s*\\(\\))?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "Group"
-          , Context
-              { cName = "Group"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindAll" )
-                      , 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
-              }
-          )
-        , ( "HereDoc"
-          , Context
-              { cName = "HereDoc"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<-\\s*\"([^|&;()<>\\s]+)\")"
-                              , reCompiled =
-                                  Just (compileRegex True "(<<-\\s*\"([^|&;()<>\\s]+)\")")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "HereDocIQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<-\\s*'([^|&;()<>\\s]+)')"
-                              , reCompiled =
-                                  Just (compileRegex True "(<<-\\s*'([^|&;()<>\\s]+)')")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "HereDocIQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<-\\s*\\\\([^|&;()<>\\s]+))"
-                              , reCompiled =
-                                  Just (compileRegex True "(<<-\\s*\\\\([^|&;()<>\\s]+))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "HereDocIQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<-\\s*([^|&;()<>\\s]+))"
-                              , reCompiled = Just (compileRegex True "(<<-\\s*([^|&;()<>\\s]+))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "HereDocINQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<\\s*\"([^|&;()<>\\s]+)\")"
-                              , reCompiled =
-                                  Just (compileRegex True "(<<\\s*\"([^|&;()<>\\s]+)\")")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "HereDocQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<\\s*'([^|&;()<>\\s]+)')"
-                              , reCompiled =
-                                  Just (compileRegex True "(<<\\s*'([^|&;()<>\\s]+)')")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "HereDocQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<\\s*\\\\([^|&;()<>\\s]+))"
-                              , reCompiled =
-                                  Just (compileRegex True "(<<\\s*\\\\([^|&;()<>\\s]+))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "HereDocQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<\\s*([^|&;()<>\\s]+))"
-                              , reCompiled = Just (compileRegex True "(<<\\s*([^|&;()<>\\s]+))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "HereDocNQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<<"
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "HereDocINQ"
-          , Context
-              { cName = "HereDocINQ"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1" , reCompiled = Nothing , reCaseSensitive = True }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "HereDocRemainder" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\t*%2\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindSubstitutions" )
-                      , 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 = True
-              }
-          )
-        , ( "HereDocIQ"
-          , Context
-              { cName = "HereDocIQ"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1" , reCompiled = Nothing , reCaseSensitive = True }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "HereDocRemainder" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\t*%2\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "HereDocNQ"
-          , Context
-              { cName = "HereDocNQ"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1" , reCompiled = Nothing , reCaseSensitive = True }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "HereDocRemainder" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%2\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindSubstitutions" )
-                      , 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 = True
-              }
-          )
-        , ( "HereDocQ"
-          , Context
-              { cName = "HereDocQ"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1" , reCompiled = Nothing , reCaseSensitive = True }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "HereDocRemainder" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%2\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "HereDocRemainder"
-          , Context
-              { cName = "HereDocRemainder"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindAll" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ProcessSubst"
-          , Context
-              { cName = "ProcessSubst"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindCommentsParen" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindCommands" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindOthers" )
-                      , 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
-              }
-          )
-        , ( "Start"
-          , Context
-              { cName = "Start"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindAll" )
-                      , 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
-              }
-          )
-        , ( "StringDQ"
-          , Context
-              { cName = "StringDQ"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[`\"\\\\$\\n]"
-                              , reCompiled = Just (compileRegex True "\\\\[`\"\\\\$\\n]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindSubstitutions" )
-                      , 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
-              }
-          )
-        , ( "StringEsc"
-          , Context
-              { cName = "StringEsc"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[abefnrtv\\\\']"
-                              , reCompiled = Just (compileRegex True "\\\\[abefnrtv\\\\']")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\([0-7]{1,3}|x[A-Fa-f0-9]{1,2}|c.)"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\([0-7]{1,3}|x[A-Fa-f0-9]{1,2}|c.)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , 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 = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SubShell"
-          , Context
-              { cName = "SubShell"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindAll" )
-                      , 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
-              }
-          )
-        , ( "Subscript"
-          , Context
-              { cName = "Subscript"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindStrings" )
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindSubstitutions" )
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindOthers" )
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = VariableTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SubstBackq"
-          , Context
-              { cName = "SubstBackq"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindCommentsBackq" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindCommandsBackq" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindOthers" )
-                      , 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
-              }
-          )
-        , ( "SubstCommand"
-          , Context
-              { cName = "SubstCommand"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindCommentsParen" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindCommands" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindOthers" )
-                      , 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
-              }
-          )
-        , ( "SubstFile"
-          , Context
-              { cName = "SubstFile"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindCommentsParen" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindOthers" )
-                      , 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
-              }
-          )
-        , ( "VarAlt"
-          , Context
-              { cName = "VarAlt"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindSubstitutions" )
-                      , 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
-              }
-          )
-        , ( "VarBrace"
-          , Context
-              { cName = "VarBrace"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "Subscript" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(:?[-=?+]|##?|%%?)"
-                              , reCompiled = Just (compileRegex True "(:?[-=?+]|##?|%%?)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "VarAlt" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "//?"
-                              , reCompiled = Just (compileRegex True "//?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "VarSubst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ':'
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "VarSub" ) ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "VarName"
-          , Context
-              { cName = "VarName"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-[A-Za-z0-9]+"
-                              , reCompiled = Just (compileRegex True "-[A-Za-z0-9]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "--[a-z][A-Za-z0-9_-]*"
-                              , reCompiled = Just (compileRegex True "--[a-z][A-Za-z0-9_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[A-Za-z_][A-Za-z0-9_]*"
-                              , reCompiled = Just (compileRegex True "\\b[A-Za-z_][A-Za-z0-9_]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "Subscript" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "Assign" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindMost" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^]})|;`&><]"
-                              , reCompiled = Just (compileRegex True "[^]})|;`&><]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "VarSub"
-          , Context
-              { cName = "VarSub"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ':'
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "VarSub2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Za-z_][A-Za-z0-9_]*"
-                              , reCompiled = Just (compileRegex True "[A-Za-z_][A-Za-z0-9_]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , 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 = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindSubstitutions" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "VarSub2"
-          , Context
-              { cName = "VarSub2"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Za-z_][A-Za-z0-9_]*"
-                              , reCompiled = Just (compileRegex True "[A-Za-z_][A-Za-z0-9_]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , 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 = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindSubstitutions" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "VarSubst"
-          , Context
-              { cName = "VarSubst"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '/'
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Bash" , "VarSubst2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindSubstitutions" )
-                      , 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
-              }
-          )
-        , ( "VarSubst2"
-          , Context
-              { cName = "VarSubst2"
-              , cSyntax = "Bash"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Bash" , "FindSubstitutions" )
-                      , 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
-              }
-          )
-        ]
-  , sAuthor = "Wilbert Berendsen (wilbert@kde.nl)"
-  , sVersion = "3"
-  , sLicense = "LGPL"
-  , sExtensions =
-      [ "*.sh"
-      , "*.bash"
-      , "*.ebuild"
-      , "*.eclass"
-      , "*.nix"
-      , ".bashrc"
-      , ".bash_profile"
-      , ".bash_login"
-      , ".profile"
-      ]
-  , sStartingContext = "Start"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Bash\", sFilename = \"bash.xml\", sShortname = \"Bash\", sContexts = fromList [(\"Assign\",Context {cName = \"Assign\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"AssignArray\")]},Rule {rMatcher = IncludeRules (\"Bash\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindOthers\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\w:,+_./-]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"AssignArray\",Context {cName = \"AssignArray\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '[', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"Subscript\")]},Rule {rMatcher = DetectChar '=', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"Assign\")]},Rule {rMatcher = IncludeRules (\"Bash\",\"FindMost\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"AssignSubscr\",Context {cName = \"AssignSubscr\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = DetectChar '[', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"Subscript\")]},Rule {rMatcher = Detect2Chars '+' '=', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"Assign\")]},Rule {rMatcher = DetectChar '=', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"Assign\")]},Rule {rMatcher = IncludeRules (\"Bash\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindOthers\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"Case\",Context {cName = \"Case\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\sin\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"CaseIn\")]},Rule {rMatcher = IncludeRules (\"Bash\",\"FindMost\"), 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}),(\"CaseExpr\",Context {cName = \"CaseExpr\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = Detect2Chars ';' ';', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"esac(?=$|[\\\\s;)])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Bash\",\"FindAll\"), 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}),(\"CaseIn\",Context {cName = \"CaseIn\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\besac(?=$|[\\\\s;)])\", reCaseSensitive = True}), 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 = [Push (\"Bash\",\"CaseExpr\")]},Rule {rMatcher = AnyChar \"(|\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindMost\"), 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}),(\"CommandArgs\",Context {cName = \"CommandArgs\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = LineContinue, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindMost\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.(?=\\\\s)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\d*<<<\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<<\", rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"HereDoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"[<>]\\\\(\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"ProcessSubst\")]},Rule {rMatcher = RegExpr (RE {reString = \"([0-9]*(>{1,2}|<)(&[0-9]+-?)?|&>|>&|[0-9]*<>)\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([|&;])\\\\1?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"-?-[a-z][A-Za-z0-9_-]*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !&()*+,;<=>?\\\\`|~\"}) (CaseSensitiveWords (fromList [\"elif\",\"else\",\"for\",\"function\",\"in\",\"select\",\"set\",\"then\",\"until\",\"while\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \")}\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CommandArgsBackq\",Context {cName = \"CommandArgsBackq\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = LineContinue, rAttribute = NormalTok, 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 = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Bash\",\"CommandArgs\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment\",Context {cName = \"Comment\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Modelines\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CommentBackq\",Context {cName = \"CommentBackq\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[^`](?=`)\", reCaseSensitive = True}), 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 = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CommentParen\",Context {cName = \"CommentParen\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[^)](?=\\\\))\", reCaseSensitive = True}), 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 = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ExprBracket\",Context {cName = \"ExprBracket\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s\\\\](?=($|[\\\\s;|&]))\", reCaseSensitive = True}), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\](?=($|[\\\\s;|&]))\", reCaseSensitive = True}), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"ExprSubParen\")]},Rule {rMatcher = IncludeRules (\"Bash\",\"FindTests\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindMost\"), 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}),(\"ExprDblBracket\",Context {cName = \"ExprDblBracket\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s\\\\]\\\\](?=($|[\\\\s;|&]))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\]\\\\](?=($|[\\\\s;|&]))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"ExprSubParen\")]},Rule {rMatcher = IncludeRules (\"Bash\",\"FindTests\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindMost\"), 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}),(\"ExprDblParen\",Context {cName = \"ExprDblParen\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = Detect2Chars ')' ')', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"ExprSubParen\")]},Rule {rMatcher = IncludeRules (\"Bash\",\"FindMost\"), 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}),(\"ExprDblParenSubst\",Context {cName = \"ExprDblParenSubst\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = Detect2Chars ')' ')', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"ExprSubParen\")]},Rule {rMatcher = IncludeRules (\"Bash\",\"FindMost\"), 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}),(\"ExprSubParen\",Context {cName = \"ExprSubParen\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"ExprSubParen\")]},Rule {rMatcher = IncludeRules (\"Bash\",\"FindMost\"), 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}),(\"FindAll\",Context {cName = \"FindAll\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = IncludeRules (\"Bash\",\"FindComments\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindCommands\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindOthers\"), 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}),(\"FindCommands\",Context {cName = \"FindCommands\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = IncludeRules (\"Bash\",\"FindSpecialCommands\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindNormalCommands\"), 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}),(\"FindCommandsBackq\",Context {cName = \"FindCommandsBackq\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = IncludeRules (\"Bash\",\"FindSpecialCommands\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindNormalCommandsBackq\"), 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}),(\"FindComments\",Context {cName = \"FindComments\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\s;](?=#)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"Comment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindCommentsBackq\",Context {cName = \"FindCommentsBackq\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"CommentBackq\")]},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\s;](?=#)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"CommentBackq\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindCommentsParen\",Context {cName = \"FindCommentsParen\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"CommentParen\")]},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\s;](?=#)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"CommentParen\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindMost\",Context {cName = \"FindMost\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = IncludeRules (\"Bash\",\"FindComments\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindOthers\"), 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}),(\"FindNormalCommands\",Context {cName = \"FindNormalCommands\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !&()*+,;<=>?\\\\`|~\"}) (CaseSensitiveWords (fromList [\":\",\"alias\",\"bg\",\"bind\",\"break\",\"builtin\",\"caller\",\"cd\",\"command\",\"compgen\",\"complete\",\"continue\",\"dirs\",\"disown\",\"echo\",\"enable\",\"eval\",\"exec\",\"exit\",\"fc\",\"fg\",\"getopts\",\"hash\",\"help\",\"history\",\"jobs\",\"kill\",\"let\",\"logout\",\"popd\",\"printf\",\"pushd\",\"pwd\",\"return\",\"set\",\"shift\",\"shopt\",\"source\",\"suspend\",\"test\",\"time\",\"times\",\"trap\",\"type\",\"ulimit\",\"umask\",\"unalias\",\"wait\"])), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"CommandArgs\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !&()*+,;<=>?\\\\`|~\"}) (CaseSensitiveWords (fromList [\"aclocal\",\"aconnect\",\"aplay\",\"apm\",\"apmsleep\",\"apropos\",\"ar\",\"arch\",\"arecord\",\"as\",\"as86\",\"autoconf\",\"autoheader\",\"automake\",\"awk\",\"basename\",\"bash\",\"bc\",\"bison\",\"bunzip2\",\"bzcat\",\"bzcmp\",\"bzdiff\",\"bzegrep\",\"bzfgrep\",\"bzgrep\",\"bzip2\",\"bzip2recover\",\"bzless\",\"bzmore\",\"c++\",\"cal\",\"cat\",\"cc\",\"cd-read\",\"cdda2wav\",\"cdparanoia\",\"cdrdao\",\"cdrecord\",\"chattr\",\"chfn\",\"chgrp\",\"chmod\",\"chown\",\"chroot\",\"chsh\",\"chvt\",\"clang\",\"clear\",\"cmake\",\"cmp\",\"co\",\"col\",\"comm\",\"cp\",\"cpio\",\"cpp\",\"cut\",\"date\",\"dc\",\"dcop\",\"dd\",\"deallocvt\",\"df\",\"diff\",\"diff3\",\"dir\",\"dircolors\",\"directomatic\",\"dirname\",\"dmesg\",\"dnsdomainname\",\"domainname\",\"du\",\"dumpkeys\",\"echo\",\"ed\",\"egrep\",\"env\",\"expr\",\"false\",\"fbset\",\"fgconsole\",\"fgrep\",\"file\",\"find\",\"flex\",\"flex++\",\"fmt\",\"free\",\"ftp\",\"funzip\",\"fuser\",\"g++\",\"gawk\",\"gc\",\"gcc\",\"gdb\",\"getent\",\"getkeycodes\",\"getopt\",\"gettext\",\"gettextize\",\"gimp\",\"gimp-remote\",\"gimptool\",\"git\",\"gmake\",\"gocr\",\"grep\",\"groff\",\"groups\",\"gs\",\"gunzip\",\"gzexe\",\"gzip\",\"head\",\"hexdump\",\"hostname\",\"id\",\"igawk\",\"install\",\"join\",\"kbd_mode\",\"kbdrate\",\"kdialog\",\"kfile\",\"kill\",\"killall\",\"last\",\"lastb\",\"ld\",\"ld86\",\"ldd\",\"less\",\"lex\",\"link\",\"ln\",\"loadkeys\",\"loadunimap\",\"locate\",\"lockfile\",\"login\",\"logname\",\"lp\",\"lpr\",\"ls\",\"lsattr\",\"lsmod\",\"lsmod.old\",\"lynx\",\"lzcat\",\"lzcmp\",\"lzdiff\",\"lzegrep\",\"lzfgrep\",\"lzgrep\",\"lzless\",\"lzma\",\"lzmainfo\",\"lzmore\",\"m4\",\"make\",\"man\",\"mapscrn\",\"mesg\",\"mkdir\",\"mkfifo\",\"mknod\",\"mktemp\",\"more\",\"mount\",\"msgfmt\",\"mv\",\"namei\",\"nano\",\"nasm\",\"nawk\",\"netstat\",\"nice\",\"nisdomainname\",\"nl\",\"nm\",\"nm86\",\"nmap\",\"nohup\",\"nop\",\"nroff\",\"od\",\"openvt\",\"passwd\",\"patch\",\"pcregrep\",\"pcretest\",\"perl\",\"perror\",\"pgawk\",\"pidof\",\"ping\",\"pr\",\"printf\",\"procmail\",\"prune\",\"ps\",\"ps2ascii\",\"ps2epsi\",\"ps2frag\",\"ps2pdf\",\"ps2ps\",\"psbook\",\"psmerge\",\"psnup\",\"psresize\",\"psselect\",\"pstops\",\"pstree\",\"pwd\",\"qmake\",\"rbash\",\"rcs\",\"readlink\",\"red\",\"resizecons\",\"rev\",\"rm\",\"rmdir\",\"rsync\",\"run-parts\",\"sash\",\"scp\",\"sed\",\"seq\",\"setfont\",\"setkeycodes\",\"setleds\",\"setmetamode\",\"setserial\",\"setterm\",\"sh\",\"showkey\",\"shred\",\"size\",\"size86\",\"skill\",\"sleep\",\"slogin\",\"snice\",\"sort\",\"sox\",\"split\",\"ssed\",\"ssh\",\"ssh-add\",\"ssh-agent\",\"ssh-keygen\",\"ssh-keyscan\",\"stat\",\"strings\",\"strip\",\"stty\",\"su\",\"sudo\",\"suidperl\",\"sum\",\"svn\",\"sync\",\"tac\",\"tail\",\"tar\",\"tee\",\"tempfile\",\"test\",\"touch\",\"tr\",\"troff\",\"true\",\"umount\",\"uname\",\"unicode_start\",\"unicode_stop\",\"uniq\",\"unlink\",\"unlzma\",\"unxz\",\"unzip\",\"updatedb\",\"updmap\",\"uptime\",\"users\",\"utmpdump\",\"uuidgen\",\"valgrind\",\"vdir\",\"vmstat\",\"w\",\"wall\",\"wc\",\"wget\",\"whatis\",\"whereis\",\"which\",\"who\",\"whoami\",\"write\",\"xargs\",\"xdg-open\",\"xhost\",\"xmodmap\",\"xset\",\"xz\",\"xzcat\",\"yacc\",\"yes\",\"ypdomainname\",\"zcat\",\"zcmp\",\"zdiff\",\"zegrep\",\"zfgrep\",\"zforce\",\"zgrep\",\"zip\",\"zless\",\"zmore\",\"znew\",\"zsh\",\"zsoelim\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"CommandArgs\")]},Rule {rMatcher = RegExpr (RE {reString = \"([\\\\w_@.%*?+-]|\\\\\\\\ )*(?=/)\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"~\\\\w*\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"/([\\\\w_@.%*?+-]|\\\\\\\\ )*(?=([/);$`'\\\"]|$))\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"/([\\\\w_@.%*?+-]|\\\\\\\\ )*(?=([\\\\s);$`'\\\"]|$))\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"CommandArgs\")]},Rule {rMatcher = RegExpr (RE {reString = \"([\\\\w_@.%*?+-]|\\\\\\\\ )*\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"CommandArgs\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindNormalCommandsBackq\",Context {cName = \"FindNormalCommandsBackq\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !&()*+,;<=>?\\\\`|~\"}) (CaseSensitiveWords (fromList [\":\",\"alias\",\"bg\",\"bind\",\"break\",\"builtin\",\"caller\",\"cd\",\"command\",\"compgen\",\"complete\",\"continue\",\"dirs\",\"disown\",\"echo\",\"enable\",\"eval\",\"exec\",\"exit\",\"fc\",\"fg\",\"getopts\",\"hash\",\"help\",\"history\",\"jobs\",\"kill\",\"let\",\"logout\",\"popd\",\"printf\",\"pushd\",\"pwd\",\"return\",\"set\",\"shift\",\"shopt\",\"source\",\"suspend\",\"test\",\"time\",\"times\",\"trap\",\"type\",\"ulimit\",\"umask\",\"unalias\",\"wait\"])), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"CommandArgsBackq\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !&()*+,;<=>?\\\\`|~\"}) (CaseSensitiveWords (fromList [\"aclocal\",\"aconnect\",\"aplay\",\"apm\",\"apmsleep\",\"apropos\",\"ar\",\"arch\",\"arecord\",\"as\",\"as86\",\"autoconf\",\"autoheader\",\"automake\",\"awk\",\"basename\",\"bash\",\"bc\",\"bison\",\"bunzip2\",\"bzcat\",\"bzcmp\",\"bzdiff\",\"bzegrep\",\"bzfgrep\",\"bzgrep\",\"bzip2\",\"bzip2recover\",\"bzless\",\"bzmore\",\"c++\",\"cal\",\"cat\",\"cc\",\"cd-read\",\"cdda2wav\",\"cdparanoia\",\"cdrdao\",\"cdrecord\",\"chattr\",\"chfn\",\"chgrp\",\"chmod\",\"chown\",\"chroot\",\"chsh\",\"chvt\",\"clang\",\"clear\",\"cmake\",\"cmp\",\"co\",\"col\",\"comm\",\"cp\",\"cpio\",\"cpp\",\"cut\",\"date\",\"dc\",\"dcop\",\"dd\",\"deallocvt\",\"df\",\"diff\",\"diff3\",\"dir\",\"dircolors\",\"directomatic\",\"dirname\",\"dmesg\",\"dnsdomainname\",\"domainname\",\"du\",\"dumpkeys\",\"echo\",\"ed\",\"egrep\",\"env\",\"expr\",\"false\",\"fbset\",\"fgconsole\",\"fgrep\",\"file\",\"find\",\"flex\",\"flex++\",\"fmt\",\"free\",\"ftp\",\"funzip\",\"fuser\",\"g++\",\"gawk\",\"gc\",\"gcc\",\"gdb\",\"getent\",\"getkeycodes\",\"getopt\",\"gettext\",\"gettextize\",\"gimp\",\"gimp-remote\",\"gimptool\",\"git\",\"gmake\",\"gocr\",\"grep\",\"groff\",\"groups\",\"gs\",\"gunzip\",\"gzexe\",\"gzip\",\"head\",\"hexdump\",\"hostname\",\"id\",\"igawk\",\"install\",\"join\",\"kbd_mode\",\"kbdrate\",\"kdialog\",\"kfile\",\"kill\",\"killall\",\"last\",\"lastb\",\"ld\",\"ld86\",\"ldd\",\"less\",\"lex\",\"link\",\"ln\",\"loadkeys\",\"loadunimap\",\"locate\",\"lockfile\",\"login\",\"logname\",\"lp\",\"lpr\",\"ls\",\"lsattr\",\"lsmod\",\"lsmod.old\",\"lynx\",\"lzcat\",\"lzcmp\",\"lzdiff\",\"lzegrep\",\"lzfgrep\",\"lzgrep\",\"lzless\",\"lzma\",\"lzmainfo\",\"lzmore\",\"m4\",\"make\",\"man\",\"mapscrn\",\"mesg\",\"mkdir\",\"mkfifo\",\"mknod\",\"mktemp\",\"more\",\"mount\",\"msgfmt\",\"mv\",\"namei\",\"nano\",\"nasm\",\"nawk\",\"netstat\",\"nice\",\"nisdomainname\",\"nl\",\"nm\",\"nm86\",\"nmap\",\"nohup\",\"nop\",\"nroff\",\"od\",\"openvt\",\"passwd\",\"patch\",\"pcregrep\",\"pcretest\",\"perl\",\"perror\",\"pgawk\",\"pidof\",\"ping\",\"pr\",\"printf\",\"procmail\",\"prune\",\"ps\",\"ps2ascii\",\"ps2epsi\",\"ps2frag\",\"ps2pdf\",\"ps2ps\",\"psbook\",\"psmerge\",\"psnup\",\"psresize\",\"psselect\",\"pstops\",\"pstree\",\"pwd\",\"qmake\",\"rbash\",\"rcs\",\"readlink\",\"red\",\"resizecons\",\"rev\",\"rm\",\"rmdir\",\"rsync\",\"run-parts\",\"sash\",\"scp\",\"sed\",\"seq\",\"setfont\",\"setkeycodes\",\"setleds\",\"setmetamode\",\"setserial\",\"setterm\",\"sh\",\"showkey\",\"shred\",\"size\",\"size86\",\"skill\",\"sleep\",\"slogin\",\"snice\",\"sort\",\"sox\",\"split\",\"ssed\",\"ssh\",\"ssh-add\",\"ssh-agent\",\"ssh-keygen\",\"ssh-keyscan\",\"stat\",\"strings\",\"strip\",\"stty\",\"su\",\"sudo\",\"suidperl\",\"sum\",\"svn\",\"sync\",\"tac\",\"tail\",\"tar\",\"tee\",\"tempfile\",\"test\",\"touch\",\"tr\",\"troff\",\"true\",\"umount\",\"uname\",\"unicode_start\",\"unicode_stop\",\"uniq\",\"unlink\",\"unlzma\",\"unxz\",\"unzip\",\"updatedb\",\"updmap\",\"uptime\",\"users\",\"utmpdump\",\"uuidgen\",\"valgrind\",\"vdir\",\"vmstat\",\"w\",\"wall\",\"wc\",\"wget\",\"whatis\",\"whereis\",\"which\",\"who\",\"whoami\",\"write\",\"xargs\",\"xdg-open\",\"xhost\",\"xmodmap\",\"xset\",\"xz\",\"xzcat\",\"yacc\",\"yes\",\"ypdomainname\",\"zcat\",\"zcmp\",\"zdiff\",\"zegrep\",\"zfgrep\",\"zforce\",\"zgrep\",\"zip\",\"zless\",\"zmore\",\"znew\",\"zsh\",\"zsoelim\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"CommandArgsBackq\")]},Rule {rMatcher = RegExpr (RE {reString = \"([\\\\w_@.%*?+-]|\\\\\\\\ )*(?=/)\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"~\\\\w*\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"/([\\\\w_@.%*?+-]|\\\\\\\\ )*(?=([/);$`'\\\"]|$))\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"/([\\\\w_@.%*?+-]|\\\\\\\\ )*(?=([\\\\s);$`'\\\"]|$))\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"CommandArgsBackq\")]},Rule {rMatcher = RegExpr (RE {reString = \"([\\\\w_@.%*?+-]|\\\\\\\\ )*\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"CommandArgsBackq\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindOthers\",Context {cName = \"FindOthers\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[][;\\\\\\\\$`{}()|&<>* ]\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\{(?!(\\\\s|$))\\\\S*\\\\}\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([\\\\w_@.%*?+-]|\\\\\\\\ )*(?=/)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"~\\\\w*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"/([\\\\w_@.%*?+-]|\\\\\\\\ )*(?=([\\\\s/):;$`'\\\"]|$))\", 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}),(\"FindSpecialCommands\",Context {cName = \"FindSpecialCommands\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = Detect2Chars '(' '(', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"ExprDblParen\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[\\\\[(?=($|\\\\s))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Bash\",\"ExprDblBracket\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s\\\\[\\\\[(?=($|\\\\s))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"ExprDblBracket\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[(?=($|\\\\s))\", reCaseSensitive = True}), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Bash\",\"ExprBracket\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s\\\\[(?=($|\\\\s))\", reCaseSensitive = True}), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"ExprBracket\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\{(?=($|\\\\s))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"Group\")]},Rule {rMatcher = DetectChar '(', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"SubShell\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bdo(?![\\\\w$+-])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bdone(?![\\\\w$+-])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bif(?=($|\\\\s))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bfi(?![\\\\w$+-])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bcase(?![\\\\w$+-])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"Case\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[A-Za-z_][A-Za-z0-9_]*\\\\+?=\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"Assign\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[A-Za-z_][A-Za-z0-9_]*(?=\\\\[.+\\\\]\\\\+?=)\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"AssignSubscr\")]},Rule {rMatcher = StringDetect \":()\", rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bfunction\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"FunctionDef\")]},Rule {rMatcher = RegExpr (RE {reString = \"[A-Za-z_:][A-Za-z0-9_:#%@-]*\\\\s*\\\\(\\\\)\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !&()*+,;<=>?\\\\`|~\"}) (CaseSensitiveWords (fromList [\"elif\",\"else\",\"for\",\"function\",\"in\",\"select\",\"set\",\"then\",\"until\",\"while\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.(?=\\\\s)\", reCaseSensitive = True}), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !&()*+,;<=>?\\\\`|~\"}) (CaseSensitiveWords (fromList [\"declare\",\"export\",\"local\",\"read\",\"readonly\",\"typeset\",\"unset\"])), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"VarName\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\d*<<<\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<<\", rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"HereDoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"[<>]\\\\(\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"ProcessSubst\")]},Rule {rMatcher = RegExpr (RE {reString = \"([0-9]*(>{1,2}|<)(&[0-9]+-?)?|&>|>&|[0-9]*<>)\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([|&])\\\\1?\", reCaseSensitive = True}), rAttribute = KeywordTok, 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 = \"Bash\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\\'', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\"', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"StringSQ\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"StringDQ\")]},Rule {rMatcher = Detect2Chars '$' '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"StringEsc\")]},Rule {rMatcher = Detect2Chars '$' '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"StringDQ\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindSubstitutions\",Context {cName = \"FindSubstitutions\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[A-Za-z_][A-Za-z0-9_]*\\\\[\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"Subscript\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[A-Za-z_][A-Za-z0-9_]*\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[*@#?$!_0-9-]\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\{[*@#?$!_0-9-]\\\\}\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\{#[A-Za-z_][A-Za-z0-9_]*(\\\\[[*@]\\\\])?\\\\}\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\{![A-Za-z_][A-Za-z0-9_]*(\\\\[[*@]\\\\]|[*@])?\\\\}\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\{#[0-9]+\\\\}\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\{[A-Za-z_][A-Za-z0-9_]*\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"VarBrace\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\{[*@#?$!_0-9-](?=[:#%/=?+-])\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"VarBrace\")]},Rule {rMatcher = StringDetect \"$((\", rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"ExprDblParenSubst\")]},Rule {rMatcher = StringDetect \"$(<\", rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"SubstFile\")]},Rule {rMatcher = StringDetect \"$(\", rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"SubstCommand\")]},Rule {rMatcher = DetectChar '`', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"SubstBackq\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[`$\\\\\\\\]\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindTests\",Context {cName = \"FindTests\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"-[abcdefghkprstuwxOGLSNozn](?=\\\\s)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-([no]t|ef)(?=\\\\s)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([!=]=?|[><])(?=\\\\s)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-(eq|ne|[gl][te])(?=\\\\s)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FunctionDef\",Context {cName = \"FunctionDef\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+[A-Za-z_:][A-Za-z0-9_:#%@-]*(\\\\s*\\\\(\\\\))?\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"Group\",Context {cName = \"Group\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Bash\",\"FindAll\"), 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}),(\"HereDoc\",Context {cName = \"HereDoc\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(<<-\\\\s*\\\"([^|&;()<>\\\\s]+)\\\")\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"HereDocIQ\")]},Rule {rMatcher = RegExpr (RE {reString = \"(<<-\\\\s*'([^|&;()<>\\\\s]+)')\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"HereDocIQ\")]},Rule {rMatcher = RegExpr (RE {reString = \"(<<-\\\\s*\\\\\\\\([^|&;()<>\\\\s]+))\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"HereDocIQ\")]},Rule {rMatcher = RegExpr (RE {reString = \"(<<-\\\\s*([^|&;()<>\\\\s]+))\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"HereDocINQ\")]},Rule {rMatcher = RegExpr (RE {reString = \"(<<\\\\s*\\\"([^|&;()<>\\\\s]+)\\\")\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"HereDocQ\")]},Rule {rMatcher = RegExpr (RE {reString = \"(<<\\\\s*'([^|&;()<>\\\\s]+)')\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"HereDocQ\")]},Rule {rMatcher = RegExpr (RE {reString = \"(<<\\\\s*\\\\\\\\([^|&;()<>\\\\s]+))\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"HereDocQ\")]},Rule {rMatcher = RegExpr (RE {reString = \"(<<\\\\s*([^|&;()<>\\\\s]+))\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"HereDocNQ\")]},Rule {rMatcher = StringDetect \"<<\", rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"HereDocINQ\",Context {cName = \"HereDocINQ\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"HereDocRemainder\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\t*%2\\\\b\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Bash\",\"FindSubstitutions\"), 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 = True}),(\"HereDocIQ\",Context {cName = \"HereDocIQ\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"HereDocRemainder\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\t*%2\\\\b\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"HereDocNQ\",Context {cName = \"HereDocNQ\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"HereDocRemainder\")]},Rule {rMatcher = RegExpr (RE {reString = \"%2\\\\b\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Bash\",\"FindSubstitutions\"), 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 = True}),(\"HereDocQ\",Context {cName = \"HereDocQ\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"HereDocRemainder\")]},Rule {rMatcher = RegExpr (RE {reString = \"%2\\\\b\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"HereDocRemainder\",Context {cName = \"HereDocRemainder\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = IncludeRules (\"Bash\",\"FindAll\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ProcessSubst\",Context {cName = \"ProcessSubst\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Bash\",\"FindCommentsParen\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindCommands\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindOthers\"), 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}),(\"Start\",Context {cName = \"Start\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = IncludeRules (\"Bash\",\"FindAll\"), 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}),(\"StringDQ\",Context {cName = \"StringDQ\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[`\\\"\\\\\\\\$\\\\n]\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindSubstitutions\"), 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}),(\"StringEsc\",Context {cName = \"StringEsc\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[abefnrtv\\\\\\\\']\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\([0-7]{1,3}|x[A-Fa-f0-9]{1,2}|c.)\", reCaseSensitive = True}), rAttribute = DataTypeTok, 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 = \"Bash\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SubShell\",Context {cName = \"SubShell\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Bash\",\"FindAll\"), 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}),(\"Subscript\",Context {cName = \"Subscript\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = DetectChar ']', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Bash\",\"FindStrings\"), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindSubstitutions\"), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindOthers\"), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = VariableTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SubstBackq\",Context {cName = \"SubstBackq\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = DetectChar '`', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Bash\",\"FindCommentsBackq\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindCommandsBackq\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindOthers\"), 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}),(\"SubstCommand\",Context {cName = \"SubstCommand\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Bash\",\"FindCommentsParen\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindCommands\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindOthers\"), 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}),(\"SubstFile\",Context {cName = \"SubstFile\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Bash\",\"FindCommentsParen\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindOthers\"), 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}),(\"VarAlt\",Context {cName = \"VarAlt\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Bash\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindSubstitutions\"), 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}),(\"VarBrace\",Context {cName = \"VarBrace\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '[', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"Subscript\")]},Rule {rMatcher = RegExpr (RE {reString = \"(:?[-=?+]|##?|%%?)\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"VarAlt\")]},Rule {rMatcher = RegExpr (RE {reString = \"//?\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"VarSubst\")]},Rule {rMatcher = DetectChar ':', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"VarSub\")]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"VarName\",Context {cName = \"VarName\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"-[A-Za-z0-9]+\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"--[a-z][A-Za-z0-9_-]*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[A-Za-z_][A-Za-z0-9_]*\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"Subscript\")]},Rule {rMatcher = DetectChar '=', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"Assign\")]},Rule {rMatcher = IncludeRules (\"Bash\",\"FindMost\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[^]})|;`&><]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"VarSub\",Context {cName = \"VarSub\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = DetectChar ':', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"VarSub2\")]},Rule {rMatcher = DetectChar '}', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[A-Za-z_][A-Za-z0-9_]*\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[0-9]+(?=[:}])\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindSubstitutions\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"VarSub2\",Context {cName = \"VarSub2\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[A-Za-z_][A-Za-z0-9_]*\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[0-9](?=[:}])\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindSubstitutions\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"VarSubst\",Context {cName = \"VarSubst\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar '/', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Bash\",\"VarSubst2\")]},Rule {rMatcher = IncludeRules (\"Bash\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindSubstitutions\"), 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}),(\"VarSubst2\",Context {cName = \"VarSubst2\", cSyntax = \"Bash\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = IncludeRules (\"Bash\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Bash\",\"FindSubstitutions\"), 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})], sAuthor = \"Wilbert Berendsen (wilbert@kde.nl)\", sVersion = \"3\", sLicense = \"LGPL\", sExtensions = [\"*.sh\",\"*.bash\",\"*.ebuild\",\"*.eclass\",\"*.nix\",\".bashrc\",\".bash_profile\",\".bash_login\",\".profile\"], sStartingContext = \"Start\"}"
diff --git a/src/Skylighting/Syntax/Bibtex.hs b/src/Skylighting/Syntax/Bibtex.hs
--- a/src/Skylighting/Syntax/Bibtex.hs
+++ b/src/Skylighting/Syntax/Bibtex.hs
@@ -2,575 +2,6 @@
 module Skylighting.Syntax.Bibtex (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "BibTeX"
-  , sFilename = "bibtex.xml"
-  , sShortname = "Bibtex"
-  , sContexts =
-      fromList
-        [ ( "CurlyBracket"
-          , Context
-              { cName = "CurlyBracket"
-              , cSyntax = "BibTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "BibTeX" , "CurlyBracket" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\([a-zA-Z@]+|[^ ])"
-                              , reCompiled = Just (compileRegex True "\\\\([a-zA-Z@]+|[^ ])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "}$"
-                              , reCompiled = Just (compileRegex True "}$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Entry"
-          , Context
-              { cName = "Entry"
-              , cSyntax = "BibTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z0-9_@\\\\-\\\\:]+"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z0-9_@\\\\-\\\\:]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ','
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "BibTeX" , "Field" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Field"
-          , Context
-              { cName = "Field"
-              , cSyntax = "BibTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z0-9\\-_\\.]+"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z0-9\\-_\\.]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , 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 = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "BibTeX" , "CurlyBracket" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "BibTeX" , "QuotedText" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ','
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = NormalTok
-                      , 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 = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z0-9\\-]+"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z0-9\\-]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , 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 =
-                          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 = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "BibTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "@article"
-                               , "@book"
-                               , "@booklet"
-                               , "@collection"
-                               , "@company"
-                               , "@conference"
-                               , "@electronic"
-                               , "@inbook"
-                               , "@incollection"
-                               , "@inproceedings"
-                               , "@manual"
-                               , "@mastersthesis"
-                               , "@misc"
-                               , "@online"
-                               , "@patent"
-                               , "@periodical"
-                               , "@person"
-                               , "@phdthesis"
-                               , "@place"
-                               , "@proceedings"
-                               , "@report"
-                               , "@set"
-                               , "@techreport"
-                               , "@thesis"
-                               , "@unpublished"
-                               , "@www"
-                               ])
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "BibTeX" , "Entry" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@string"
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "BibTeX" , "StringCommand" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@preamble"
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "BibTeX" , "PreambleCommand" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@comment"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "PreambleCommand"
-          , Context
-              { cName = "PreambleCommand"
-              , cSyntax = "BibTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "BibTeX" , "CurlyBracket" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "QuotedText"
-          , Context
-              { cName = "QuotedText"
-              , cSyntax = "BibTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\([a-zA-Z@]+|[^ ])"
-                              , reCompiled = Just (compileRegex True "\\\\([a-zA-Z@]+|[^ ])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "StringCommand"
-          , Context
-              { cName = "StringCommand"
-              , cSyntax = "BibTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "BibTeX" , "CurlyBracket" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z0-9\\-]+"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z0-9\\-]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "BibTeX" , "CurlyBracket" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor =
-      "Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)+Thomas Braun (thomas.braun@virtuell-zuhause.de)"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.bib" ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"BibTeX\", sFilename = \"bibtex.xml\", sShortname = \"Bibtex\", sContexts = fromList [(\"CurlyBracket\",Context {cName = \"CurlyBracket\", cSyntax = \"BibTeX\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"BibTeX\",\"CurlyBracket\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\([a-zA-Z@]+|[^ ])\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"}$\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Entry\",Context {cName = \"Entry\", cSyntax = \"BibTeX\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z0-9_@\\\\\\\\-\\\\\\\\:]+\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ',', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"BibTeX\",\"Field\")]},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Field\",Context {cName = \"Field\", cSyntax = \"BibTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z0-9\\\\-_\\\\.]+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '=', 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 = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"BibTeX\",\"CurlyBracket\")]},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\"', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"BibTeX\",\"QuotedText\")]},Rule {rMatcher = DetectChar ',', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '#', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[0-9]+\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z0-9\\\\-]+\", reCaseSensitive = True}), rAttribute = StringTok, 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 = RegExpr (RE {reString = \".\", 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}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"BibTeX\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}~\"}) (CaseInsensitiveWords (fromList [\"@article\",\"@book\",\"@booklet\",\"@collection\",\"@company\",\"@conference\",\"@electronic\",\"@inbook\",\"@incollection\",\"@inproceedings\",\"@manual\",\"@mastersthesis\",\"@misc\",\"@online\",\"@patent\",\"@periodical\",\"@person\",\"@phdthesis\",\"@place\",\"@proceedings\",\"@report\",\"@set\",\"@techreport\",\"@thesis\",\"@unpublished\",\"@www\"])), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"BibTeX\",\"Entry\")]},Rule {rMatcher = StringDetect \"@string\", rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"BibTeX\",\"StringCommand\")]},Rule {rMatcher = StringDetect \"@preamble\", rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"BibTeX\",\"PreambleCommand\")]},Rule {rMatcher = StringDetect \"@comment\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"PreambleCommand\",Context {cName = \"PreambleCommand\", cSyntax = \"BibTeX\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"BibTeX\",\"CurlyBracket\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"QuotedText\",Context {cName = \"QuotedText\", cSyntax = \"BibTeX\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\([a-zA-Z@]+|[^ ])\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"StringCommand\",Context {cName = \"StringCommand\", cSyntax = \"BibTeX\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"BibTeX\",\"CurlyBracket\")]},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z0-9\\\\-]+\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"BibTeX\",\"CurlyBracket\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False})], sAuthor = \"Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)+Thomas Braun (thomas.braun@virtuell-zuhause.de)\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [\"*.bib\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Boo.hs b/src/Skylighting/Syntax/Boo.hs
--- a/src/Skylighting/Syntax/Boo.hs
+++ b/src/Skylighting/Syntax/Boo.hs
@@ -2,1561 +2,6 @@
 module Skylighting.Syntax.Boo (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Boo"
-  , sFilename = "boo.xml"
-  , sShortname = "Boo"
-  , sContexts =
-      fromList
-        [ ( "Comment SlashSlash"
-          , Context
-              { cName = "Comment SlashSlash"
-              , cSyntax = "Boo"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Boo"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "as" , "from" , "import" , "namespace" ])
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "abstract"
-                               , "callable"
-                               , "class"
-                               , "constructor"
-                               , "def"
-                               , "destructor"
-                               , "do"
-                               , "enum"
-                               , "event"
-                               , "final"
-                               , "get"
-                               , "interface"
-                               , "internal"
-                               , "macro"
-                               , "of"
-                               , "override"
-                               , "partial"
-                               , "private"
-                               , "protected"
-                               , "public"
-                               , "return"
-                               , "set"
-                               , "static"
-                               , "struct"
-                               , "transient"
-                               , "virtual"
-                               , "yield"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True [ "and" , "assert" , "in" , "is" , "not" , "or" ])
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "and"
-                               , "break"
-                               , "cast"
-                               , "continue"
-                               , "elif"
-                               , "else"
-                               , "ensure"
-                               , "except"
-                               , "for"
-                               , "given"
-                               , "goto"
-                               , "if"
-                               , "in"
-                               , "is"
-                               , "isa"
-                               , "not"
-                               , "or"
-                               , "otherwise"
-                               , "pass"
-                               , "raise"
-                               , "ref"
-                               , "try"
-                               , "unless"
-                               , "when"
-                               , "while"
-                               ])
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "__eval__"
-                               , "__switch__"
-                               , "array"
-                               , "assert"
-                               , "checked"
-                               , "enumerate"
-                               , "filter"
-                               , "getter"
-                               , "len"
-                               , "lock"
-                               , "map"
-                               , "matrix"
-                               , "max"
-                               , "min"
-                               , "normalArrayIndexing"
-                               , "print"
-                               , "property"
-                               , "range"
-                               , "rawArrayIndexing"
-                               , "required"
-                               , "typeof"
-                               , "unchecked"
-                               , "using"
-                               , "yieldAll"
-                               , "zip"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "null" , "self" , "super" ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "false" , "true" ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "bool"
-                               , "byte"
-                               , "char"
-                               , "date"
-                               , "decimal"
-                               , "double"
-                               , "duck"
-                               , "int"
-                               , "long"
-                               , "object"
-                               , "regex"
-                               , "sbyte"
-                               , "short"
-                               , "single"
-                               , "string"
-                               , "timespan"
-                               , "uint"
-                               , "ulong"
-                               , "ushort"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z_][a-zA-Z_0-9]+"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z_][a-zA-Z_0-9]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  " ((([0-9]*\\.[0-9]+|[0-9]+\\.)|([0-9]+|([0-9]*\\.[0-9]+|[0-9]+\\.))[eE](\\+|-)?[0-9]+)|[0-9]+)[jJ]"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       " ((([0-9]*\\.[0-9]+|[0-9]+\\.)|([0-9]+|([0-9]*\\.[0-9]+|[0-9]+\\.))[eE](\\+|-)?[0-9]+)|[0-9]+)[jJ]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([0-9]+\\.[0-9]*|\\.[0-9]+)([eE][0-9]+)?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "([0-9]+\\.[0-9]*|\\.[0-9]+)([eE][0-9]+)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([1-9][0-9]*([eE][0-9]+)?|0)"
-                              , reCompiled =
-                                  Just (compileRegex True "([1-9][0-9]*([eE][0-9]+)?|0)")
-                              , reCaseSensitive = True
-                              }
-                      , 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]*([eE][0-9.]+)?[Ll]"
-                              , reCompiled =
-                                  Just (compileRegex True "[1-9][0-9]*([eE][0-9.]+)?[Ll]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "0[Xx][0-9a-fA-F]+"
-                              , reCompiled = Just (compileRegex True "0[Xx][0-9a-fA-F]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "0[1-9][0-9]*"
-                              , reCompiled = Just (compileRegex True "0[1-9][0-9]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[rR]'''"
-                              , reCompiled = Just (compileRegex True "[rR]'''")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Boo" , "Raw Tripple A-string" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[rR]\"\"\""
-                              , reCompiled = Just (compileRegex True "[rR]\"\"\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Boo" , "Raw Tripple Q-string" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[rR]'"
-                              , reCompiled = Just (compileRegex True "[rR]'")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Boo" , "Raw A-string" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[rR]\""
-                              , reCompiled = Just (compileRegex True "[rR]\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Boo" , "Raw Q-string" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#.*$"
-                              , reCompiled = Just (compileRegex True "#.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*u?'''"
-                              , reCompiled = Just (compileRegex True "\\s*u?'''")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Boo" , "Tripple A-comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*u?\"\"\""
-                              , reCompiled = Just (compileRegex True "\\s*u?\"\"\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Boo" , "Tripple Q-comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Boo" , "Comment SlashSlash" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "'''"
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Boo" , "Tripple A-string" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\"\"\""
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Boo" , "Tripple Q-string" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Boo" , "Single A-string" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Boo" , "Single Q-string" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Boo" , "parenthesised" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "[|"
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Boo" , "Quasi-Quotation" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "|]"
-                      , rAttribute = OperatorTok
-                      , 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 = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%[a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "%[a-zA-Z]")
-                              , 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
-              }
-          )
-        , ( "Quasi-Quotation"
-          , Context
-              { cName = "Quasi-Quotation"
-              , cSyntax = "Boo"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Boo" , "Normal" )
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OperatorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Raw A-string"
-          , Context
-              { cName = "Raw A-string"
-              , cSyntax = "Boo"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%\\([a-zA-Z0-9_]+\\)[a-zA-Z]"
-                              , reCompiled =
-                                  Just (compileRegex True "%\\([a-zA-Z0-9_]+\\)[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%[a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "%[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = VerbatimStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Raw Q-string"
-          , Context
-              { cName = "Raw Q-string"
-              , cSyntax = "Boo"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%\\([a-zA-Z0-9_]+\\)[a-zA-Z]"
-                              , reCompiled =
-                                  Just (compileRegex True "%\\([a-zA-Z0-9_]+\\)[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%[a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "%[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = VerbatimStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Raw Tripple A-string"
-          , Context
-              { cName = "Raw Tripple A-string"
-              , cSyntax = "Boo"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%\\([a-zA-Z0-9_]+\\)[a-zA-Z]"
-                              , reCompiled =
-                                  Just (compileRegex True "%\\([a-zA-Z0-9_]+\\)[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%[a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "%[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = [ Pop ]
-                      }
-                  ]
-              , cAttribute = VerbatimStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Raw Tripple Q-string"
-          , Context
-              { cName = "Raw Tripple Q-string"
-              , cSyntax = "Boo"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%\\([a-zA-Z0-9_]+\\)[a-zA-Z]"
-                              , reCompiled =
-                                  Just (compileRegex True "%\\([a-zA-Z0-9_]+\\)[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%[a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "%[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = [ Pop ]
-                      }
-                  ]
-              , cAttribute = VerbatimStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Single A-comment"
-          , Context
-              { cName = "Single A-comment"
-              , cSyntax = "Boo"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Single A-string"
-          , Context
-              { cName = "Single A-string"
-              , cSyntax = "Boo"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%\\([a-zA-Z0-9_]+\\)[a-zA-Z]"
-                              , reCompiled =
-                                  Just (compileRegex True "%\\([a-zA-Z0-9_]+\\)[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%[a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "%[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Single Q-comment"
-          , Context
-              { cName = "Single Q-comment"
-              , cSyntax = "Boo"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Single Q-string"
-          , Context
-              { cName = "Single Q-string"
-              , cSyntax = "Boo"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%\\([a-zA-Z0-9_]+\\)[a-zA-Z]"
-                              , reCompiled =
-                                  Just (compileRegex True "%\\([a-zA-Z0-9_]+\\)[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%[a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "%[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Tripple A-comment"
-          , Context
-              { cName = "Tripple A-comment"
-              , cSyntax = "Boo"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "'''"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Tripple A-string"
-          , Context
-              { cName = "Tripple A-string"
-              , cSyntax = "Boo"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%\\([a-zA-Z0-9_]+\\)[a-zA-Z]"
-                              , reCompiled =
-                                  Just (compileRegex True "%\\([a-zA-Z0-9_]+\\)[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%[a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "%[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Tripple Q-comment"
-          , Context
-              { cName = "Tripple Q-comment"
-              , cSyntax = "Boo"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\"\"\""
-                              , reCompiled = Just (compileRegex True "\"\"\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Tripple Q-string"
-          , Context
-              { cName = "Tripple Q-string"
-              , cSyntax = "Boo"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%\\([a-zA-Z0-9_]+\\)[a-zA-Z]"
-                              , reCompiled =
-                                  Just (compileRegex True "%\\([a-zA-Z0-9_]+\\)[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%[a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "%[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "parenthesised"
-          , Context
-              { cName = "parenthesised"
-              , cSyntax = "Boo"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Boo" , "Normal" )
-                      , 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
-              }
-          )
-        ]
-  , sAuthor = "Marc Dassonneville"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.boo" ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Boo\", sFilename = \"boo.xml\", sShortname = \"Boo\", sContexts = fromList [(\"Comment SlashSlash\",Context {cName = \"Comment SlashSlash\", cSyntax = \"Boo\", cRules = [Rule {rMatcher = LineContinue, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Boo\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"as\",\"from\",\"import\",\"namespace\"])), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"abstract\",\"callable\",\"class\",\"constructor\",\"def\",\"destructor\",\"do\",\"enum\",\"event\",\"final\",\"get\",\"interface\",\"internal\",\"macro\",\"of\",\"override\",\"partial\",\"private\",\"protected\",\"public\",\"return\",\"set\",\"static\",\"struct\",\"transient\",\"virtual\",\"yield\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"and\",\"assert\",\"in\",\"is\",\"not\",\"or\"])), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"and\",\"break\",\"cast\",\"continue\",\"elif\",\"else\",\"ensure\",\"except\",\"for\",\"given\",\"goto\",\"if\",\"in\",\"is\",\"isa\",\"not\",\"or\",\"otherwise\",\"pass\",\"raise\",\"ref\",\"try\",\"unless\",\"when\",\"while\"])), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"__eval__\",\"__switch__\",\"array\",\"assert\",\"checked\",\"enumerate\",\"filter\",\"getter\",\"len\",\"lock\",\"map\",\"matrix\",\"max\",\"min\",\"normalArrayIndexing\",\"print\",\"property\",\"range\",\"rawArrayIndexing\",\"required\",\"typeof\",\"unchecked\",\"using\",\"yieldAll\",\"zip\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"null\",\"self\",\"super\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"false\",\"true\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"bool\",\"byte\",\"char\",\"date\",\"decimal\",\"double\",\"duck\",\"int\",\"long\",\"object\",\"regex\",\"sbyte\",\"short\",\"single\",\"string\",\"timespan\",\"uint\",\"ulong\",\"ushort\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z_][a-zA-Z_0-9]+\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \" ((([0-9]*\\\\.[0-9]+|[0-9]+\\\\.)|([0-9]+|([0-9]*\\\\.[0-9]+|[0-9]+\\\\.))[eE](\\\\+|-)?[0-9]+)|[0-9]+)[jJ]\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([0-9]+\\\\.[0-9]*|\\\\.[0-9]+)([eE][0-9]+)?\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([1-9][0-9]*([eE][0-9]+)?|0)\", reCaseSensitive = True}), 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]*([eE][0-9.]+)?[Ll]\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"0[Xx][0-9a-fA-F]+\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"0[1-9][0-9]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[rR]'''\", reCaseSensitive = True}), rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Boo\",\"Raw Tripple A-string\")]},Rule {rMatcher = RegExpr (RE {reString = \"[rR]\\\"\\\"\\\"\", reCaseSensitive = True}), rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Boo\",\"Raw Tripple Q-string\")]},Rule {rMatcher = RegExpr (RE {reString = \"[rR]'\", reCaseSensitive = True}), rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Boo\",\"Raw A-string\")]},Rule {rMatcher = RegExpr (RE {reString = \"[rR]\\\"\", reCaseSensitive = True}), rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Boo\",\"Raw Q-string\")]},Rule {rMatcher = RegExpr (RE {reString = \"#.*$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*u?'''\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Boo\",\"Tripple A-comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*u?\\\"\\\"\\\"\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Boo\",\"Tripple Q-comment\")]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Boo\",\"Comment SlashSlash\")]},Rule {rMatcher = StringDetect \"'''\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Boo\",\"Tripple A-string\")]},Rule {rMatcher = StringDetect \"\\\"\\\"\\\"\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Boo\",\"Tripple Q-string\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Boo\",\"Single A-string\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Boo\",\"Single Q-string\")]},Rule {rMatcher = DetectChar '(', rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Boo\",\"parenthesised\")]},Rule {rMatcher = DetectChar ')', rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"[|\", rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Boo\",\"Quasi-Quotation\")]},Rule {rMatcher = StringDetect \"|]\", rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[+*/%\\\\|=;\\\\!<>!^&~-]\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%[a-zA-Z]\", 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}),(\"Quasi-Quotation\",Context {cName = \"Quasi-Quotation\", cSyntax = \"Boo\", cRules = [Rule {rMatcher = IncludeRules (\"Boo\",\"Normal\"), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OperatorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Raw A-string\",Context {cName = \"Raw A-string\", cSyntax = \"Boo\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%\\\\([a-zA-Z0-9_]+\\\\)[a-zA-Z]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%[a-zA-Z]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = VerbatimStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Raw Q-string\",Context {cName = \"Raw Q-string\", cSyntax = \"Boo\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%\\\\([a-zA-Z0-9_]+\\\\)[a-zA-Z]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%[a-zA-Z]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = VerbatimStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Raw Tripple A-string\",Context {cName = \"Raw Tripple A-string\", cSyntax = \"Boo\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%\\\\([a-zA-Z0-9_]+\\\\)[a-zA-Z]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%[a-zA-Z]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"'''\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = VerbatimStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Raw Tripple Q-string\",Context {cName = \"Raw Tripple Q-string\", cSyntax = \"Boo\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%\\\\([a-zA-Z0-9_]+\\\\)[a-zA-Z]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%[a-zA-Z]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\"\\\"\\\"\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = VerbatimStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Single A-comment\",Context {cName = \"Single A-comment\", cSyntax = \"Boo\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Single A-string\",Context {cName = \"Single A-string\", cSyntax = \"Boo\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%\\\\([a-zA-Z0-9_]+\\\\)[a-zA-Z]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%[a-zA-Z]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Single Q-comment\",Context {cName = \"Single Q-comment\", cSyntax = \"Boo\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Single Q-string\",Context {cName = \"Single Q-string\", cSyntax = \"Boo\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%\\\\([a-zA-Z0-9_]+\\\\)[a-zA-Z]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%[a-zA-Z]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Tripple A-comment\",Context {cName = \"Tripple A-comment\", cSyntax = \"Boo\", cRules = [Rule {rMatcher = StringDetect \"'''\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Tripple A-string\",Context {cName = \"Tripple A-string\", cSyntax = \"Boo\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%\\\\([a-zA-Z0-9_]+\\\\)[a-zA-Z]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%[a-zA-Z]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"'''\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Tripple Q-comment\",Context {cName = \"Tripple Q-comment\", cSyntax = \"Boo\", cRules = [Rule {rMatcher = HlCChar, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\"\\\"\\\"\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Tripple Q-string\",Context {cName = \"Tripple Q-string\", cSyntax = \"Boo\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%\\\\([a-zA-Z0-9_]+\\\\)[a-zA-Z]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%[a-zA-Z]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\"\\\"\\\"\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"parenthesised\",Context {cName = \"parenthesised\", cSyntax = \"Boo\", cRules = [Rule {rMatcher = IncludeRules (\"Boo\",\"Normal\"), 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})], sAuthor = \"Marc Dassonneville\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [\"*.boo\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/C.hs b/src/Skylighting/Syntax/C.hs
--- a/src/Skylighting/Syntax/C.hs
+++ b/src/Skylighting/Syntax/C.hs
@@ -2,1298 +2,6 @@
 module Skylighting.Syntax.C (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "C"
-  , sFilename = "c.xml"
-  , sShortname = "C"
-  , sContexts =
-      fromList
-        [ ( "AfterHash"
-          , Context
-              { cName = "AfterHash"
-              , cSyntax = "C"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*(?:include|include_next)"
-                              , reCompiled =
-                                  Just (compileRegex False "#\\s*(?:include|include_next)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C" , "Include" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*if(?:def|ndef)?(?=\\s+\\S)"
-                              , reCompiled =
-                                  Just (compileRegex False "#\\s*if(?:def|ndef)?(?=\\s+\\S)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C" , "Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*endif"
-                              , reCompiled = Just (compileRegex False "#\\s*endif")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C" , "Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*define.*((?=\\\\))"
-                              , reCompiled = Just (compileRegex False "#\\s*define.*((?=\\\\))")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C" , "Define" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*pragma\\s+mark\\s+-\\s*$"
-                              , reCompiled =
-                                  Just (compileRegex False "#\\s*pragma\\s+mark\\s+-\\s*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C" , "Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*pragma\\s+mark"
-                              , reCompiled = Just (compileRegex False "#\\s*pragma\\s+mark")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C" , "Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "#\\s*(?:el(?:se|if)|define|undef|line|error|warning|pragma)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "#\\s*(?:el(?:se|if)|define|undef|line|error|warning|pragma)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C" , "Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s+[0-9]+"
-                              , reCompiled = Just (compileRegex False "#\\s+[0-9]+")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C" , "Preprocessor" ) ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Commentar 1"
-          , Context
-              { cName = "Commentar 1"
-              , cSyntax = "C"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Commentar 2"
-          , Context
-              { cName = "Commentar 2"
-              , cSyntax = "C"
-              , cRules =
-                  [ 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 = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Commentar/Preprocessor"
-          , Context
-              { cName = "Commentar/Preprocessor"
-              , cSyntax = "C"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Define"
-          , Context
-              { cName = "Define"
-              , cSyntax = "C"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = PreprocessorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Include"
-          , Context
-              { cName = "Include"
-              , cSyntax = "C"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '"' '"'
-                      , rAttribute = ImportTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '<' '>'
-                      , rAttribute = ImportTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "C" , "Preprocessor" )
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = PreprocessorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "C"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*if\\s+0\\s*$"
-                              , reCompiled = Just (compileRegex True "#\\s*if\\s+0\\s*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C" , "Outscoped" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C" , "AfterHash" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "//BEGIN"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C" , "Region Marker" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "//END"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C" , "Region Marker" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "break"
-                               , "case"
-                               , "continue"
-                               , "default"
-                               , "do"
-                               , "else"
-                               , "for"
-                               , "goto"
-                               , "if"
-                               , "return"
-                               , "switch"
-                               , "while"
-                               ])
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "enum"
-                               , "extern"
-                               , "inline"
-                               , "sizeof"
-                               , "struct"
-                               , "typedef"
-                               , "union"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "_Bool"
-                               , "_Complex"
-                               , "_Imaginary"
-                               , "auto"
-                               , "char"
-                               , "const"
-                               , "double"
-                               , "float"
-                               , "int"
-                               , "int16_t"
-                               , "int32_t"
-                               , "int64_t"
-                               , "int8_t"
-                               , "int_fast16_t"
-                               , "int_fast32_t"
-                               , "int_fast64_t"
-                               , "int_fast8_t"
-                               , "int_least16_t"
-                               , "int_least32_t"
-                               , "int_least64_t"
-                               , "int_least8_t"
-                               , "intmax_t"
-                               , "intptr_t"
-                               , "long"
-                               , "ptrdiff_t"
-                               , "register"
-                               , "restrict"
-                               , "short"
-                               , "sig_atomic_t"
-                               , "signed"
-                               , "size_t"
-                               , "ssize_t"
-                               , "static"
-                               , "uint16_t"
-                               , "uint32_t"
-                               , "uint64_t"
-                               , "uint8_t"
-                               , "uint_fast16_t"
-                               , "uint_fast32_t"
-                               , "uint_fast64_t"
-                               , "uint_fast8_t"
-                               , "uint_least16_t"
-                               , "uint_least32_t"
-                               , "uint_least64_t"
-                               , "uint_least8_t"
-                               , "uintmax_t"
-                               , "uintptr_t"
-                               , "unsigned"
-                               , "void"
-                               , "volatile"
-                               , "wchar_t"
-                               , "wint_t"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = AnyChar "fF"
-                              , rAttribute = FloatTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = True
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "0b[01]+[ul]{0,3}"
-                              , reCompiled = Just (compileRegex False "0b[01]+[ul]{0,3}")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = StringDetect "ULL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LUL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LLU"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "UL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LU"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "U"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "L"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "" )
-                      , rAttribute = NormalTok
-                      , 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 ( "C" , "Commentar 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C" , "Commentar 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ":!%&()+,-/.*<=>?[]|~^;"
-                      , 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
-              }
-          )
-        , ( "Outscoped"
-          , Context
-              { cName = "Outscoped"
-              , cSyntax = "C"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "" )
-                      , 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 = [ Push ( "C" , "Commentar 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C" , "Commentar 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*if"
-                              , reCompiled = Just (compileRegex True "#\\s*if")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C" , "Outscoped intern" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*el(?:se|if)"
-                              , reCompiled = Just (compileRegex True "#\\s*el(?:se|if)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*endif"
-                              , reCompiled = Just (compileRegex True "#\\s*endif")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Outscoped intern"
-          , Context
-              { cName = "Outscoped intern"
-              , cSyntax = "C"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "" )
-                      , 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 = [ Push ( "C" , "Commentar 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C" , "Commentar 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*if"
-                              , reCompiled = Just (compileRegex True "#\\s*if")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C" , "Outscoped intern" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*endif"
-                              , reCompiled = Just (compileRegex True "#\\s*endif")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Preprocessor"
-          , Context
-              { cName = "Preprocessor"
-              , cSyntax = "C"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "" )
-                      , rAttribute = PreprocessorTok
-                      , 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 ( "C" , "Commentar/Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C" , "Commentar 1" ) ]
-                      }
-                  ]
-              , cAttribute = PreprocessorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Region Marker"
-          , Context
-              { cName = "Region Marker"
-              , cSyntax = "C"
-              , cRules = []
-              , cAttribute = RegionMarkerTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "C"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = ""
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.c" , "*.C" , "*.h" ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"C\", sFilename = \"c.xml\", sShortname = \"C\", sContexts = fromList [(\"AfterHash\",Context {cName = \"AfterHash\", cSyntax = \"C\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*(?:include|include_next)\", reCaseSensitive = False}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"C\",\"Include\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*if(?:def|ndef)?(?=\\\\s+\\\\S)\", reCaseSensitive = False}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"C\",\"Preprocessor\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*endif\", reCaseSensitive = False}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"C\",\"Preprocessor\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*define.*((?=\\\\\\\\))\", reCaseSensitive = False}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"C\",\"Define\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*pragma\\\\s+mark\\\\s+-\\\\s*$\", reCaseSensitive = False}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"C\",\"Preprocessor\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*pragma\\\\s+mark\", reCaseSensitive = False}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"C\",\"Preprocessor\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*(?:el(?:se|if)|define|undef|line|error|warning|pragma)\", reCaseSensitive = False}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"C\",\"Preprocessor\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s+[0-9]+\", reCaseSensitive = False}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"C\",\"Preprocessor\")]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Commentar 1\",Context {cName = \"Commentar 1\", cSyntax = \"C\", cRules = [Rule {rMatcher = LineContinue, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Commentar 2\",Context {cName = \"Commentar 2\", cSyntax = \"C\", cRules = [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 = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Commentar/Preprocessor\",Context {cName = \"Commentar/Preprocessor\", cSyntax = \"C\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Define\",Context {cName = \"Define\", cSyntax = \"C\", cRules = [Rule {rMatcher = LineContinue, rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = PreprocessorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Include\",Context {cName = \"Include\", cSyntax = \"C\", cRules = [Rule {rMatcher = LineContinue, rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RangeDetect '\"' '\"', rAttribute = ImportTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RangeDetect '<' '>', rAttribute = ImportTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"C\",\"Preprocessor\"), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = PreprocessorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"C\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*if\\\\s+0\\\\s*$\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"C\",\"Outscoped\")]},Rule {rMatcher = DetectChar '#', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"C\",\"AfterHash\")]},Rule {rMatcher = StringDetect \"//BEGIN\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"C\",\"Region Marker\")]},Rule {rMatcher = StringDetect \"//END\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"C\",\"Region Marker\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"break\",\"case\",\"continue\",\"default\",\"do\",\"else\",\"for\",\"goto\",\"if\",\"return\",\"switch\",\"while\"])), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"enum\",\"extern\",\"inline\",\"sizeof\",\"struct\",\"typedef\",\"union\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"_Bool\",\"_Complex\",\"_Imaginary\",\"auto\",\"char\",\"const\",\"double\",\"float\",\"int\",\"int16_t\",\"int32_t\",\"int64_t\",\"int8_t\",\"int_fast16_t\",\"int_fast32_t\",\"int_fast64_t\",\"int_fast8_t\",\"int_least16_t\",\"int_least32_t\",\"int_least64_t\",\"int_least8_t\",\"intmax_t\",\"intptr_t\",\"long\",\"ptrdiff_t\",\"register\",\"restrict\",\"short\",\"sig_atomic_t\",\"signed\",\"size_t\",\"ssize_t\",\"static\",\"uint16_t\",\"uint32_t\",\"uint64_t\",\"uint8_t\",\"uint_fast16_t\",\"uint_fast32_t\",\"uint_fast64_t\",\"uint_fast8_t\",\"uint_least16_t\",\"uint_least32_t\",\"uint_least64_t\",\"uint_least8_t\",\"uintmax_t\",\"uintptr_t\",\"unsigned\",\"void\",\"volatile\",\"wchar_t\",\"wint_t\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [Rule {rMatcher = AnyChar \"fF\", rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"0b[01]+[ul]{0,3}\", reCaseSensitive = False}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [Rule {rMatcher = StringDetect \"ULL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LUL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LLU\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"UL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LU\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"U\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"L\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"C\",\"String\")]},Rule {rMatcher = IncludeRules (\"Doxygen\",\"\"), rAttribute = NormalTok, 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 (\"C\",\"Commentar 1\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"C\",\"Commentar 2\")]},Rule {rMatcher = AnyChar \":!%&()+,-/.*<=>?[]|~^;\", 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}),(\"Outscoped\",Context {cName = \"Outscoped\", cSyntax = \"C\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},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 = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"C\",\"String\")]},Rule {rMatcher = IncludeRules (\"Doxygen\",\"\"), 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 = [Push (\"C\",\"Commentar 1\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"C\",\"Commentar 2\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*if\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"C\",\"Outscoped intern\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*el(?:se|if)\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*endif\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Outscoped intern\",Context {cName = \"Outscoped intern\", cSyntax = \"C\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},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 = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"C\",\"String\")]},Rule {rMatcher = IncludeRules (\"Doxygen\",\"\"), 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 = [Push (\"C\",\"Commentar 1\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"C\",\"Commentar 2\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*if\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"C\",\"Outscoped intern\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*endif\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Preprocessor\",Context {cName = \"Preprocessor\", cSyntax = \"C\", cRules = [Rule {rMatcher = LineContinue, rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Doxygen\",\"\"), rAttribute = PreprocessorTok, 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 (\"C\",\"Commentar/Preprocessor\")]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"C\",\"Commentar 1\")]}], cAttribute = PreprocessorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Region Marker\",Context {cName = \"Region Marker\", cSyntax = \"C\", cRules = [], cAttribute = RegionMarkerTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"C\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCStringChar, rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.c\",\"*.C\",\"*.h\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Changelog.hs b/src/Skylighting/Syntax/Changelog.hs
--- a/src/Skylighting/Syntax/Changelog.hs
+++ b/src/Skylighting/Syntax/Changelog.hs
@@ -2,152 +2,6 @@
 module Skylighting.Syntax.Changelog (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "ChangeLog"
-  , sFilename = "changelog.xml"
-  , sShortname = "Changelog"
-  , sContexts =
-      fromList
-        [ ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "ChangeLog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '*'
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ChangeLog" , "entry" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\d\\d\\d\\d\\s*-\\s*\\d\\d\\s*-\\s*\\d\\d\\s*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\d\\d\\d\\d\\s*-\\s*\\d\\d\\s*-\\s*\\d\\d\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "ChangeLog" , "line" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "entry"
-          , Context
-              { cName = "entry"
-              , cSyntax = "ChangeLog"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ".*:"
-                              , reCompiled = Just (compileRegex True ".*:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "line"
-          , Context
-              { cName = "line"
-              , cSyntax = "ChangeLog"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\w\\s*)+"
-                              , reCompiled = Just (compileRegex True "(\\w\\s*)+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , 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 = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Dominik Haumann (dhdev@gmx.de)"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions = [ "ChangeLog" ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"ChangeLog\", sFilename = \"changelog.xml\", sShortname = \"Changelog\", sContexts = fromList [(\"Normal\",Context {cName = \"Normal\", cSyntax = \"ChangeLog\", cRules = [Rule {rMatcher = DetectChar '*', rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"ChangeLog\",\"entry\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\d\\\\d\\\\d\\\\d\\\\s*-\\\\s*\\\\d\\\\d\\\\s*-\\\\s*\\\\d\\\\d\\\\s*\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"ChangeLog\",\"line\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"entry\",Context {cName = \"entry\", cSyntax = \"ChangeLog\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \".*:\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"line\",Context {cName = \"line\", cSyntax = \"ChangeLog\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(\\\\w\\\\s*)+\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"<.*>\\\\s*$\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Dominik Haumann (dhdev@gmx.de)\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [\"ChangeLog\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Clojure.hs b/src/Skylighting/Syntax/Clojure.hs
--- a/src/Skylighting/Syntax/Clojure.hs
+++ b/src/Skylighting/Syntax/Clojure.hs
@@ -2,1559 +2,6 @@
 module Skylighting.Syntax.Clojure (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Clojure"
-  , sFilename = "clojure.xml"
-  , sShortname = "Clojure"
-  , sContexts =
-      fromList
-        [ ( "Default"
-          , Context
-              { cName = "Default"
-              , cSyntax = "Clojure"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ";.*$"
-                              , reCompiled = Just (compileRegex True ";.*$")
-                              , reCaseSensitive = True
-                              }
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[@~]\\S+"
-                              , reCompiled = Just (compileRegex True "[@~]\\S+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AttributeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "::?[a-zA-Z0-9\\-]+"
-                              , reCompiled = Just (compileRegex True "::?[a-zA-Z0-9\\-]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AttributeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '^' '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '\''
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&(),.;[]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "*"
-                               , "+"
-                               , "-"
-                               , "->"
-                               , "->>"
-                               , "."
-                               , ".."
-                               , "/"
-                               , "<"
-                               , "<="
-                               , "="
-                               , "=="
-                               , ">"
-                               , ">="
-                               , "accessor"
-                               , "aclone"
-                               , "add-classpath"
-                               , "add-watcher"
-                               , "agent"
-                               , "agent-errors"
-                               , "aget"
-                               , "alength"
-                               , "alias"
-                               , "all-ns"
-                               , "alter"
-                               , "alter-meta!"
-                               , "alter-var-root"
-                               , "amap"
-                               , "ancestors"
-                               , "and"
-                               , "append-child"
-                               , "apply"
-                               , "apply-template"
-                               , "are"
-                               , "areduce"
-                               , "array-map"
-                               , "aset"
-                               , "aset-boolean"
-                               , "aset-byte"
-                               , "aset-char"
-                               , "aset-double"
-                               , "aset-float"
-                               , "aset-int"
-                               , "aset-long"
-                               , "aset-short"
-                               , "assert"
-                               , "assert-any"
-                               , "assert-expr"
-                               , "assert-predicate"
-                               , "assoc"
-                               , "assoc!"
-                               , "assoc-in"
-                               , "associative?"
-                               , "atom"
-                               , "atom?"
-                               , "attrs"
-                               , "await"
-                               , "await-for"
-                               , "await1"
-                               , "bases"
-                               , "bean"
-                               , "bigdec"
-                               , "bigint"
-                               , "binding"
-                               , "bit-and"
-                               , "bit-and-not"
-                               , "bit-clear"
-                               , "bit-flip"
-                               , "bit-not"
-                               , "bit-or"
-                               , "bit-set"
-                               , "bit-shift-left"
-                               , "bit-shift-right"
-                               , "bit-test"
-                               , "bit-xor"
-                               , "boolean"
-                               , "boolean-array"
-                               , "booleans"
-                               , "bound-fn"
-                               , "bound-fn*"
-                               , "branch?"
-                               , "butlast"
-                               , "byte"
-                               , "byte-array"
-                               , "bytes"
-                               , "case"
-                               , "cast"
-                               , "catch"
-                               , "char"
-                               , "char-array"
-                               , "char-escape-string"
-                               , "char-name-string"
-                               , "char?"
-                               , "chars"
-                               , "children"
-                               , "chunk"
-                               , "chunk-append"
-                               , "chunk-buffer"
-                               , "chunk-cons"
-                               , "chunk-first"
-                               , "chunk-next"
-                               , "chunk-rest"
-                               , "chunked-seq?"
-                               , "class"
-                               , "class?"
-                               , "clear-agent-errors"
-                               , "clojure-version"
-                               , "coll?"
-                               , "collection-tag"
-                               , "comment"
-                               , "commute"
-                               , "comp"
-                               , "comparator"
-                               , "compare"
-                               , "compare-and-set!"
-                               , "compile"
-                               , "complement"
-                               , "compose-fixtures"
-                               , "concat"
-                               , "cond"
-                               , "condp"
-                               , "conj"
-                               , "conj!"
-                               , "cons"
-                               , "constantly"
-                               , "construct-proxy"
-                               , "contains?"
-                               , "content"
-                               , "content-handler"
-                               , "count"
-                               , "counted?"
-                               , "create-ns"
-                               , "create-struct"
-                               , "cycle"
-                               , "dec"
-                               , "decimal?"
-                               , "declare"
-                               , "delay"
-                               , "delay?"
-                               , "deliver"
-                               , "deref"
-                               , "derive"
-                               , "descendants"
-                               , "destructure"
-                               , "difference"
-                               , "disj"
-                               , "disj!"
-                               , "dissoc"
-                               , "dissoc!"
-                               , "distinct"
-                               , "distinct?"
-                               , "do"
-                               , "do-template"
-                               , "doall"
-                               , "doc"
-                               , "dorun"
-                               , "doseq"
-                               , "dosync"
-                               , "dotimes"
-                               , "doto"
-                               , "double"
-                               , "double-array"
-                               , "doubles"
-                               , "down"
-                               , "drop"
-                               , "drop-last"
-                               , "drop-while"
-                               , "e"
-                               , "edit"
-                               , "element"
-                               , "emit"
-                               , "emit-element"
-                               , "empty"
-                               , "empty?"
-                               , "end?"
-                               , "ensure"
-                               , "enumeration-seq"
-                               , "eval"
-                               , "even?"
-                               , "every?"
-                               , "extend"
-                               , "extend-protocol"
-                               , "extend-type"
-                               , "extenders"
-                               , "extends?"
-                               , "false?"
-                               , "ffirst"
-                               , "file-position"
-                               , "file-seq"
-                               , "filter"
-                               , "finally"
-                               , "find"
-                               , "find-doc"
-                               , "find-ns"
-                               , "find-var"
-                               , "first"
-                               , "float"
-                               , "float-array"
-                               , "float?"
-                               , "floats"
-                               , "flush"
-                               , "fn"
-                               , "fn?"
-                               , "fnext"
-                               , "for"
-                               , "force"
-                               , "format"
-                               , "function?"
-                               , "future"
-                               , "future-call"
-                               , "future-cancel"
-                               , "future-cancelled?"
-                               , "future-done?"
-                               , "future?"
-                               , "gen-and-load-class"
-                               , "gen-and-save-class"
-                               , "gen-class"
-                               , "gen-interface"
-                               , "gensym"
-                               , "get"
-                               , "get-child"
-                               , "get-child-count"
-                               , "get-in"
-                               , "get-method"
-                               , "get-possibly-unbound-var"
-                               , "get-proxy-class"
-                               , "get-thread-bindings"
-                               , "get-validator"
-                               , "handle"
-                               , "handler-case"
-                               , "hash"
-                               , "hash-map"
-                               , "hash-set"
-                               , "identical?"
-                               , "identity"
-                               , "if"
-                               , "if-let"
-                               , "if-not"
-                               , "ifn?"
-                               , "import"
-                               , "in-ns"
-                               , "inc"
-                               , "inc-report-counter"
-                               , "index"
-                               , "init-proxy"
-                               , "insert-child"
-                               , "insert-left"
-                               , "insert-right"
-                               , "inspect"
-                               , "inspect-table"
-                               , "inspect-tree"
-                               , "instance?"
-                               , "int"
-                               , "int-array"
-                               , "integer?"
-                               , "interleave"
-                               , "intern"
-                               , "interpose"
-                               , "intersection"
-                               , "into"
-                               , "into-array"
-                               , "ints"
-                               , "io!"
-                               , "is"
-                               , "is-leaf"
-                               , "isa?"
-                               , "iterate"
-                               , "iterator-seq"
-                               , "join"
-                               , "join-fixtures"
-                               , "juxt"
-                               , "key"
-                               , "keys"
-                               , "keyword"
-                               , "keyword?"
-                               , "keywordize-keys"
-                               , "last"
-                               , "lazy-cat"
-                               , "lazy-seq"
-                               , "left"
-                               , "leftmost"
-                               , "lefts"
-                               , "let"
-                               , "letfn"
-                               , "line-seq"
-                               , "list"
-                               , "list*"
-                               , "list-model"
-                               , "list-provider"
-                               , "list?"
-                               , "load"
-                               , "load-file"
-                               , "load-reader"
-                               , "load-script"
-                               , "load-string"
-                               , "loaded-libs"
-                               , "locking"
-                               , "long"
-                               , "long-array"
-                               , "longs"
-                               , "loop"
-                               , "macroexpand"
-                               , "macroexpand-1"
-                               , "macroexpand-all"
-                               , "main"
-                               , "make-array"
-                               , "make-hierarchy"
-                               , "make-node"
-                               , "map"
-                               , "map-invert"
-                               , "map?"
-                               , "mapcat"
-                               , "max"
-                               , "max-key"
-                               , "memfn"
-                               , "memoize"
-                               , "merge"
-                               , "merge-with"
-                               , "meta"
-                               , "method-sig"
-                               , "methods"
-                               , "min"
-                               , "min-key"
-                               , "mod"
-                               , "name"
-                               , "namespace"
-                               , "neg?"
-                               , "newline"
-                               , "next"
-                               , "nfirst"
-                               , "nil?"
-                               , "nnext"
-                               , "node"
-                               , "not"
-                               , "not-any?"
-                               , "not-empty"
-                               , "not-every?"
-                               , "not="
-                               , "ns"
-                               , "ns-aliases"
-                               , "ns-imports"
-                               , "ns-interns"
-                               , "ns-map"
-                               , "ns-name"
-                               , "ns-publics"
-                               , "ns-refers"
-                               , "ns-resolve"
-                               , "ns-unalias"
-                               , "ns-unmap"
-                               , "nth"
-                               , "nthnext"
-                               , "num"
-                               , "number?"
-                               , "odd?"
-                               , "or"
-                               , "parents"
-                               , "partial"
-                               , "partition"
-                               , "path"
-                               , "pcalls"
-                               , "peek"
-                               , "persistent!"
-                               , "pmap"
-                               , "pop"
-                               , "pop!"
-                               , "pop-thread-bindings"
-                               , "pos?"
-                               , "postwalk"
-                               , "postwalk-demo"
-                               , "postwalk-replace"
-                               , "pr"
-                               , "pr-str"
-                               , "prefer-method"
-                               , "prefers"
-                               , "prev"
-                               , "prewalk"
-                               , "prewalk-demo"
-                               , "prewalk-replace"
-                               , "primitives-classnames"
-                               , "print"
-                               , "print-cause-trace"
-                               , "print-ctor"
-                               , "print-doc"
-                               , "print-dup"
-                               , "print-method"
-                               , "print-namespace-doc"
-                               , "print-simple"
-                               , "print-special-doc"
-                               , "print-stack-trace"
-                               , "print-str"
-                               , "print-throwable"
-                               , "print-trace-element"
-                               , "printf"
-                               , "println"
-                               , "println-str"
-                               , "prn"
-                               , "prn-str"
-                               , "project"
-                               , "promise"
-                               , "proxy"
-                               , "proxy-call-with-super"
-                               , "proxy-mappings"
-                               , "proxy-name"
-                               , "proxy-super"
-                               , "push-thread-bindings"
-                               , "pvalues"
-                               , "quot"
-                               , "rand"
-                               , "rand-int"
-                               , "range"
-                               , "ratio?"
-                               , "rational?"
-                               , "rationalize"
-                               , "re-find"
-                               , "re-groups"
-                               , "re-matcher"
-                               , "re-matches"
-                               , "re-pattern"
-                               , "re-seq"
-                               , "read"
-                               , "read-line"
-                               , "read-string"
-                               , "recur"
-                               , "reduce"
-                               , "ref"
-                               , "ref-history-count"
-                               , "ref-max-history"
-                               , "ref-min-history"
-                               , "ref-set"
-                               , "refer"
-                               , "refer-clojure"
-                               , "reify"
-                               , "release-pending-sends"
-                               , "rem"
-                               , "remove"
-                               , "remove-method"
-                               , "remove-ns"
-                               , "remove-watcher"
-                               , "rename"
-                               , "rename-keys"
-                               , "repeat"
-                               , "repeatedly"
-                               , "repl"
-                               , "repl-caught"
-                               , "repl-exception"
-                               , "repl-prompt"
-                               , "repl-read"
-                               , "replace"
-                               , "replicate"
-                               , "report"
-                               , "require"
-                               , "reset!"
-                               , "reset-meta!"
-                               , "resolve"
-                               , "rest"
-                               , "resultset-seq"
-                               , "reverse"
-                               , "reversible?"
-                               , "right"
-                               , "rightmost"
-                               , "rights"
-                               , "root"
-                               , "rseq"
-                               , "rsubseq"
-                               , "run-all-tests"
-                               , "run-tests"
-                               , "satisfies?"
-                               , "second"
-                               , "select"
-                               , "select-keys"
-                               , "send"
-                               , "send-off"
-                               , "seq"
-                               , "seq-zip"
-                               , "seq?"
-                               , "seque"
-                               , "sequence"
-                               , "sequential?"
-                               , "set"
-                               , "set-test"
-                               , "set-validator!"
-                               , "set?"
-                               , "short"
-                               , "short-array"
-                               , "shorts"
-                               , "shutdown-agents"
-                               , "skip-if-eol"
-                               , "skip-whitespace"
-                               , "slurp"
-                               , "some"
-                               , "sort"
-                               , "sort-by"
-                               , "sorted-map"
-                               , "sorted-map-by"
-                               , "sorted-set"
-                               , "sorted-set-by"
-                               , "sorted?"
-                               , "special-form-anchor"
-                               , "special-symbol?"
-                               , "split-at"
-                               , "split-with"
-                               , "str"
-                               , "stream?"
-                               , "string?"
-                               , "stringify-keys"
-                               , "struct"
-                               , "struct-map"
-                               , "subs"
-                               , "subseq"
-                               , "subvec"
-                               , "successful?"
-                               , "supers"
-                               , "swap!"
-                               , "symbol"
-                               , "symbol?"
-                               , "sync"
-                               , "syntax-symbol-anchor"
-                               , "take"
-                               , "take-last"
-                               , "take-nth"
-                               , "take-while"
-                               , "test"
-                               , "test-all-vars"
-                               , "test-ns"
-                               , "test-var"
-                               , "testing"
-                               , "testing-contexts-str"
-                               , "testing-vars-str"
-                               , "the-ns"
-                               , "throw"
-                               , "time"
-                               , "to-array"
-                               , "to-array-2d"
-                               , "trampoline"
-                               , "transient"
-                               , "tree-seq"
-                               , "true?"
-                               , "try"
-                               , "try-expr"
-                               , "type"
-                               , "unchecked-add"
-                               , "unchecked-dec"
-                               , "unchecked-divide"
-                               , "unchecked-inc"
-                               , "unchecked-multiply"
-                               , "unchecked-negate"
-                               , "unchecked-remainder"
-                               , "unchecked-subtract"
-                               , "underive"
-                               , "unimport"
-                               , "union"
-                               , "unquote"
-                               , "unquote-splicing"
-                               , "up"
-                               , "update-in"
-                               , "update-proxy"
-                               , "use"
-                               , "use-fixtures"
-                               , "val"
-                               , "vals"
-                               , "var-get"
-                               , "var-set"
-                               , "var?"
-                               , "vary-meta"
-                               , "vec"
-                               , "vector"
-                               , "vector?"
-                               , "walk"
-                               , "when"
-                               , "when-first"
-                               , "when-let"
-                               , "when-not"
-                               , "while"
-                               , "with-bindings"
-                               , "with-bindings*"
-                               , "with-in-str"
-                               , "with-loading-context"
-                               , "with-local-vars"
-                               , "with-meta"
-                               , "with-open"
-                               , "with-out-str"
-                               , "with-precision"
-                               , "with-test"
-                               , "with-test-out"
-                               , "xml-seq"
-                               , "zero?"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&(),.;[]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "*1"
-                               , "*2"
-                               , "*3"
-                               , "*agent*"
-                               , "*allow-unresolved-vars*"
-                               , "*assert*"
-                               , "*clojure-version*"
-                               , "*command-line-args*"
-                               , "*compile-files*"
-                               , "*compile-path*"
-                               , "*current*"
-                               , "*e"
-                               , "*err*"
-                               , "*file*"
-                               , "*flush-on-newline*"
-                               , "*in*"
-                               , "*initial-report-counters*"
-                               , "*load-tests*"
-                               , "*macro-meta*"
-                               , "*math-context*"
-                               , "*ns*"
-                               , "*out*"
-                               , "*print-dup*"
-                               , "*print-length*"
-                               , "*print-level*"
-                               , "*print-meta*"
-                               , "*print-readably*"
-                               , "*read-eval*"
-                               , "*report-counters*"
-                               , "*sb*"
-                               , "*source-path*"
-                               , "*stack*"
-                               , "*stack-trace-depth*"
-                               , "*state*"
-                               , "*test-out*"
-                               , "*testing-contexts*"
-                               , "*testing-vars*"
-                               , "*use-context-classloader*"
-                               , "*warn-on-reflection*"
-                               ])
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&(),.;[]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "def"
-                               , "def-"
-                               , "defalias"
-                               , "defhinted"
-                               , "definline"
-                               , "defmacro"
-                               , "defmacro-"
-                               , "defmethod"
-                               , "defmulti"
-                               , "defn"
-                               , "defn-"
-                               , "defn-memo"
-                               , "defnk"
-                               , "defonce"
-                               , "defonce-"
-                               , "defprotocol"
-                               , "defrecord"
-                               , "defstruct"
-                               , "defstruct-"
-                               , "deftest"
-                               , "deftest-"
-                               , "deftype"
-                               , "defunbound"
-                               , "defunbound-"
-                               , "defvar"
-                               , "defvar-"
-                               ])
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Clojure" , "function_decl" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\."
-                              , reCompiled = Just (compileRegex True "\\\\.")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Clojure" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Clojure" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Clojure" , "Level1" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Level0"
-          , Context
-              { cName = "Level0"
-              , cSyntax = "Clojure"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Clojure" , "Level1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Clojure" , "Level1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Clojure" , "Default" )
-                      , 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
-              }
-          )
-        , ( "Level1"
-          , Context
-              { cName = "Level1"
-              , cSyntax = "Clojure"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Clojure" , "Level2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Clojure" , "Level2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Clojure" , "Default" )
-                      , 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
-              }
-          )
-        , ( "Level2"
-          , Context
-              { cName = "Level2"
-              , cSyntax = "Clojure"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Clojure" , "Level3" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Clojure" , "Level3" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Clojure" , "Default" )
-                      , 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
-              }
-          )
-        , ( "Level3"
-          , Context
-              { cName = "Level3"
-              , cSyntax = "Clojure"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Clojure" , "Level4" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Clojure" , "Level4" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Clojure" , "Default" )
-                      , 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
-              }
-          )
-        , ( "Level4"
-          , Context
-              { cName = "Level4"
-              , cSyntax = "Clojure"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Clojure" , "Level5" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Clojure" , "Level5" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Clojure" , "Default" )
-                      , 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
-              }
-          )
-        , ( "Level5"
-          , Context
-              { cName = "Level5"
-              , cSyntax = "Clojure"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Clojure" , "Level6" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Clojure" , "Level6" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Clojure" , "Default" )
-                      , 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
-              }
-          )
-        , ( "Level6"
-          , Context
-              { cName = "Level6"
-              , cSyntax = "Clojure"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Clojure" , "Level1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Clojure" , "Level1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Clojure" , "Default" )
-                      , 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
-              }
-          )
-        , ( "SpecialNumber"
-          , Context
-              { cName = "SpecialNumber"
-              , cSyntax = "Clojure"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Clojure"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\\\."
-                              , reCompiled = Just (compileRegex True "#\\\\.")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "function_decl"
-          , Context
-              { cName = "function_decl"
-              , cSyntax = "Clojure"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*[A-Za-z0-9-+\\<\\>//\\*]*\\s*"
-                              , reCompiled =
-                                  Just (compileRegex True "\\s*[A-Za-z0-9-+\\<\\>//\\*]*\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor =
-      "Dominik Haumann [lisp] modified for clojure by Caspar Hasenclever"
-  , sVersion = "5"
-  , sLicense = "LGPLv2+"
-  , sExtensions = [ "*.clj" , "*.cljs" ]
-  , sStartingContext = "Level0"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Clojure\", sFilename = \"clojure.xml\", sShortname = \"Clojure\", sContexts = fromList [(\"Default\",Context {cName = \"Default\", cSyntax = \"Clojure\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \";.*$\", reCaseSensitive = True}), 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 = []},Rule {rMatcher = RegExpr (RE {reString = \"[@~]\\\\S+\", reCaseSensitive = True}), rAttribute = AttributeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"::?[a-zA-Z0-9\\\\-]+\", reCaseSensitive = True}), rAttribute = AttributeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '#' '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '^' '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ']', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '#' '\\'', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&(),.;[]^{|}~\"}) (CaseSensitiveWords (fromList [\"*\",\"+\",\"-\",\"->\",\"->>\",\".\",\"..\",\"/\",\"<\",\"<=\",\"=\",\"==\",\">\",\">=\",\"accessor\",\"aclone\",\"add-classpath\",\"add-watcher\",\"agent\",\"agent-errors\",\"aget\",\"alength\",\"alias\",\"all-ns\",\"alter\",\"alter-meta!\",\"alter-var-root\",\"amap\",\"ancestors\",\"and\",\"append-child\",\"apply\",\"apply-template\",\"are\",\"areduce\",\"array-map\",\"aset\",\"aset-boolean\",\"aset-byte\",\"aset-char\",\"aset-double\",\"aset-float\",\"aset-int\",\"aset-long\",\"aset-short\",\"assert\",\"assert-any\",\"assert-expr\",\"assert-predicate\",\"assoc\",\"assoc!\",\"assoc-in\",\"associative?\",\"atom\",\"atom?\",\"attrs\",\"await\",\"await-for\",\"await1\",\"bases\",\"bean\",\"bigdec\",\"bigint\",\"binding\",\"bit-and\",\"bit-and-not\",\"bit-clear\",\"bit-flip\",\"bit-not\",\"bit-or\",\"bit-set\",\"bit-shift-left\",\"bit-shift-right\",\"bit-test\",\"bit-xor\",\"boolean\",\"boolean-array\",\"booleans\",\"bound-fn\",\"bound-fn*\",\"branch?\",\"butlast\",\"byte\",\"byte-array\",\"bytes\",\"case\",\"cast\",\"catch\",\"char\",\"char-array\",\"char-escape-string\",\"char-name-string\",\"char?\",\"chars\",\"children\",\"chunk\",\"chunk-append\",\"chunk-buffer\",\"chunk-cons\",\"chunk-first\",\"chunk-next\",\"chunk-rest\",\"chunked-seq?\",\"class\",\"class?\",\"clear-agent-errors\",\"clojure-version\",\"coll?\",\"collection-tag\",\"comment\",\"commute\",\"comp\",\"comparator\",\"compare\",\"compare-and-set!\",\"compile\",\"complement\",\"compose-fixtures\",\"concat\",\"cond\",\"condp\",\"conj\",\"conj!\",\"cons\",\"constantly\",\"construct-proxy\",\"contains?\",\"content\",\"content-handler\",\"count\",\"counted?\",\"create-ns\",\"create-struct\",\"cycle\",\"dec\",\"decimal?\",\"declare\",\"delay\",\"delay?\",\"deliver\",\"deref\",\"derive\",\"descendants\",\"destructure\",\"difference\",\"disj\",\"disj!\",\"dissoc\",\"dissoc!\",\"distinct\",\"distinct?\",\"do\",\"do-template\",\"doall\",\"doc\",\"dorun\",\"doseq\",\"dosync\",\"dotimes\",\"doto\",\"double\",\"double-array\",\"doubles\",\"down\",\"drop\",\"drop-last\",\"drop-while\",\"e\",\"edit\",\"element\",\"emit\",\"emit-element\",\"empty\",\"empty?\",\"end?\",\"ensure\",\"enumeration-seq\",\"eval\",\"even?\",\"every?\",\"extend\",\"extend-protocol\",\"extend-type\",\"extenders\",\"extends?\",\"false?\",\"ffirst\",\"file-position\",\"file-seq\",\"filter\",\"finally\",\"find\",\"find-doc\",\"find-ns\",\"find-var\",\"first\",\"float\",\"float-array\",\"float?\",\"floats\",\"flush\",\"fn\",\"fn?\",\"fnext\",\"for\",\"force\",\"format\",\"function?\",\"future\",\"future-call\",\"future-cancel\",\"future-cancelled?\",\"future-done?\",\"future?\",\"gen-and-load-class\",\"gen-and-save-class\",\"gen-class\",\"gen-interface\",\"gensym\",\"get\",\"get-child\",\"get-child-count\",\"get-in\",\"get-method\",\"get-possibly-unbound-var\",\"get-proxy-class\",\"get-thread-bindings\",\"get-validator\",\"handle\",\"handler-case\",\"hash\",\"hash-map\",\"hash-set\",\"identical?\",\"identity\",\"if\",\"if-let\",\"if-not\",\"ifn?\",\"import\",\"in-ns\",\"inc\",\"inc-report-counter\",\"index\",\"init-proxy\",\"insert-child\",\"insert-left\",\"insert-right\",\"inspect\",\"inspect-table\",\"inspect-tree\",\"instance?\",\"int\",\"int-array\",\"integer?\",\"interleave\",\"intern\",\"interpose\",\"intersection\",\"into\",\"into-array\",\"ints\",\"io!\",\"is\",\"is-leaf\",\"isa?\",\"iterate\",\"iterator-seq\",\"join\",\"join-fixtures\",\"juxt\",\"key\",\"keys\",\"keyword\",\"keyword?\",\"keywordize-keys\",\"last\",\"lazy-cat\",\"lazy-seq\",\"left\",\"leftmost\",\"lefts\",\"let\",\"letfn\",\"line-seq\",\"list\",\"list*\",\"list-model\",\"list-provider\",\"list?\",\"load\",\"load-file\",\"load-reader\",\"load-script\",\"load-string\",\"loaded-libs\",\"locking\",\"long\",\"long-array\",\"longs\",\"loop\",\"macroexpand\",\"macroexpand-1\",\"macroexpand-all\",\"main\",\"make-array\",\"make-hierarchy\",\"make-node\",\"map\",\"map-invert\",\"map?\",\"mapcat\",\"max\",\"max-key\",\"memfn\",\"memoize\",\"merge\",\"merge-with\",\"meta\",\"method-sig\",\"methods\",\"min\",\"min-key\",\"mod\",\"name\",\"namespace\",\"neg?\",\"newline\",\"next\",\"nfirst\",\"nil?\",\"nnext\",\"node\",\"not\",\"not-any?\",\"not-empty\",\"not-every?\",\"not=\",\"ns\",\"ns-aliases\",\"ns-imports\",\"ns-interns\",\"ns-map\",\"ns-name\",\"ns-publics\",\"ns-refers\",\"ns-resolve\",\"ns-unalias\",\"ns-unmap\",\"nth\",\"nthnext\",\"num\",\"number?\",\"odd?\",\"or\",\"parents\",\"partial\",\"partition\",\"path\",\"pcalls\",\"peek\",\"persistent!\",\"pmap\",\"pop\",\"pop!\",\"pop-thread-bindings\",\"pos?\",\"postwalk\",\"postwalk-demo\",\"postwalk-replace\",\"pr\",\"pr-str\",\"prefer-method\",\"prefers\",\"prev\",\"prewalk\",\"prewalk-demo\",\"prewalk-replace\",\"primitives-classnames\",\"print\",\"print-cause-trace\",\"print-ctor\",\"print-doc\",\"print-dup\",\"print-method\",\"print-namespace-doc\",\"print-simple\",\"print-special-doc\",\"print-stack-trace\",\"print-str\",\"print-throwable\",\"print-trace-element\",\"printf\",\"println\",\"println-str\",\"prn\",\"prn-str\",\"project\",\"promise\",\"proxy\",\"proxy-call-with-super\",\"proxy-mappings\",\"proxy-name\",\"proxy-super\",\"push-thread-bindings\",\"pvalues\",\"quot\",\"rand\",\"rand-int\",\"range\",\"ratio?\",\"rational?\",\"rationalize\",\"re-find\",\"re-groups\",\"re-matcher\",\"re-matches\",\"re-pattern\",\"re-seq\",\"read\",\"read-line\",\"read-string\",\"recur\",\"reduce\",\"ref\",\"ref-history-count\",\"ref-max-history\",\"ref-min-history\",\"ref-set\",\"refer\",\"refer-clojure\",\"reify\",\"release-pending-sends\",\"rem\",\"remove\",\"remove-method\",\"remove-ns\",\"remove-watcher\",\"rename\",\"rename-keys\",\"repeat\",\"repeatedly\",\"repl\",\"repl-caught\",\"repl-exception\",\"repl-prompt\",\"repl-read\",\"replace\",\"replicate\",\"report\",\"require\",\"reset!\",\"reset-meta!\",\"resolve\",\"rest\",\"resultset-seq\",\"reverse\",\"reversible?\",\"right\",\"rightmost\",\"rights\",\"root\",\"rseq\",\"rsubseq\",\"run-all-tests\",\"run-tests\",\"satisfies?\",\"second\",\"select\",\"select-keys\",\"send\",\"send-off\",\"seq\",\"seq-zip\",\"seq?\",\"seque\",\"sequence\",\"sequential?\",\"set\",\"set-test\",\"set-validator!\",\"set?\",\"short\",\"short-array\",\"shorts\",\"shutdown-agents\",\"skip-if-eol\",\"skip-whitespace\",\"slurp\",\"some\",\"sort\",\"sort-by\",\"sorted-map\",\"sorted-map-by\",\"sorted-set\",\"sorted-set-by\",\"sorted?\",\"special-form-anchor\",\"special-symbol?\",\"split-at\",\"split-with\",\"str\",\"stream?\",\"string?\",\"stringify-keys\",\"struct\",\"struct-map\",\"subs\",\"subseq\",\"subvec\",\"successful?\",\"supers\",\"swap!\",\"symbol\",\"symbol?\",\"sync\",\"syntax-symbol-anchor\",\"take\",\"take-last\",\"take-nth\",\"take-while\",\"test\",\"test-all-vars\",\"test-ns\",\"test-var\",\"testing\",\"testing-contexts-str\",\"testing-vars-str\",\"the-ns\",\"throw\",\"time\",\"to-array\",\"to-array-2d\",\"trampoline\",\"transient\",\"tree-seq\",\"true?\",\"try\",\"try-expr\",\"type\",\"unchecked-add\",\"unchecked-dec\",\"unchecked-divide\",\"unchecked-inc\",\"unchecked-multiply\",\"unchecked-negate\",\"unchecked-remainder\",\"unchecked-subtract\",\"underive\",\"unimport\",\"union\",\"unquote\",\"unquote-splicing\",\"up\",\"update-in\",\"update-proxy\",\"use\",\"use-fixtures\",\"val\",\"vals\",\"var-get\",\"var-set\",\"var?\",\"vary-meta\",\"vec\",\"vector\",\"vector?\",\"walk\",\"when\",\"when-first\",\"when-let\",\"when-not\",\"while\",\"with-bindings\",\"with-bindings*\",\"with-in-str\",\"with-loading-context\",\"with-local-vars\",\"with-meta\",\"with-open\",\"with-out-str\",\"with-precision\",\"with-test\",\"with-test-out\",\"xml-seq\",\"zero?\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&(),.;[]^{|}~\"}) (CaseSensitiveWords (fromList [\"*1\",\"*2\",\"*3\",\"*agent*\",\"*allow-unresolved-vars*\",\"*assert*\",\"*clojure-version*\",\"*command-line-args*\",\"*compile-files*\",\"*compile-path*\",\"*current*\",\"*e\",\"*err*\",\"*file*\",\"*flush-on-newline*\",\"*in*\",\"*initial-report-counters*\",\"*load-tests*\",\"*macro-meta*\",\"*math-context*\",\"*ns*\",\"*out*\",\"*print-dup*\",\"*print-length*\",\"*print-level*\",\"*print-meta*\",\"*print-readably*\",\"*read-eval*\",\"*report-counters*\",\"*sb*\",\"*source-path*\",\"*stack*\",\"*stack-trace-depth*\",\"*state*\",\"*test-out*\",\"*testing-contexts*\",\"*testing-vars*\",\"*use-context-classloader*\",\"*warn-on-reflection*\"])), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&(),.;[]^{|}~\"}) (CaseSensitiveWords (fromList [\"def\",\"def-\",\"defalias\",\"defhinted\",\"definline\",\"defmacro\",\"defmacro-\",\"defmethod\",\"defmulti\",\"defn\",\"defn-\",\"defn-memo\",\"defnk\",\"defonce\",\"defonce-\",\"defprotocol\",\"defrecord\",\"defstruct\",\"defstruct-\",\"deftest\",\"deftest-\",\"deftype\",\"defunbound\",\"defunbound-\",\"defvar\",\"defvar-\"])), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Clojure\",\"function_decl\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '#' '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Clojure\",\"String\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Clojure\",\"String\")]},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Clojure\",\"Level1\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Level0\",Context {cName = \"Level0\", cSyntax = \"Clojure\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Clojure\",\"Level1\")]},Rule {rMatcher = Detect2Chars '#' '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Clojure\",\"Level1\")]},Rule {rMatcher = IncludeRules (\"Clojure\",\"Default\"), 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}),(\"Level1\",Context {cName = \"Level1\", cSyntax = \"Clojure\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Clojure\",\"Level2\")]},Rule {rMatcher = Detect2Chars '#' '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Clojure\",\"Level2\")]},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Clojure\",\"Default\"), 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}),(\"Level2\",Context {cName = \"Level2\", cSyntax = \"Clojure\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Clojure\",\"Level3\")]},Rule {rMatcher = Detect2Chars '#' '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Clojure\",\"Level3\")]},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Clojure\",\"Default\"), 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}),(\"Level3\",Context {cName = \"Level3\", cSyntax = \"Clojure\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Clojure\",\"Level4\")]},Rule {rMatcher = Detect2Chars '#' '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Clojure\",\"Level4\")]},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Clojure\",\"Default\"), 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}),(\"Level4\",Context {cName = \"Level4\", cSyntax = \"Clojure\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Clojure\",\"Level5\")]},Rule {rMatcher = Detect2Chars '#' '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Clojure\",\"Level5\")]},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Clojure\",\"Default\"), 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}),(\"Level5\",Context {cName = \"Level5\", cSyntax = \"Clojure\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Clojure\",\"Level6\")]},Rule {rMatcher = Detect2Chars '#' '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Clojure\",\"Level6\")]},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Clojure\",\"Default\"), 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}),(\"Level6\",Context {cName = \"Level6\", cSyntax = \"Clojure\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Clojure\",\"Level1\")]},Rule {rMatcher = Detect2Chars '#' '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Clojure\",\"Level1\")]},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Clojure\",\"Default\"), 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}),(\"SpecialNumber\",Context {cName = \"SpecialNumber\", cSyntax = \"Clojure\", cRules = [Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = HlCHex, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Clojure\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"#\\\\\\\\.\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCStringChar, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"function_decl\",Context {cName = \"function_decl\", cSyntax = \"Clojure\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*[A-Za-z0-9-+\\\\<\\\\>//\\\\*]*\\\\s*\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Dominik Haumann [lisp] modified for clojure by Caspar Hasenclever\", sVersion = \"5\", sLicense = \"LGPLv2+\", sExtensions = [\"*.clj\",\"*.cljs\"], sStartingContext = \"Level0\"}"
diff --git a/src/Skylighting/Syntax/Cmake.hs b/src/Skylighting/Syntax/Cmake.hs
--- a/src/Skylighting/Syntax/Cmake.hs
+++ b/src/Skylighting/Syntax/Cmake.hs
@@ -2,3574 +2,6 @@
 module Skylighting.Syntax.Cmake (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "CMake"
-  , sFilename = "cmake.xml"
-  , sShortname = "Cmake"
-  , sContexts =
-      fromList
-        [ ( "Bracketed Comment"
-          , Context
-              { cName = "Bracketed Comment"
-              , cSyntax = "CMake"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#?\\]%1\\]"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Modelines" , "" )
-                      , 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 = True
-              }
-          )
-        , ( "Bracketed String"
-          , Context
-              { cName = "Bracketed String"
-              , cSyntax = "CMake"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\]%1\\]"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "Command Args"
-          , Context
-              { cName = "Command Args"
-              , cSyntax = "CMake"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "AFTER"
-                               , "ALIAS"
-                               , "ALL"
-                               , "ALPHABET"
-                               , "AND"
-                               , "APPEND"
-                               , "APPENDNUMBER_ERRORS"
-                               , "APPEND_STRING"
-                               , "ARCHIVE"
-                               , "ARGS"
-                               , "ASCII"
-                               , "AUTHOR_WARNING"
-                               , "BEFORE"
-                               , "BRIEF_DOCS"
-                               , "BUILD"
-                               , "BUNDLE"
-                               , "BYPRODUCTS"
-                               , "CACHE"
-                               , "CACHED_VARIABLE"
-                               , "CDASH_UPLOAD"
-                               , "CDASH_UPLOAD_TYPE"
-                               , "CLEAR"
-                               , "CMAKE_FIND_ROOT_PATH_BOTH"
-                               , "CMAKE_FLAGS"
-                               , "CODE"
-                               , "COMMAND"
-                               , "COMMAND_NAME"
-                               , "COMMENT"
-                               , "COMPARE"
-                               , "COMPILE_DEFINITIONS"
-                               , "COMPILE_OUTPUT_VARIABLE"
-                               , "COMPILE_RESULT_VAR"
-                               , "COMPONENT"
-                               , "COMPONENTS"
-                               , "CONCAT"
-                               , "CONDITION"
-                               , "CONFIG"
-                               , "CONFIGS"
-                               , "CONFIGURATION"
-                               , "CONFIGURATIONS"
-                               , "CONFIGURE"
-                               , "CONTENT"
-                               , "COPY"
-                               , "COPYONLY"
-                               , "COPY_FILE"
-                               , "COPY_FILE_ERROR"
-                               , "CRLF"
-                               , "DEFINED"
-                               , "DEFINITION"
-                               , "DEPENDS"
-                               , "DESTINATION"
-                               , "DIRECTORY"
-                               , "DIRECTORY_PERMISSIONS"
-                               , "DOC"
-                               , "DOS"
-                               , "DOWNLOAD"
-                               , "END"
-                               , "ENV"
-                               , "EQUAL"
-                               , "ERROR_FILE"
-                               , "ERROR_QUIET"
-                               , "ERROR_STRIP_TRAILING_WHITESPACE"
-                               , "ERROR_VARIABLE"
-                               , "ESCAPE_QUOTES"
-                               , "EXACT"
-                               , "EXCLUDE"
-                               , "EXCLUDE_FROM_ALL"
-                               , "EXCLUDE_LABEL"
-                               , "EXISTS"
-                               , "EXPECTED_HASH"
-                               , "EXPECTED_MD5"
-                               , "EXPORT"
-                               , "EXPORT_LINK_INTERFACE_LIBRARIES"
-                               , "EXPR"
-                               , "EXTRA_INCLUDE"
-                               , "FATAL_ERROR"
-                               , "FILE"
-                               , "FILES"
-                               , "FILES_MATCHING"
-                               , "FILE_PERMISSIONS"
-                               , "FIND"
-                               , "FLAGS"
-                               , "FOLLOW_SYMLINKS"
-                               , "FORCE"
-                               , "FRAMEWORK"
-                               , "FULL_DOCS"
-                               , "FUNCTION"
-                               , "GENERATE"
-                               , "GENEX_STRIP"
-                               , "GET"
-                               , "GLOB"
-                               , "GLOBAL"
-                               , "GLOB_RECURSE"
-                               , "GREATER"
-                               , "GROUP_EXECUTE"
-                               , "GROUP_READ"
-                               , "GUARD"
-                               , "GUID"
-                               , "HEX"
-                               , "HINTS"
-                               , "IMPLICIT_DEPENDS"
-                               , "IMPORTED"
-                               , "IN"
-                               , "INACTIVITY_TIMEOUT"
-                               , "INCLUDE"
-                               , "INCLUDES"
-                               , "INCLUDE_INTERNALS"
-                               , "INCLUDE_LABEL"
-                               , "INHERITED"
-                               , "INPUT"
-                               , "INPUT_FILE"
-                               , "INSERT"
-                               , "INSTALL"
-                               , "INTERFACE"
-                               , "IS_ABSOLUTE"
-                               , "IS_DIRECTORY"
-                               , "IS_NEWER_THAN"
-                               , "IS_SYMLINK"
-                               , "ITEMS"
-                               , "LABELS"
-                               , "LANGUAGES"
-                               , "LENGTH"
-                               , "LENGTH_MAXIMUM"
-                               , "LENGTH_MINIMUM"
-                               , "LESS"
-                               , "LF"
-                               , "LIBRARY"
-                               , "LIMIT"
-                               , "LIMIT_COUNT"
-                               , "LIMIT_INPUT"
-                               , "LIMIT_OUTPUT"
-                               , "LINK_INTERFACE_LIBRARIES"
-                               , "LINK_LIBRARIES"
-                               , "LINK_PRIVATE"
-                               , "LINK_PUBLIC"
-                               , "LISTS"
-                               , "LIST_DIRECTORIES"
-                               , "LOCK"
-                               , "LOG"
-                               , "MACOSX_BUNDLE"
-                               , "MAIN_DEPENDENCY"
-                               , "MAKE_C_IDENTIFIER"
-                               , "MAKE_DIRECTORY"
-                               , "MATCH"
-                               , "MATCHALL"
-                               , "MATCHES"
-                               , "MD5"
-                               , "MESSAGE_NEVER"
-                               , "MODULE"
-                               , "NAME"
-                               , "NAMELINK_ONLY"
-                               , "NAMELINK_SKIP"
-                               , "NAMES"
-                               , "NAMESPACE"
-                               , "NAMES_PER_DIR"
-                               , "NEW"
-                               , "NEWLINE_CONSUME"
-                               , "NEWLINE_STYLE"
-                               , "NEW_PROCESS"
-                               , "NOT"
-                               , "NOTEQUAL"
-                               , "NO_CMAKE_BUILDS_PATH"
-                               , "NO_CMAKE_ENVIRONMENT_PATH"
-                               , "NO_CMAKE_FIND_ROOT_PATH"
-                               , "NO_CMAKE_PACKAGE_REGISTRY"
-                               , "NO_CMAKE_PATH"
-                               , "NO_CMAKE_SYSTEM_PACKAGE_REGISTRY"
-                               , "NO_CMAKE_SYSTEM_PATH"
-                               , "NO_DEFAULT_PATH"
-                               , "NO_HEX_CONVERSION"
-                               , "NO_MODULE"
-                               , "NO_POLICY_SCOPE"
-                               , "NO_SOURCE_PERMISSIONS"
-                               , "NO_SYSTEM_ENVIRONMENT_PATH"
-                               , "NUMBER_ERRORS"
-                               , "NUMBER_WARNINGS"
-                               , "OBJECT"
-                               , "OFF"
-                               , "OFFSET"
-                               , "OLD"
-                               , "ON"
-                               , "ONLY_CMAKE_FIND_ROOT_PATH"
-                               , "OPTIONAL"
-                               , "OPTIONAL_COMPONENTS"
-                               , "OPTIONS"
-                               , "OR"
-                               , "OUTPUT"
-                               , "OUTPUT_DIRECTORY"
-                               , "OUTPUT_FILE"
-                               , "OUTPUT_QUIET"
-                               , "OUTPUT_STRIP_TRAILING_WHITESPACE"
-                               , "OUTPUT_VARIABLE"
-                               , "OWNER_EXECUTE"
-                               , "OWNER_READ"
-                               , "OWNER_WRITE"
-                               , "PACKAGE"
-                               , "PARALLEL_LEVEL"
-                               , "PARENT_SCOPE"
-                               , "PARTS"
-                               , "PATHS"
-                               , "PATH_SUFFIXES"
-                               , "PATH_TO_MESA"
-                               , "PATTERN"
-                               , "PERMISSIONS"
-                               , "PLATFORM"
-                               , "POLICY"
-                               , "POP"
-                               , "POST_BUILD"
-                               , "PREORDER"
-                               , "PRE_BUILD"
-                               , "PRE_LINK"
-                               , "PRIVATE"
-                               , "PRIVATE_HEADER"
-                               , "PROCESS"
-                               , "PROGRAM"
-                               , "PROGRAMS"
-                               , "PROGRAM_ARGS"
-                               , "PROJECT_NAME"
-                               , "PROPERTIES"
-                               , "PROPERTY"
-                               , "PUBLIC"
-                               , "PUBLIC_HEADER"
-                               , "PUSH"
-                               , "QUERY"
-                               , "QUIET"
-                               , "RANDOM"
-                               , "RANDOM_SEED"
-                               , "RANGE"
-                               , "READ"
-                               , "READ_WITH_PREFIX"
-                               , "REGEX"
-                               , "REGULAR_EXPRESSION"
-                               , "RELATIVE"
-                               , "RELATIVE_PATH"
-                               , "RELEASE"
-                               , "REMOVE"
-                               , "REMOVE_AT"
-                               , "REMOVE_DUPLICATES"
-                               , "REMOVE_ITEM"
-                               , "REMOVE_RECURSE"
-                               , "RENAME"
-                               , "REPLACE"
-                               , "REQUIRED"
-                               , "REQUIRED_VARIABLE1"
-                               , "REQUIRED_VARIABLE2"
-                               , "RESOURCE"
-                               , "RESULT"
-                               , "RESULT_VAR"
-                               , "RESULT_VARIABLE"
-                               , "RETRY_COUNT"
-                               , "RETRY_DELAY"
-                               , "RETURN_VALUE"
-                               , "REVERSE"
-                               , "RUNTIME"
-                               , "RUNTIME_DIRECTORY"
-                               , "RUN_OUTPUT_VARIABLE"
-                               , "RUN_RESULT_VAR"
-                               , "SCHEDULE_RANDOM"
-                               , "SCRIPT"
-                               , "SEND_ERROR"
-                               , "SET"
-                               , "SHA1"
-                               , "SHA224"
-                               , "SHA256"
-                               , "SHA384"
-                               , "SHA512"
-                               , "SHARED"
-                               , "SHOW_PROGRESS"
-                               , "SORT"
-                               , "SOURCE"
-                               , "SOURCES"
-                               , "START"
-                               , "STATIC"
-                               , "STATUS"
-                               , "STOP_TIME"
-                               , "STREQUAL"
-                               , "STRGREATER"
-                               , "STRIDE"
-                               , "STRINGS"
-                               , "STRIP"
-                               , "STRLESS"
-                               , "SUBSTRING"
-                               , "SYSTEM"
-                               , "TARGET"
-                               , "TARGETS"
-                               , "TEST"
-                               , "TEST_VARIABLE"
-                               , "TIMEOUT"
-                               , "TIMESTAMP"
-                               , "TLS_CAINFO"
-                               , "TLS_VERIFY"
-                               , "TOLOWER"
-                               , "TOUPPER"
-                               , "TO_CMAKE_PATH"
-                               , "TO_NATIVE_PATH"
-                               , "TRACK"
-                               , "TYPE"
-                               , "UNIX"
-                               , "UNIX_COMMAND"
-                               , "UNKNOWN"
-                               , "UPLOAD"
-                               , "UPPER"
-                               , "USES_TERMINAL"
-                               , "USE_SOURCE_PERMISSIONS"
-                               , "UTC"
-                               , "UUID"
-                               , "VALUE"
-                               , "VARIABLE"
-                               , "VERBATIM"
-                               , "VERSION"
-                               , "VERSION_EQUAL"
-                               , "VERSION_GREATER"
-                               , "VERSION_LESS"
-                               , "WARNING"
-                               , "WIN32"
-                               , "WINDOWS_COMMAND"
-                               , "WORKING_DIRECTORY"
-                               , "WRITE"
-                               ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ABSOLUTE"
-                               , "AVAILABLE_PHYSICAL_MEMORY"
-                               , "AVAILABLE_VIRTUAL_MEMORY"
-                               , "BOOL"
-                               , "EXT"
-                               , "FILEPATH"
-                               , "FQDN"
-                               , "HOSTNAME"
-                               , "INTERNAL"
-                               , "IN_LIST"
-                               , "NAME"
-                               , "NAME_WE"
-                               , "NUMBER_OF_LOGICAL_CORES"
-                               , "NUMBER_OF_PHYSICAL_CORES"
-                               , "PATH"
-                               , "REALPATH"
-                               , "STRING"
-                               , "TOTAL_PHYSICAL_MEMORY"
-                               , "TOTAL_VIRTUAL_MEMORY"
-                               ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMP[0-9]+\\b"
-                              , reCompiled = Just (compileRegex True "\\bCMP[0-9]+\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ABSTRACT"
-                               , "ADDITIONAL_MAKE_CLEAN_FILES"
-                               , "ADVANCED"
-                               , "ALIASED_TARGET"
-                               , "ALLOW_DUPLICATE_CUSTOM_TARGETS"
-                               , "ANDROID_API"
-                               , "ANDROID_API_MIN"
-                               , "ANDROID_GUI"
-                               , "ARCHIVE_OUTPUT_DIRECTORY"
-                               , "ARCHIVE_OUTPUT_NAME"
-                               , "ATTACHED_FILES"
-                               , "ATTACHED_FILES_ON_FAIL"
-                               , "AUTOGEN_TARGETS_FOLDER"
-                               , "AUTOGEN_TARGET_DEPENDS"
-                               , "AUTOMOC"
-                               , "AUTOMOC_MOC_OPTIONS"
-                               , "AUTOMOC_TARGETS_FOLDER"
-                               , "AUTORCC"
-                               , "AUTORCC_OPTIONS"
-                               , "AUTOUIC"
-                               , "AUTOUIC_OPTIONS"
-                               , "BUILD_WITH_INSTALL_RPATH"
-                               , "BUNDLE"
-                               , "BUNDLE_EXTENSION"
-                               , "CACHE_VARIABLES"
-                               , "CLEAN_NO_CUSTOM"
-                               , "CMAKE_CONFIGURE_DEPENDS"
-                               , "CMAKE_CXX_KNOWN_FEATURES"
-                               , "CMAKE_C_KNOWN_FEATURES"
-                               , "COMPATIBLE_INTERFACE_BOOL"
-                               , "COMPATIBLE_INTERFACE_NUMBER_MAX"
-                               , "COMPATIBLE_INTERFACE_NUMBER_MIN"
-                               , "COMPATIBLE_INTERFACE_STRING"
-                               , "COMPILE_DEFINITIONS"
-                               , "COMPILE_FEATURES"
-                               , "COMPILE_FLAGS"
-                               , "COMPILE_OPTIONS"
-                               , "COMPILE_PDB_NAME"
-                               , "COMPILE_PDB_OUTPUT_DIRECTORY"
-                               , "COST"
-                               , "CPACK_DESKTOP_SHORTCUTS"
-                               , "CPACK_NEVER_OVERWRITE"
-                               , "CPACK_PERMANENT"
-                               , "CPACK_STARTUP_SHORTCUTS"
-                               , "CPACK_START_MENU_SHORTCUTS"
-                               , "CPACK_WIX_ACL"
-                               , "CROSSCOMPILING_EMULATOR"
-                               , "CXX_EXTENSIONS"
-                               , "CXX_STANDARD"
-                               , "CXX_STANDARD_REQUIRED"
-                               , "C_EXTENSIONS"
-                               , "C_STANDARD"
-                               , "C_STANDARD_REQUIRED"
-                               , "DEBUG_CONFIGURATIONS"
-                               , "DEBUG_POSTFIX"
-                               , "DEFINE_SYMBOL"
-                               , "DEFINITIONS"
-                               , "DEPENDS"
-                               , "DISABLED_FEATURES"
-                               , "ECLIPSE_EXTRA_NATURES"
-                               , "ENABLED_FEATURES"
-                               , "ENABLED_LANGUAGES"
-                               , "ENABLE_EXPORTS"
-                               , "ENVIRONMENT"
-                               , "EXCLUDE_FROM_ALL"
-                               , "EXCLUDE_FROM_DEFAULT_BUILD"
-                               , "EXPORT_NAME"
-                               , "EXTERNAL_OBJECT"
-                               , "EchoString"
-                               , "FAIL_REGULAR_EXPRESSION"
-                               , "FIND_LIBRARY_USE_LIB64_PATHS"
-                               , "FIND_LIBRARY_USE_OPENBSD_VERSIONING"
-                               , "FOLDER"
-                               , "FRAMEWORK"
-                               , "Fortran_FORMAT"
-                               , "Fortran_MODULE_DIRECTORY"
-                               , "GENERATED"
-                               , "GENERATOR_FILE_NAME"
-                               , "GLOBAL_DEPENDS_DEBUG_MODE"
-                               , "GLOBAL_DEPENDS_NO_CYCLES"
-                               , "GNUtoMS"
-                               , "HAS_CXX"
-                               , "HEADER_FILE_ONLY"
-                               , "HELPSTRING"
-                               , "IMPLICIT_DEPENDS_INCLUDE_TRANSFORM"
-                               , "IMPORTED"
-                               , "IMPORTED_CONFIGURATIONS"
-                               , "IMPORTED_IMPLIB"
-                               , "IMPORTED_LINK_DEPENDENT_LIBRARIES"
-                               , "IMPORTED_LINK_INTERFACE_LANGUAGES"
-                               , "IMPORTED_LINK_INTERFACE_LIBRARIES"
-                               , "IMPORTED_LINK_INTERFACE_MULTIPLICITY"
-                               , "IMPORTED_LOCATION"
-                               , "IMPORTED_NO_SONAME"
-                               , "IMPORTED_SONAME"
-                               , "IMPORT_PREFIX"
-                               , "IMPORT_SUFFIX"
-                               , "INCLUDE_DIRECTORIES"
-                               , "INCLUDE_REGULAR_EXPRESSION"
-                               , "INSTALL_NAME_DIR"
-                               , "INSTALL_RPATH"
-                               , "INSTALL_RPATH_USE_LINK_PATH"
-                               , "INTERFACE_AUTOUIC_OPTIONS"
-                               , "INTERFACE_COMPILE_DEFINITIONS"
-                               , "INTERFACE_COMPILE_FEATURES"
-                               , "INTERFACE_COMPILE_OPTIONS"
-                               , "INTERFACE_INCLUDE_DIRECTORIES"
-                               , "INTERFACE_LINK_LIBRARIES"
-                               , "INTERFACE_POSITION_INDEPENDENT_CODE"
-                               , "INTERFACE_SOURCES"
-                               , "INTERFACE_SYSTEM_INCLUDE_DIRECTORIES"
-                               , "INTERPROCEDURAL_OPTIMIZATION"
-                               , "IN_TRY_COMPILE"
-                               , "JOB_POOLS"
-                               , "JOB_POOL_COMPILE"
-                               , "JOB_POOL_LINK"
-                               , "KEEP_EXTENSION"
-                               , "LABELS"
-                               , "LANGUAGE"
-                               , "LIBRARY_OUTPUT_DIRECTORY"
-                               , "LIBRARY_OUTPUT_NAME"
-                               , "LINKER_LANGUAGE"
-                               , "LINK_DEPENDS"
-                               , "LINK_DEPENDS_NO_SHARED"
-                               , "LINK_DIRECTORIES"
-                               , "LINK_FLAGS"
-                               , "LINK_INTERFACE_LIBRARIES"
-                               , "LINK_INTERFACE_MULTIPLICITY"
-                               , "LINK_LIBRARIES"
-                               , "LINK_SEARCH_END_STATIC"
-                               , "LINK_SEARCH_START_STATIC"
-                               , "LISTFILE_STACK"
-                               , "LOCATION"
-                               , "MACOSX_BUNDLE"
-                               , "MACOSX_BUNDLE_INFO_PLIST"
-                               , "MACOSX_FRAMEWORK_INFO_PLIST"
-                               , "MACOSX_PACKAGE_LOCATION"
-                               , "MACOSX_RPATH"
-                               , "MACROS"
-                               , "MEASUREMENT"
-                               , "MODIFIED"
-                               , "NAME"
-                               , "NO_SONAME"
-                               , "NO_SYSTEM_FROM_IMPORTED"
-                               , "OBJECT_DEPENDS"
-                               , "OBJECT_OUTPUTS"
-                               , "OSX_ARCHITECTURES"
-                               , "OUTPUT_NAME"
-                               , "PACKAGES_FOUND"
-                               , "PACKAGES_NOT_FOUND"
-                               , "PARENT_DIRECTORY"
-                               , "PASS_REGULAR_EXPRESSION"
-                               , "PDB_NAME"
-                               , "PDB_OUTPUT_DIRECTORY"
-                               , "POSITION_INDEPENDENT_CODE"
-                               , "POST_INSTALL_SCRIPT"
-                               , "PREDEFINED_TARGETS_FOLDER"
-                               , "PREFIX"
-                               , "PRE_INSTALL_SCRIPT"
-                               , "PRIVATE_HEADER"
-                               , "PROCESSORS"
-                               , "PROJECT_LABEL"
-                               , "PUBLIC_HEADER"
-                               , "REPORT_UNDEFINED_PROPERTIES"
-                               , "REQUIRED_FILES"
-                               , "RESOURCE"
-                               , "RESOURCE_LOCK"
-                               , "RULE_LAUNCH_COMPILE"
-                               , "RULE_LAUNCH_CUSTOM"
-                               , "RULE_LAUNCH_LINK"
-                               , "RULE_MESSAGES"
-                               , "RUNTIME_OUTPUT_DIRECTORY"
-                               , "RUNTIME_OUTPUT_NAME"
-                               , "RUN_SERIAL"
-                               , "SKIP_BUILD_RPATH"
-                               , "SKIP_RETURN_CODE"
-                               , "SOURCES"
-                               , "SOVERSION"
-                               , "STATIC_LIBRARY_FLAGS"
-                               , "STRINGS"
-                               , "SUFFIX"
-                               , "SYMBOLIC"
-                               , "TARGET_ARCHIVES_MAY_BE_SHARED_LIBS"
-                               , "TARGET_SUPPORTS_SHARED_LIBS"
-                               , "TEST_INCLUDE_FILE"
-                               , "TIMEOUT"
-                               , "TYPE"
-                               , "USE_FOLDERS"
-                               , "VALUE"
-                               , "VARIABLES"
-                               , "VERSION"
-                               , "VISIBILITY_INLINES_HIDDEN"
-                               , "VS_DEPLOYMENT_CONTENT"
-                               , "VS_DEPLOYMENT_LOCATION"
-                               , "VS_DOTNET_REFERENCES"
-                               , "VS_DOTNET_TARGET_FRAMEWORK_VERSION"
-                               , "VS_GLOBAL_KEYWORD"
-                               , "VS_GLOBAL_PROJECT_TYPES"
-                               , "VS_GLOBAL_ROOTNAMESPACE"
-                               , "VS_KEYWORD"
-                               , "VS_SCC_AUXPATH"
-                               , "VS_SCC_LOCALPATH"
-                               , "VS_SCC_PROJECTNAME"
-                               , "VS_SCC_PROVIDER"
-                               , "VS_SHADER_ENTRYPOINT"
-                               , "VS_SHADER_FLAGS"
-                               , "VS_SHADER_MODEL"
-                               , "VS_SHADER_TYPE"
-                               , "VS_WINRT_COMPONENT"
-                               , "VS_WINRT_EXTENSIONS"
-                               , "VS_WINRT_REFERENCES"
-                               , "VS_XAML_TYPE"
-                               , "WILL_FAIL"
-                               , "WIN32_EXECUTABLE"
-                               , "WORKING_DIRECTORY"
-                               , "WRAP_EXCLUDE"
-                               , "XCODE_EXPLICIT_FILE_TYPE"
-                               , "XCODE_LAST_KNOWN_FILE_TYPE"
-                               , "XCTEST"
-                               ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "COMMANDS" , "DEFINITION" ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "CMake" , "Detect Builtin Variables" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "CMake" , "Macro Args" )
-                      , 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 = "CMake"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , 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 = IncludeRules ( "Modelines" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Detect Builtin Variables"
-          , Context
-              { cName = "Detect Builtin Variables"
-              , cSyntax = "CMake"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "APPLE"
-                               , "BORLAND"
-                               , "BUILD_SHARED_LIBS"
-                               , "CMAKE_ABSOLUTE_DESTINATION_FILES"
-                               , "CMAKE_ANDROID_API"
-                               , "CMAKE_ANDROID_API_MIN"
-                               , "CMAKE_ANDROID_GUI"
-                               , "CMAKE_APPBUNDLE_PATH"
-                               , "CMAKE_AR"
-                               , "CMAKE_ARCHIVE_OUTPUT_DIRECTORY"
-                               , "CMAKE_ARGC"
-                               , "CMAKE_ARGV0"
-                               , "CMAKE_AUTOMOC"
-                               , "CMAKE_AUTOMOC_MOC_OPTIONS"
-                               , "CMAKE_AUTOMOC_RELAXED_MODE"
-                               , "CMAKE_AUTORCC"
-                               , "CMAKE_AUTORCC_OPTIONS"
-                               , "CMAKE_AUTOUIC"
-                               , "CMAKE_AUTOUIC_OPTIONS"
-                               , "CMAKE_BACKWARDS_COMPATIBILITY"
-                               , "CMAKE_BINARY_DIR"
-                               , "CMAKE_BUILD_TOOL"
-                               , "CMAKE_BUILD_TYPE"
-                               , "CMAKE_BUILD_WITH_INSTALL_RPATH"
-                               , "CMAKE_CACHEFILE_DIR"
-                               , "CMAKE_CACHE_MAJOR_VERSION"
-                               , "CMAKE_CACHE_MINOR_VERSION"
-                               , "CMAKE_CACHE_PATCH_VERSION"
-                               , "CMAKE_CFG_INTDIR"
-                               , "CMAKE_CL_64"
-                               , "CMAKE_COLOR_MAKEFILE"
-                               , "CMAKE_COMMAND"
-                               , "CMAKE_COMPILER_2005"
-                               , "CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY"
-                               , "CMAKE_CONFIGURATION_TYPES"
-                               , "CMAKE_CROSSCOMPILING"
-                               , "CMAKE_CROSSCOMPILING_EMULATOR"
-                               , "CMAKE_CTEST_COMMAND"
-                               , "CMAKE_CURRENT_BINARY_DIR"
-                               , "CMAKE_CURRENT_LIST_DIR"
-                               , "CMAKE_CURRENT_LIST_FILE"
-                               , "CMAKE_CURRENT_LIST_LINE"
-                               , "CMAKE_CURRENT_SOURCE_DIR"
-                               , "CMAKE_CXX_COMPILE_FEATURES"
-                               , "CMAKE_CXX_EXTENSIONS"
-                               , "CMAKE_CXX_STANDARD"
-                               , "CMAKE_CXX_STANDARD_REQUIRED"
-                               , "CMAKE_C_COMPILE_FEATURES"
-                               , "CMAKE_C_EXTENSIONS"
-                               , "CMAKE_C_STANDARD"
-                               , "CMAKE_C_STANDARD_REQUIRED"
-                               , "CMAKE_DEBUG_POSTFIX"
-                               , "CMAKE_DEBUG_TARGET_PROPERTIES"
-                               , "CMAKE_DL_LIBS"
-                               , "CMAKE_EDIT_COMMAND"
-                               , "CMAKE_ERROR_DEPRECATED"
-                               , "CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION"
-                               , "CMAKE_EXECUTABLE_SUFFIX"
-                               , "CMAKE_EXE_LINKER_FLAGS"
-                               , "CMAKE_EXPORT_NO_PACKAGE_REGISTRY"
-                               , "CMAKE_EXTRA_GENERATOR"
-                               , "CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES"
-                               , "CMAKE_FIND_LIBRARY_PREFIXES"
-                               , "CMAKE_FIND_LIBRARY_SUFFIXES"
-                               , "CMAKE_FIND_NO_INSTALL_PREFIX"
-                               , "CMAKE_FIND_PACKAGE_NAME"
-                               , "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY"
-                               , "CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY"
-                               , "CMAKE_FIND_PACKAGE_WARN_NO_MODULE"
-                               , "CMAKE_FIND_ROOT_PATH"
-                               , "CMAKE_FIND_ROOT_PATH_MODE_INCLUDE"
-                               , "CMAKE_FIND_ROOT_PATH_MODE_LIBRARY"
-                               , "CMAKE_FIND_ROOT_PATH_MODE_PACKAGE"
-                               , "CMAKE_FIND_ROOT_PATH_MODE_PROGRAM"
-                               , "CMAKE_FRAMEWORK_PATH"
-                               , "CMAKE_Fortran_FORMAT"
-                               , "CMAKE_Fortran_MODDIR_DEFAULT"
-                               , "CMAKE_Fortran_MODDIR_FLAG"
-                               , "CMAKE_Fortran_MODOUT_FLAG"
-                               , "CMAKE_Fortran_MODULE_DIRECTORY"
-                               , "CMAKE_GENERATOR"
-                               , "CMAKE_GENERATOR_PLATFORM"
-                               , "CMAKE_GENERATOR_TOOLSET"
-                               , "CMAKE_GNUtoMS"
-                               , "CMAKE_HOME_DIRECTORY"
-                               , "CMAKE_HOST_APPLE"
-                               , "CMAKE_HOST_SYSTEM"
-                               , "CMAKE_HOST_SYSTEM_NAME"
-                               , "CMAKE_HOST_SYSTEM_PROCESSOR"
-                               , "CMAKE_HOST_SYSTEM_VERSION"
-                               , "CMAKE_HOST_UNIX"
-                               , "CMAKE_HOST_WIN32"
-                               , "CMAKE_IGNORE_PATH"
-                               , "CMAKE_IMPORT_LIBRARY_PREFIX"
-                               , "CMAKE_IMPORT_LIBRARY_SUFFIX"
-                               , "CMAKE_INCLUDE_CURRENT_DIR"
-                               , "CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE"
-                               , "CMAKE_INCLUDE_DIRECTORIES_BEFORE"
-                               , "CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE"
-                               , "CMAKE_INCLUDE_PATH"
-                               , "CMAKE_INSTALL_DEFAULT_COMPONENT_NAME"
-                               , "CMAKE_INSTALL_MESSAGE"
-                               , "CMAKE_INSTALL_NAME_DIR"
-                               , "CMAKE_INSTALL_PREFIX"
-                               , "CMAKE_INSTALL_RPATH"
-                               , "CMAKE_INSTALL_RPATH_USE_LINK_PATH"
-                               , "CMAKE_INTERNAL_PLATFORM_ABI"
-                               , "CMAKE_JOB_POOL_COMPILE"
-                               , "CMAKE_JOB_POOL_LINK"
-                               , "CMAKE_LIBRARY_ARCHITECTURE"
-                               , "CMAKE_LIBRARY_ARCHITECTURE_REGEX"
-                               , "CMAKE_LIBRARY_OUTPUT_DIRECTORY"
-                               , "CMAKE_LIBRARY_PATH"
-                               , "CMAKE_LIBRARY_PATH_FLAG"
-                               , "CMAKE_LINK_DEF_FILE_FLAG"
-                               , "CMAKE_LINK_DEPENDS_NO_SHARED"
-                               , "CMAKE_LINK_INTERFACE_LIBRARIES"
-                               , "CMAKE_LINK_LIBRARY_FILE_FLAG"
-                               , "CMAKE_LINK_LIBRARY_FLAG"
-                               , "CMAKE_LINK_LIBRARY_SUFFIX"
-                               , "CMAKE_MACOSX_BUNDLE"
-                               , "CMAKE_MACOSX_RPATH"
-                               , "CMAKE_MAJOR_VERSION"
-                               , "CMAKE_MAKE_PROGRAM"
-                               , "CMAKE_MATCH_COUNT"
-                               , "CMAKE_MFC_FLAG"
-                               , "CMAKE_MINIMUM_REQUIRED_VERSION"
-                               , "CMAKE_MINOR_VERSION"
-                               , "CMAKE_MODULE_LINKER_FLAGS"
-                               , "CMAKE_MODULE_PATH"
-                               , "CMAKE_NOT_USING_CONFIG_FLAGS"
-                               , "CMAKE_NO_BUILTIN_CHRPATH"
-                               , "CMAKE_NO_SYSTEM_FROM_IMPORTED"
-                               , "CMAKE_OBJECT_PATH_MAX"
-                               , "CMAKE_OSX_ARCHITECTURES"
-                               , "CMAKE_OSX_DEPLOYMENT_TARGET"
-                               , "CMAKE_OSX_SYSROOT"
-                               , "CMAKE_PARENT_LIST_FILE"
-                               , "CMAKE_PATCH_VERSION"
-                               , "CMAKE_PDB_OUTPUT_DIRECTORY"
-                               , "CMAKE_POSITION_INDEPENDENT_CODE"
-                               , "CMAKE_PREFIX_PATH"
-                               , "CMAKE_PROGRAM_PATH"
-                               , "CMAKE_PROJECT_NAME"
-                               , "CMAKE_RANLIB"
-                               , "CMAKE_ROOT"
-                               , "CMAKE_RUNTIME_OUTPUT_DIRECTORY"
-                               , "CMAKE_SCRIPT_MODE_FILE"
-                               , "CMAKE_SHARED_LIBRARY_PREFIX"
-                               , "CMAKE_SHARED_LIBRARY_SUFFIX"
-                               , "CMAKE_SHARED_LINKER_FLAGS"
-                               , "CMAKE_SHARED_MODULE_PREFIX"
-                               , "CMAKE_SHARED_MODULE_SUFFIX"
-                               , "CMAKE_SIZEOF_VOID_P"
-                               , "CMAKE_SKIP_BUILD_RPATH"
-                               , "CMAKE_SKIP_INSTALL_ALL_DEPENDENCY"
-                               , "CMAKE_SKIP_INSTALL_RPATH"
-                               , "CMAKE_SKIP_INSTALL_RULES"
-                               , "CMAKE_SKIP_RPATH"
-                               , "CMAKE_SOURCE_DIR"
-                               , "CMAKE_STAGING_PREFIX"
-                               , "CMAKE_STANDARD_LIBRARIES"
-                               , "CMAKE_STATIC_LIBRARY_PREFIX"
-                               , "CMAKE_STATIC_LIBRARY_SUFFIX"
-                               , "CMAKE_STATIC_LINKER_FLAGS"
-                               , "CMAKE_SYSROOT"
-                               , "CMAKE_SYSTEM"
-                               , "CMAKE_SYSTEM_IGNORE_PATH"
-                               , "CMAKE_SYSTEM_INCLUDE_PATH"
-                               , "CMAKE_SYSTEM_LIBRARY_PATH"
-                               , "CMAKE_SYSTEM_NAME"
-                               , "CMAKE_SYSTEM_PREFIX_PATH"
-                               , "CMAKE_SYSTEM_PROCESSOR"
-                               , "CMAKE_SYSTEM_PROGRAM_PATH"
-                               , "CMAKE_SYSTEM_VERSION"
-                               , "CMAKE_TOOLCHAIN_FILE"
-                               , "CMAKE_TRY_COMPILE_CONFIGURATION"
-                               , "CMAKE_TWEAK_VERSION"
-                               , "CMAKE_USER_MAKE_RULES_OVERRIDE"
-                               , "CMAKE_USE_RELATIVE_PATHS"
-                               , "CMAKE_VERBOSE_MAKEFILE"
-                               , "CMAKE_VERSION"
-                               , "CMAKE_VISIBILITY_INLINES_HIDDEN"
-                               , "CMAKE_VS_DEVENV_COMMAND"
-                               , "CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD"
-                               , "CMAKE_VS_INTEL_Fortran_PROJECT_VERSION"
-                               , "CMAKE_VS_MSBUILD_COMMAND"
-                               , "CMAKE_VS_MSDEV_COMMAND"
-                               , "CMAKE_VS_NsightTegra_VERSION"
-                               , "CMAKE_VS_PLATFORM_NAME"
-                               , "CMAKE_VS_PLATFORM_TOOLSET"
-                               , "CMAKE_WARN_DEPRECATED"
-                               , "CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION"
-                               , "CMAKE_WIN32_EXECUTABLE"
-                               , "CMAKE_XCODE_PLATFORM_TOOLSET"
-                               , "CPACK_ABSOLUTE_DESTINATION_FILES"
-                               , "CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY"
-                               , "CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION"
-                               , "CPACK_INCLUDE_TOPLEVEL_DIRECTORY"
-                               , "CPACK_INSTALL_SCRIPT"
-                               , "CPACK_PACKAGING_INSTALL_PREFIX"
-                               , "CPACK_SET_DESTDIR"
-                               , "CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION"
-                               , "CTEST_BINARY_DIRECTORY"
-                               , "CTEST_BUILD_COMMAND"
-                               , "CTEST_BUILD_NAME"
-                               , "CTEST_BZR_COMMAND"
-                               , "CTEST_BZR_UPDATE_OPTIONS"
-                               , "CTEST_CHECKOUT_COMMAND"
-                               , "CTEST_CONFIGURATION_TYPE"
-                               , "CTEST_CONFIGURE_COMMAND"
-                               , "CTEST_COVERAGE_COMMAND"
-                               , "CTEST_COVERAGE_EXTRA_FLAGS"
-                               , "CTEST_CURL_OPTIONS"
-                               , "CTEST_CVS_CHECKOUT"
-                               , "CTEST_CVS_COMMAND"
-                               , "CTEST_CVS_UPDATE_OPTIONS"
-                               , "CTEST_DROP_LOCATION"
-                               , "CTEST_DROP_METHOD"
-                               , "CTEST_DROP_SITE"
-                               , "CTEST_DROP_SITE_CDASH"
-                               , "CTEST_DROP_SITE_PASSWORD"
-                               , "CTEST_DROP_SITE_USER"
-                               , "CTEST_GIT_COMMAND"
-                               , "CTEST_GIT_UPDATE_CUSTOM"
-                               , "CTEST_GIT_UPDATE_OPTIONS"
-                               , "CTEST_HG_COMMAND"
-                               , "CTEST_HG_UPDATE_OPTIONS"
-                               , "CTEST_MEMORYCHECK_COMMAND"
-                               , "CTEST_MEMORYCHECK_COMMAND_OPTIONS"
-                               , "CTEST_MEMORYCHECK_SANITIZER_OPTIONS"
-                               , "CTEST_MEMORYCHECK_SUPPRESSIONS_FILE"
-                               , "CTEST_MEMORYCHECK_TYPE"
-                               , "CTEST_NIGHTLY_START_TIME"
-                               , "CTEST_P4_CLIENT"
-                               , "CTEST_P4_COMMAND"
-                               , "CTEST_P4_OPTIONS"
-                               , "CTEST_P4_UPDATE_OPTIONS"
-                               , "CTEST_SCP_COMMAND"
-                               , "CTEST_SITE"
-                               , "CTEST_SOURCE_DIRECTORY"
-                               , "CTEST_SVN_COMMAND"
-                               , "CTEST_SVN_OPTIONS"
-                               , "CTEST_SVN_UPDATE_OPTIONS"
-                               , "CTEST_TEST_TIMEOUT"
-                               , "CTEST_TRIGGER_SITE"
-                               , "CTEST_UPDATE_COMMAND"
-                               , "CTEST_UPDATE_OPTIONS"
-                               , "CTEST_UPDATE_VERSION_ONLY"
-                               , "CTEST_USE_LAUNCHERS"
-                               , "CYGWIN"
-                               , "ENV"
-                               , "EXECUTABLE_OUTPUT_PATH"
-                               , "GHS-MULTI"
-                               , "LIBRARY_OUTPUT_PATH"
-                               , "MINGW"
-                               , "MSVC"
-                               , "MSVC10"
-                               , "MSVC11"
-                               , "MSVC12"
-                               , "MSVC14"
-                               , "MSVC60"
-                               , "MSVC70"
-                               , "MSVC71"
-                               , "MSVC80"
-                               , "MSVC90"
-                               , "MSVC_IDE"
-                               , "MSVC_VERSION"
-                               , "PROJECT_BINARY_DIR"
-                               , "PROJECT_NAME"
-                               , "PROJECT_SOURCE_DIR"
-                               , "PROJECT_VERSION"
-                               , "PROJECT_VERSION_MAJOR"
-                               , "PROJECT_VERSION_MINOR"
-                               , "PROJECT_VERSION_PATCH"
-                               , "PROJECT_VERSION_TWEAK"
-                               , "UNIX"
-                               , "WIN32"
-                               , "WINCE"
-                               , "WINDOWS_PHONE"
-                               , "WINDOWS_STORE"
-                               , "XCODE_VERSION"
-                               ])
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "CMake" , "Detect More Builtin Variables" )
-                      , 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
-              }
-          )
-        , ( "Detect Generator Expressions"
-          , Context
-              { cName = "Detect Generator Expressions"
-              , cSyntax = "CMake"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '$' '<'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CMake" , "Generator Expression" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Detect More Builtin Variables"
-          , Context
-              { cName = "Detect More Builtin Variables"
-              , cSyntax = "CMake"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_ARCHIVE_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_ARCHIVE_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_COMPILER_IS_GNU[A-Za-z_][A-Za-z_0-9]*\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_COMPILER_IS_GNU[A-Za-z_][A-Za-z_0-9]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_DISABLE_FIND_PACKAGE_[A-Za-z_][A-Za-z_0-9]*\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_DISABLE_FIND_PACKAGE_[A-Za-z_][A-Za-z_0-9]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_EXE_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_EXE_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_LIBRARY_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_LIBRARY_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_MAP_IMPORTED_CONFIG_[A-Za-z_][A-Za-z_0-9]*\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_MAP_IMPORTED_CONFIG_[A-Za-z_][A-Za-z_0-9]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_MODULE_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_MODULE_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_PDB_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_PDB_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_POLICY_DEFAULT_CMP[0-9]+\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "\\bCMAKE_POLICY_DEFAULT_CMP[0-9]+\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_POLICY_WARNING_CMP[0-9]+\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "\\bCMAKE_POLICY_WARNING_CMP[0-9]+\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_PROJECT_[A-Za-z_][A-Za-z_0-9]*_INCLUDE\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_PROJECT_[A-Za-z_][A-Za-z_0-9]*_INCLUDE\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_RUNTIME_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_RUNTIME_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_SHARED_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_SHARED_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_STATIC_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_STATIC_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_USER_MAKE_RULES_OVERRIDE_[A-Za-z_][A-Za-z_0-9]*\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_USER_MAKE_RULES_OVERRIDE_[A-Za-z_][A-Za-z_0-9]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_XCODE_ATTRIBUTE_[A-Za-z_][A-Za-z_0-9]*\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_XCODE_ATTRIBUTE_[A-Za-z_][A-Za-z_0-9]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_ARCHIVE_APPEND\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_ARCHIVE_APPEND\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_ARCHIVE_CREATE\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_ARCHIVE_CREATE\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_ARCHIVE_FINISH\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_ARCHIVE_FINISH\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_ABI\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_ABI\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_EXTERNAL_TOOLCHAIN\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_EXTERNAL_TOOLCHAIN\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_ID\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_ID\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_LOADED\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_LOADED\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_TARGET\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_TARGET\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_VERSION\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_VERSION\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILE_OBJECT\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILE_OBJECT\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_CREATE_SHARED_LIBRARY\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_CREATE_SHARED_LIBRARY\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_CREATE_SHARED_MODULE\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_CREATE_SHARED_MODULE\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_CREATE_STATIC_LIBRARY\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_CREATE_STATIC_LIBRARY\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_DEBUG\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_DEBUG\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_MINSIZEREL\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_MINSIZEREL\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_RELEASE\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_RELEASE\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_RELWITHDEBINFO\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_RELWITHDEBINFO\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_DEBUG\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_DEBUG\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_MINSIZEREL\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_MINSIZEREL\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_RELEASE\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_RELEASE\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_RELWITHDEBINFO\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_RELWITHDEBINFO\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IGNORE_EXTENSIONS\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IGNORE_EXTENSIONS\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_INCLUDE_DIRECTORIES\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_INCLUDE_DIRECTORIES\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_LINK_DIRECTORIES\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_LINK_DIRECTORIES\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_LINK_LIBRARIES\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_LINK_LIBRARIES\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_INCLUDE_WHAT_YOU_USE\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_INCLUDE_WHAT_YOU_USE\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LIBRARY_ARCHITECTURE\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LIBRARY_ARCHITECTURE\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LINKER_PREFERENCE\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LINKER_PREFERENCE\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LINKER_PREFERENCE_PROPAGATES\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LINKER_PREFERENCE_PROPAGATES\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LINK_EXECUTABLE\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LINK_EXECUTABLE\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_OUTPUT_EXTENSION\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_OUTPUT_EXTENSION\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_PLATFORM_ID\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_PLATFORM_ID\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_POSTFIX\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_POSTFIX\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SIMULATE_ID\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SIMULATE_ID\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SIMULATE_VERSION\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SIMULATE_VERSION\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SIZEOF_DATA_PTR\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SIZEOF_DATA_PTR\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SOURCE_FILE_EXTENSIONS\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SOURCE_FILE_EXTENSIONS\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_VISIBILITY_PRESET\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_VISIBILITY_PRESET\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[A-Za-z_][A-Za-z_0-9]*_BINARY_DIR\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b[A-Za-z_][A-Za-z_0-9]*_BINARY_DIR\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[A-Za-z_][A-Za-z_0-9]*_SOURCE_DIR\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b[A-Za-z_][A-Za-z_0-9]*_SOURCE_DIR\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[A-Za-z_][A-Za-z_0-9]*_VERSION\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b[A-Za-z_][A-Za-z_0-9]*_VERSION\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[A-Za-z_][A-Za-z_0-9]*_VERSION_MAJOR\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "\\b[A-Za-z_][A-Za-z_0-9]*_VERSION_MAJOR\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[A-Za-z_][A-Za-z_0-9]*_VERSION_MINOR\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "\\b[A-Za-z_][A-Za-z_0-9]*_VERSION_MINOR\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[A-Za-z_][A-Za-z_0-9]*_VERSION_PATCH\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "\\b[A-Za-z_][A-Za-z_0-9]*_VERSION_PATCH\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[A-Za-z_][A-Za-z_0-9]*_VERSION_TWEAK\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "\\b[A-Za-z_][A-Za-z_0-9]*_VERSION_TWEAK\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Detect Variables"
-          , Context
-              { cName = "Detect Variables"
-              , cSyntax = "CMake"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$ENV\\{\\s*[\\w-]+\\s*\\}"
-                              , reCompiled =
-                                  Just (compileRegex True "\\$ENV\\{\\s*[\\w-]+\\s*\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '{'
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CMake" , "VarSubst" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "DetectSimpleGEEnd"
-          , Context
-              { cName = "DetectSimpleGEEnd"
-              , cSyntax = "CMake"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Generator Expression"
-          , Context
-              { cName = "Generator Expression"
-              , cSyntax = "CMake"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "CMake" , "Detect Generator Expressions" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ANGLE-R"
-                               , "COMMA"
-                               , "CONFIGURATION"
-                               , "INSTALL_PREFIX"
-                               , "SEMICOLON"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CMake" , "DetectSimpleGEEnd" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "0"
-                               , "1"
-                               , "AND"
-                               , "ANGLE-R"
-                               , "BOOL"
-                               , "BUILD_INTERFACE"
-                               , "COMMA"
-                               , "COMPILER_FEATURES"
-                               , "CONFIG"
-                               , "CONFIGURATION"
-                               , "CXX_COMPILER_ID"
-                               , "CXX_COMPILER_VERSION"
-                               , "C_COMPILER_ID"
-                               , "C_COMPILER_VERSION"
-                               , "EQUAL"
-                               , "INSTALL_INTERFACE"
-                               , "INSTALL_PREFIX"
-                               , "JOIN"
-                               , "LINK_ONLY"
-                               , "LOWER_CASE"
-                               , "MAKE_C_IDENTIFIER"
-                               , "NOT"
-                               , "OR"
-                               , "PLATFORM_ID"
-                               , "SEMICOLON"
-                               , "STREQUAL"
-                               , "TARGET_DIR"
-                               , "TARGET_FILE"
-                               , "TARGET_FILE_DIR"
-                               , "TARGET_FILE_NAME"
-                               , "TARGET_LINKER_FILE"
-                               , "TARGET_LINKER_FILE_DIR"
-                               , "TARGET_LINKER_FILE_NAME"
-                               , "TARGET_NAME"
-                               , "TARGET_OBJECTS"
-                               , "TARGET_PDB_FILE"
-                               , "TARGET_PDB_FILE_DIR"
-                               , "TARGET_PDB_FILE_NAME"
-                               , "TARGET_POLICY"
-                               , "TARGET_PROPERTY"
-                               , "TARGET_SONAME_FILE"
-                               , "TARGET_SONAME_FILE_DIR"
-                               , "TARGET_SONAME_FILE_NAME"
-                               , "UPPER_CASE"
-                               , "VERSION_EQUAL"
-                               , "VERSION_GREATER"
-                               , "VERSION_LESS"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "CMake" , "Detect Variables" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Macro Args"
-          , Context
-              { cName = "Macro Args"
-              , cSyntax = "CMake"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[\"$n\\\\]"
-                              , reCompiled = Just (compileRegex True "\\\\[\"$n\\\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CMake" , "String" ) ]
-                      }
-                  , 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 = [ Push ( "CMake" , "Bracketed String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CMake" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "CMake" , "Detect Builtin Variables" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "CMake" , "Detect Variables" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "CMake" , "Detect Generator Expressions" )
-                      , 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
-              }
-          )
-        , ( "Normal Text"
-          , Context
-              { cName = "Normal Text"
-              , cSyntax = "CMake"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = WordDetect "if"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CMake" , "Command Args" ) ]
-                      }
-                  , Rule
-                      { rMatcher = WordDetect "else"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CMake" , "Command Args" ) ]
-                      }
-                  , Rule
-                      { rMatcher = WordDetect "elseif"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CMake" , "Command Args" ) ]
-                      }
-                  , Rule
-                      { rMatcher = WordDetect "endif"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CMake" , "Command Args" ) ]
-                      }
-                  , Rule
-                      { rMatcher = WordDetect "macro"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CMake" , "Command Args" ) ]
-                      }
-                  , Rule
-                      { rMatcher = WordDetect "endmacro"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CMake" , "Command Args" ) ]
-                      }
-                  , Rule
-                      { rMatcher = WordDetect "foreach"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CMake" , "Command Args" ) ]
-                      }
-                  , Rule
-                      { rMatcher = WordDetect "endforeach"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CMake" , "Command Args" ) ]
-                      }
-                  , Rule
-                      { rMatcher = WordDetect "while"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CMake" , "Command Args" ) ]
-                      }
-                  , Rule
-                      { rMatcher = WordDetect "endwhile"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CMake" , "Command Args" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "add_compile_options"
-                               , "add_custom_command"
-                               , "add_custom_target"
-                               , "add_definitions"
-                               , "add_dependencies"
-                               , "add_executable"
-                               , "add_library"
-                               , "add_subdirectory"
-                               , "add_test"
-                               , "aux_source_directory"
-                               , "break"
-                               , "build_command"
-                               , "build_name"
-                               , "cmake_host_system_information"
-                               , "cmake_minimum_required"
-                               , "cmake_policy"
-                               , "configure_file"
-                               , "continue"
-                               , "create_test_sourcelist"
-                               , "ctest_build"
-                               , "ctest_configure"
-                               , "ctest_coverage"
-                               , "ctest_empty_binary_directory"
-                               , "ctest_memcheck"
-                               , "ctest_read_custom_files"
-                               , "ctest_run_script"
-                               , "ctest_sleep"
-                               , "ctest_start"
-                               , "ctest_submit"
-                               , "ctest_test"
-                               , "ctest_update"
-                               , "ctest_upload"
-                               , "define_property"
-                               , "else"
-                               , "elseif"
-                               , "enable_language"
-                               , "enable_testing"
-                               , "endforeach"
-                               , "endfunction"
-                               , "endif"
-                               , "endmacro"
-                               , "endwhile"
-                               , "exec_program"
-                               , "execute_process"
-                               , "export"
-                               , "export_library_dependencies"
-                               , "file"
-                               , "find_file"
-                               , "find_library"
-                               , "find_package"
-                               , "find_path"
-                               , "find_program"
-                               , "fltk_wrap_ui"
-                               , "foreach"
-                               , "function"
-                               , "get_cmake_property"
-                               , "get_directory_property"
-                               , "get_filename_component"
-                               , "get_property"
-                               , "get_source_file_property"
-                               , "get_target_property"
-                               , "get_test_property"
-                               , "if"
-                               , "include"
-                               , "include_directories"
-                               , "include_external_msproject"
-                               , "include_regular_expression"
-                               , "install"
-                               , "install_files"
-                               , "install_programs"
-                               , "install_targets"
-                               , "link_directories"
-                               , "link_libraries"
-                               , "list"
-                               , "load_cache"
-                               , "load_command"
-                               , "macro"
-                               , "make_directory"
-                               , "mark_as_advanced"
-                               , "math"
-                               , "message"
-                               , "option"
-                               , "output_required_files"
-                               , "project"
-                               , "qt_wrap_cpp"
-                               , "qt_wrap_ui"
-                               , "remove"
-                               , "remove_definitions"
-                               , "return"
-                               , "separate_arguments"
-                               , "set"
-                               , "set_directory_properties"
-                               , "set_property"
-                               , "set_source_files_properties"
-                               , "set_target_properties"
-                               , "set_tests_properties"
-                               , "site_name"
-                               , "source_group"
-                               , "string"
-                               , "subdir_depends"
-                               , "subdirs"
-                               , "target_compile_definitions"
-                               , "target_compile_features"
-                               , "target_compile_options"
-                               , "target_include_directories"
-                               , "target_link_libraries"
-                               , "target_sources"
-                               , "try_compile"
-                               , "try_run"
-                               , "unset"
-                               , "use_mangled_mesa"
-                               , "utility_source"
-                               , "variable_requires"
-                               , "variable_watch"
-                               , "while"
-                               , "write_file"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CMake" , "Command Args" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "itk_wrap_tcl"
-                               , "vtk_make_instantiator"
-                               , "vtk_wrap_java"
-                               , "vtk_wrap_python"
-                               , "vtk_wrap_tcl"
-                               ])
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*BEGIN.*$"
-                              , reCompiled = Just (compileRegex True "#\\s*BEGIN.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*END.*$"
-                              , reCompiled = Just (compileRegex True "#\\s*END.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\[(=*)\\[\\.rst:"
-                              , reCompiled = Just (compileRegex True "#\\[(=*)\\[\\.rst:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "CMake" , "RST Documentation" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\[(=*)\\["
-                              , reCompiled = Just (compileRegex True "#\\[(=*)\\[")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "CMake" , "Bracketed Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CMake" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "CMake" , "Detect Variables" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\w+\\s*(?=\\()"
-                              , reCompiled = Just (compileRegex True "\\w+\\s*(?=\\()")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CMake" , "Macro Args" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "RST Documentation"
-          , Context
-              { cName = "RST Documentation"
-              , cSyntax = "CMake"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#?\\]%1\\]"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "CMake"
-              , 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 = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[\"$nrt\\\\]"
-                              , reCompiled = Just (compileRegex True "\\\\[\"$nrt\\\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "CMake" , "Detect Variables" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "CMake" , "Detect Generator Expressions" )
-                      , 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
-              }
-          )
-        , ( "VarSubst"
-          , Context
-              { cName = "VarSubst"
-              , cSyntax = "CMake"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "CMake" , "Detect Builtin Variables" )
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "CMake" , "Detect Variables" )
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = VariableTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Alexander Neundorf (neundorf@kde.org)"
-  , sVersion = "3"
-  , sLicense = "LGPLv2+"
-  , sExtensions = [ "CMakeLists.txt" , "*.cmake" , "*.cmake.in" ]
-  , sStartingContext = "Normal Text"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"CMake\", sFilename = \"cmake.xml\", sShortname = \"Cmake\", sContexts = fromList [(\"Bracketed Comment\",Context {cName = \"Bracketed Comment\", cSyntax = \"CMake\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"#?\\\\]%1\\\\]\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Modelines\",\"\"), 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 = True}),(\"Bracketed String\",Context {cName = \"Bracketed String\", cSyntax = \"CMake\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\]%1\\\\]\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"Command Args\",Context {cName = \"Command Args\", cSyntax = \"CMake\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"AFTER\",\"ALIAS\",\"ALL\",\"ALPHABET\",\"AND\",\"APPEND\",\"APPENDNUMBER_ERRORS\",\"APPEND_STRING\",\"ARCHIVE\",\"ARGS\",\"ASCII\",\"AUTHOR_WARNING\",\"BEFORE\",\"BRIEF_DOCS\",\"BUILD\",\"BUNDLE\",\"BYPRODUCTS\",\"CACHE\",\"CACHED_VARIABLE\",\"CDASH_UPLOAD\",\"CDASH_UPLOAD_TYPE\",\"CLEAR\",\"CMAKE_FIND_ROOT_PATH_BOTH\",\"CMAKE_FLAGS\",\"CODE\",\"COMMAND\",\"COMMAND_NAME\",\"COMMENT\",\"COMPARE\",\"COMPILE_DEFINITIONS\",\"COMPILE_OUTPUT_VARIABLE\",\"COMPILE_RESULT_VAR\",\"COMPONENT\",\"COMPONENTS\",\"CONCAT\",\"CONDITION\",\"CONFIG\",\"CONFIGS\",\"CONFIGURATION\",\"CONFIGURATIONS\",\"CONFIGURE\",\"CONTENT\",\"COPY\",\"COPYONLY\",\"COPY_FILE\",\"COPY_FILE_ERROR\",\"CRLF\",\"DEFINED\",\"DEFINITION\",\"DEPENDS\",\"DESTINATION\",\"DIRECTORY\",\"DIRECTORY_PERMISSIONS\",\"DOC\",\"DOS\",\"DOWNLOAD\",\"END\",\"ENV\",\"EQUAL\",\"ERROR_FILE\",\"ERROR_QUIET\",\"ERROR_STRIP_TRAILING_WHITESPACE\",\"ERROR_VARIABLE\",\"ESCAPE_QUOTES\",\"EXACT\",\"EXCLUDE\",\"EXCLUDE_FROM_ALL\",\"EXCLUDE_LABEL\",\"EXISTS\",\"EXPECTED_HASH\",\"EXPECTED_MD5\",\"EXPORT\",\"EXPORT_LINK_INTERFACE_LIBRARIES\",\"EXPR\",\"EXTRA_INCLUDE\",\"FATAL_ERROR\",\"FILE\",\"FILES\",\"FILES_MATCHING\",\"FILE_PERMISSIONS\",\"FIND\",\"FLAGS\",\"FOLLOW_SYMLINKS\",\"FORCE\",\"FRAMEWORK\",\"FULL_DOCS\",\"FUNCTION\",\"GENERATE\",\"GENEX_STRIP\",\"GET\",\"GLOB\",\"GLOBAL\",\"GLOB_RECURSE\",\"GREATER\",\"GROUP_EXECUTE\",\"GROUP_READ\",\"GUARD\",\"GUID\",\"HEX\",\"HINTS\",\"IMPLICIT_DEPENDS\",\"IMPORTED\",\"IN\",\"INACTIVITY_TIMEOUT\",\"INCLUDE\",\"INCLUDES\",\"INCLUDE_INTERNALS\",\"INCLUDE_LABEL\",\"INHERITED\",\"INPUT\",\"INPUT_FILE\",\"INSERT\",\"INSTALL\",\"INTERFACE\",\"IS_ABSOLUTE\",\"IS_DIRECTORY\",\"IS_NEWER_THAN\",\"IS_SYMLINK\",\"ITEMS\",\"LABELS\",\"LANGUAGES\",\"LENGTH\",\"LENGTH_MAXIMUM\",\"LENGTH_MINIMUM\",\"LESS\",\"LF\",\"LIBRARY\",\"LIMIT\",\"LIMIT_COUNT\",\"LIMIT_INPUT\",\"LIMIT_OUTPUT\",\"LINK_INTERFACE_LIBRARIES\",\"LINK_LIBRARIES\",\"LINK_PRIVATE\",\"LINK_PUBLIC\",\"LISTS\",\"LIST_DIRECTORIES\",\"LOCK\",\"LOG\",\"MACOSX_BUNDLE\",\"MAIN_DEPENDENCY\",\"MAKE_C_IDENTIFIER\",\"MAKE_DIRECTORY\",\"MATCH\",\"MATCHALL\",\"MATCHES\",\"MD5\",\"MESSAGE_NEVER\",\"MODULE\",\"NAME\",\"NAMELINK_ONLY\",\"NAMELINK_SKIP\",\"NAMES\",\"NAMESPACE\",\"NAMES_PER_DIR\",\"NEW\",\"NEWLINE_CONSUME\",\"NEWLINE_STYLE\",\"NEW_PROCESS\",\"NOT\",\"NOTEQUAL\",\"NO_CMAKE_BUILDS_PATH\",\"NO_CMAKE_ENVIRONMENT_PATH\",\"NO_CMAKE_FIND_ROOT_PATH\",\"NO_CMAKE_PACKAGE_REGISTRY\",\"NO_CMAKE_PATH\",\"NO_CMAKE_SYSTEM_PACKAGE_REGISTRY\",\"NO_CMAKE_SYSTEM_PATH\",\"NO_DEFAULT_PATH\",\"NO_HEX_CONVERSION\",\"NO_MODULE\",\"NO_POLICY_SCOPE\",\"NO_SOURCE_PERMISSIONS\",\"NO_SYSTEM_ENVIRONMENT_PATH\",\"NUMBER_ERRORS\",\"NUMBER_WARNINGS\",\"OBJECT\",\"OFF\",\"OFFSET\",\"OLD\",\"ON\",\"ONLY_CMAKE_FIND_ROOT_PATH\",\"OPTIONAL\",\"OPTIONAL_COMPONENTS\",\"OPTIONS\",\"OR\",\"OUTPUT\",\"OUTPUT_DIRECTORY\",\"OUTPUT_FILE\",\"OUTPUT_QUIET\",\"OUTPUT_STRIP_TRAILING_WHITESPACE\",\"OUTPUT_VARIABLE\",\"OWNER_EXECUTE\",\"OWNER_READ\",\"OWNER_WRITE\",\"PACKAGE\",\"PARALLEL_LEVEL\",\"PARENT_SCOPE\",\"PARTS\",\"PATHS\",\"PATH_SUFFIXES\",\"PATH_TO_MESA\",\"PATTERN\",\"PERMISSIONS\",\"PLATFORM\",\"POLICY\",\"POP\",\"POST_BUILD\",\"PREORDER\",\"PRE_BUILD\",\"PRE_LINK\",\"PRIVATE\",\"PRIVATE_HEADER\",\"PROCESS\",\"PROGRAM\",\"PROGRAMS\",\"PROGRAM_ARGS\",\"PROJECT_NAME\",\"PROPERTIES\",\"PROPERTY\",\"PUBLIC\",\"PUBLIC_HEADER\",\"PUSH\",\"QUERY\",\"QUIET\",\"RANDOM\",\"RANDOM_SEED\",\"RANGE\",\"READ\",\"READ_WITH_PREFIX\",\"REGEX\",\"REGULAR_EXPRESSION\",\"RELATIVE\",\"RELATIVE_PATH\",\"RELEASE\",\"REMOVE\",\"REMOVE_AT\",\"REMOVE_DUPLICATES\",\"REMOVE_ITEM\",\"REMOVE_RECURSE\",\"RENAME\",\"REPLACE\",\"REQUIRED\",\"REQUIRED_VARIABLE1\",\"REQUIRED_VARIABLE2\",\"RESOURCE\",\"RESULT\",\"RESULT_VAR\",\"RESULT_VARIABLE\",\"RETRY_COUNT\",\"RETRY_DELAY\",\"RETURN_VALUE\",\"REVERSE\",\"RUNTIME\",\"RUNTIME_DIRECTORY\",\"RUN_OUTPUT_VARIABLE\",\"RUN_RESULT_VAR\",\"SCHEDULE_RANDOM\",\"SCRIPT\",\"SEND_ERROR\",\"SET\",\"SHA1\",\"SHA224\",\"SHA256\",\"SHA384\",\"SHA512\",\"SHARED\",\"SHOW_PROGRESS\",\"SORT\",\"SOURCE\",\"SOURCES\",\"START\",\"STATIC\",\"STATUS\",\"STOP_TIME\",\"STREQUAL\",\"STRGREATER\",\"STRIDE\",\"STRINGS\",\"STRIP\",\"STRLESS\",\"SUBSTRING\",\"SYSTEM\",\"TARGET\",\"TARGETS\",\"TEST\",\"TEST_VARIABLE\",\"TIMEOUT\",\"TIMESTAMP\",\"TLS_CAINFO\",\"TLS_VERIFY\",\"TOLOWER\",\"TOUPPER\",\"TO_CMAKE_PATH\",\"TO_NATIVE_PATH\",\"TRACK\",\"TYPE\",\"UNIX\",\"UNIX_COMMAND\",\"UNKNOWN\",\"UPLOAD\",\"UPPER\",\"USES_TERMINAL\",\"USE_SOURCE_PERMISSIONS\",\"UTC\",\"UUID\",\"VALUE\",\"VARIABLE\",\"VERBATIM\",\"VERSION\",\"VERSION_EQUAL\",\"VERSION_GREATER\",\"VERSION_LESS\",\"WARNING\",\"WIN32\",\"WINDOWS_COMMAND\",\"WORKING_DIRECTORY\",\"WRITE\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"ABSOLUTE\",\"AVAILABLE_PHYSICAL_MEMORY\",\"AVAILABLE_VIRTUAL_MEMORY\",\"BOOL\",\"EXT\",\"FILEPATH\",\"FQDN\",\"HOSTNAME\",\"INTERNAL\",\"IN_LIST\",\"NAME\",\"NAME_WE\",\"NUMBER_OF_LOGICAL_CORES\",\"NUMBER_OF_PHYSICAL_CORES\",\"PATH\",\"REALPATH\",\"STRING\",\"TOTAL_PHYSICAL_MEMORY\",\"TOTAL_VIRTUAL_MEMORY\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMP[0-9]+\\\\b\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"ABSTRACT\",\"ADDITIONAL_MAKE_CLEAN_FILES\",\"ADVANCED\",\"ALIASED_TARGET\",\"ALLOW_DUPLICATE_CUSTOM_TARGETS\",\"ANDROID_API\",\"ANDROID_API_MIN\",\"ANDROID_GUI\",\"ARCHIVE_OUTPUT_DIRECTORY\",\"ARCHIVE_OUTPUT_NAME\",\"ATTACHED_FILES\",\"ATTACHED_FILES_ON_FAIL\",\"AUTOGEN_TARGETS_FOLDER\",\"AUTOGEN_TARGET_DEPENDS\",\"AUTOMOC\",\"AUTOMOC_MOC_OPTIONS\",\"AUTOMOC_TARGETS_FOLDER\",\"AUTORCC\",\"AUTORCC_OPTIONS\",\"AUTOUIC\",\"AUTOUIC_OPTIONS\",\"BUILD_WITH_INSTALL_RPATH\",\"BUNDLE\",\"BUNDLE_EXTENSION\",\"CACHE_VARIABLES\",\"CLEAN_NO_CUSTOM\",\"CMAKE_CONFIGURE_DEPENDS\",\"CMAKE_CXX_KNOWN_FEATURES\",\"CMAKE_C_KNOWN_FEATURES\",\"COMPATIBLE_INTERFACE_BOOL\",\"COMPATIBLE_INTERFACE_NUMBER_MAX\",\"COMPATIBLE_INTERFACE_NUMBER_MIN\",\"COMPATIBLE_INTERFACE_STRING\",\"COMPILE_DEFINITIONS\",\"COMPILE_FEATURES\",\"COMPILE_FLAGS\",\"COMPILE_OPTIONS\",\"COMPILE_PDB_NAME\",\"COMPILE_PDB_OUTPUT_DIRECTORY\",\"COST\",\"CPACK_DESKTOP_SHORTCUTS\",\"CPACK_NEVER_OVERWRITE\",\"CPACK_PERMANENT\",\"CPACK_STARTUP_SHORTCUTS\",\"CPACK_START_MENU_SHORTCUTS\",\"CPACK_WIX_ACL\",\"CROSSCOMPILING_EMULATOR\",\"CXX_EXTENSIONS\",\"CXX_STANDARD\",\"CXX_STANDARD_REQUIRED\",\"C_EXTENSIONS\",\"C_STANDARD\",\"C_STANDARD_REQUIRED\",\"DEBUG_CONFIGURATIONS\",\"DEBUG_POSTFIX\",\"DEFINE_SYMBOL\",\"DEFINITIONS\",\"DEPENDS\",\"DISABLED_FEATURES\",\"ECLIPSE_EXTRA_NATURES\",\"ENABLED_FEATURES\",\"ENABLED_LANGUAGES\",\"ENABLE_EXPORTS\",\"ENVIRONMENT\",\"EXCLUDE_FROM_ALL\",\"EXCLUDE_FROM_DEFAULT_BUILD\",\"EXPORT_NAME\",\"EXTERNAL_OBJECT\",\"EchoString\",\"FAIL_REGULAR_EXPRESSION\",\"FIND_LIBRARY_USE_LIB64_PATHS\",\"FIND_LIBRARY_USE_OPENBSD_VERSIONING\",\"FOLDER\",\"FRAMEWORK\",\"Fortran_FORMAT\",\"Fortran_MODULE_DIRECTORY\",\"GENERATED\",\"GENERATOR_FILE_NAME\",\"GLOBAL_DEPENDS_DEBUG_MODE\",\"GLOBAL_DEPENDS_NO_CYCLES\",\"GNUtoMS\",\"HAS_CXX\",\"HEADER_FILE_ONLY\",\"HELPSTRING\",\"IMPLICIT_DEPENDS_INCLUDE_TRANSFORM\",\"IMPORTED\",\"IMPORTED_CONFIGURATIONS\",\"IMPORTED_IMPLIB\",\"IMPORTED_LINK_DEPENDENT_LIBRARIES\",\"IMPORTED_LINK_INTERFACE_LANGUAGES\",\"IMPORTED_LINK_INTERFACE_LIBRARIES\",\"IMPORTED_LINK_INTERFACE_MULTIPLICITY\",\"IMPORTED_LOCATION\",\"IMPORTED_NO_SONAME\",\"IMPORTED_SONAME\",\"IMPORT_PREFIX\",\"IMPORT_SUFFIX\",\"INCLUDE_DIRECTORIES\",\"INCLUDE_REGULAR_EXPRESSION\",\"INSTALL_NAME_DIR\",\"INSTALL_RPATH\",\"INSTALL_RPATH_USE_LINK_PATH\",\"INTERFACE_AUTOUIC_OPTIONS\",\"INTERFACE_COMPILE_DEFINITIONS\",\"INTERFACE_COMPILE_FEATURES\",\"INTERFACE_COMPILE_OPTIONS\",\"INTERFACE_INCLUDE_DIRECTORIES\",\"INTERFACE_LINK_LIBRARIES\",\"INTERFACE_POSITION_INDEPENDENT_CODE\",\"INTERFACE_SOURCES\",\"INTERFACE_SYSTEM_INCLUDE_DIRECTORIES\",\"INTERPROCEDURAL_OPTIMIZATION\",\"IN_TRY_COMPILE\",\"JOB_POOLS\",\"JOB_POOL_COMPILE\",\"JOB_POOL_LINK\",\"KEEP_EXTENSION\",\"LABELS\",\"LANGUAGE\",\"LIBRARY_OUTPUT_DIRECTORY\",\"LIBRARY_OUTPUT_NAME\",\"LINKER_LANGUAGE\",\"LINK_DEPENDS\",\"LINK_DEPENDS_NO_SHARED\",\"LINK_DIRECTORIES\",\"LINK_FLAGS\",\"LINK_INTERFACE_LIBRARIES\",\"LINK_INTERFACE_MULTIPLICITY\",\"LINK_LIBRARIES\",\"LINK_SEARCH_END_STATIC\",\"LINK_SEARCH_START_STATIC\",\"LISTFILE_STACK\",\"LOCATION\",\"MACOSX_BUNDLE\",\"MACOSX_BUNDLE_INFO_PLIST\",\"MACOSX_FRAMEWORK_INFO_PLIST\",\"MACOSX_PACKAGE_LOCATION\",\"MACOSX_RPATH\",\"MACROS\",\"MEASUREMENT\",\"MODIFIED\",\"NAME\",\"NO_SONAME\",\"NO_SYSTEM_FROM_IMPORTED\",\"OBJECT_DEPENDS\",\"OBJECT_OUTPUTS\",\"OSX_ARCHITECTURES\",\"OUTPUT_NAME\",\"PACKAGES_FOUND\",\"PACKAGES_NOT_FOUND\",\"PARENT_DIRECTORY\",\"PASS_REGULAR_EXPRESSION\",\"PDB_NAME\",\"PDB_OUTPUT_DIRECTORY\",\"POSITION_INDEPENDENT_CODE\",\"POST_INSTALL_SCRIPT\",\"PREDEFINED_TARGETS_FOLDER\",\"PREFIX\",\"PRE_INSTALL_SCRIPT\",\"PRIVATE_HEADER\",\"PROCESSORS\",\"PROJECT_LABEL\",\"PUBLIC_HEADER\",\"REPORT_UNDEFINED_PROPERTIES\",\"REQUIRED_FILES\",\"RESOURCE\",\"RESOURCE_LOCK\",\"RULE_LAUNCH_COMPILE\",\"RULE_LAUNCH_CUSTOM\",\"RULE_LAUNCH_LINK\",\"RULE_MESSAGES\",\"RUNTIME_OUTPUT_DIRECTORY\",\"RUNTIME_OUTPUT_NAME\",\"RUN_SERIAL\",\"SKIP_BUILD_RPATH\",\"SKIP_RETURN_CODE\",\"SOURCES\",\"SOVERSION\",\"STATIC_LIBRARY_FLAGS\",\"STRINGS\",\"SUFFIX\",\"SYMBOLIC\",\"TARGET_ARCHIVES_MAY_BE_SHARED_LIBS\",\"TARGET_SUPPORTS_SHARED_LIBS\",\"TEST_INCLUDE_FILE\",\"TIMEOUT\",\"TYPE\",\"USE_FOLDERS\",\"VALUE\",\"VARIABLES\",\"VERSION\",\"VISIBILITY_INLINES_HIDDEN\",\"VS_DEPLOYMENT_CONTENT\",\"VS_DEPLOYMENT_LOCATION\",\"VS_DOTNET_REFERENCES\",\"VS_DOTNET_TARGET_FRAMEWORK_VERSION\",\"VS_GLOBAL_KEYWORD\",\"VS_GLOBAL_PROJECT_TYPES\",\"VS_GLOBAL_ROOTNAMESPACE\",\"VS_KEYWORD\",\"VS_SCC_AUXPATH\",\"VS_SCC_LOCALPATH\",\"VS_SCC_PROJECTNAME\",\"VS_SCC_PROVIDER\",\"VS_SHADER_ENTRYPOINT\",\"VS_SHADER_FLAGS\",\"VS_SHADER_MODEL\",\"VS_SHADER_TYPE\",\"VS_WINRT_COMPONENT\",\"VS_WINRT_EXTENSIONS\",\"VS_WINRT_REFERENCES\",\"VS_XAML_TYPE\",\"WILL_FAIL\",\"WIN32_EXECUTABLE\",\"WORKING_DIRECTORY\",\"WRAP_EXCLUDE\",\"XCODE_EXPLICIT_FILE_TYPE\",\"XCODE_LAST_KNOWN_FILE_TYPE\",\"XCTEST\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"COMMANDS\",\"DEFINITION\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"CMake\",\"Detect Builtin Variables\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"CMake\",\"Macro Args\"), 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 = \"CMake\", cRules = [Rule {rMatcher = LineContinue, 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 = IncludeRules (\"Modelines\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Detect Builtin Variables\",Context {cName = \"Detect Builtin Variables\", cSyntax = \"CMake\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"APPLE\",\"BORLAND\",\"BUILD_SHARED_LIBS\",\"CMAKE_ABSOLUTE_DESTINATION_FILES\",\"CMAKE_ANDROID_API\",\"CMAKE_ANDROID_API_MIN\",\"CMAKE_ANDROID_GUI\",\"CMAKE_APPBUNDLE_PATH\",\"CMAKE_AR\",\"CMAKE_ARCHIVE_OUTPUT_DIRECTORY\",\"CMAKE_ARGC\",\"CMAKE_ARGV0\",\"CMAKE_AUTOMOC\",\"CMAKE_AUTOMOC_MOC_OPTIONS\",\"CMAKE_AUTOMOC_RELAXED_MODE\",\"CMAKE_AUTORCC\",\"CMAKE_AUTORCC_OPTIONS\",\"CMAKE_AUTOUIC\",\"CMAKE_AUTOUIC_OPTIONS\",\"CMAKE_BACKWARDS_COMPATIBILITY\",\"CMAKE_BINARY_DIR\",\"CMAKE_BUILD_TOOL\",\"CMAKE_BUILD_TYPE\",\"CMAKE_BUILD_WITH_INSTALL_RPATH\",\"CMAKE_CACHEFILE_DIR\",\"CMAKE_CACHE_MAJOR_VERSION\",\"CMAKE_CACHE_MINOR_VERSION\",\"CMAKE_CACHE_PATCH_VERSION\",\"CMAKE_CFG_INTDIR\",\"CMAKE_CL_64\",\"CMAKE_COLOR_MAKEFILE\",\"CMAKE_COMMAND\",\"CMAKE_COMPILER_2005\",\"CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY\",\"CMAKE_CONFIGURATION_TYPES\",\"CMAKE_CROSSCOMPILING\",\"CMAKE_CROSSCOMPILING_EMULATOR\",\"CMAKE_CTEST_COMMAND\",\"CMAKE_CURRENT_BINARY_DIR\",\"CMAKE_CURRENT_LIST_DIR\",\"CMAKE_CURRENT_LIST_FILE\",\"CMAKE_CURRENT_LIST_LINE\",\"CMAKE_CURRENT_SOURCE_DIR\",\"CMAKE_CXX_COMPILE_FEATURES\",\"CMAKE_CXX_EXTENSIONS\",\"CMAKE_CXX_STANDARD\",\"CMAKE_CXX_STANDARD_REQUIRED\",\"CMAKE_C_COMPILE_FEATURES\",\"CMAKE_C_EXTENSIONS\",\"CMAKE_C_STANDARD\",\"CMAKE_C_STANDARD_REQUIRED\",\"CMAKE_DEBUG_POSTFIX\",\"CMAKE_DEBUG_TARGET_PROPERTIES\",\"CMAKE_DL_LIBS\",\"CMAKE_EDIT_COMMAND\",\"CMAKE_ERROR_DEPRECATED\",\"CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION\",\"CMAKE_EXECUTABLE_SUFFIX\",\"CMAKE_EXE_LINKER_FLAGS\",\"CMAKE_EXPORT_NO_PACKAGE_REGISTRY\",\"CMAKE_EXTRA_GENERATOR\",\"CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES\",\"CMAKE_FIND_LIBRARY_PREFIXES\",\"CMAKE_FIND_LIBRARY_SUFFIXES\",\"CMAKE_FIND_NO_INSTALL_PREFIX\",\"CMAKE_FIND_PACKAGE_NAME\",\"CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY\",\"CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY\",\"CMAKE_FIND_PACKAGE_WARN_NO_MODULE\",\"CMAKE_FIND_ROOT_PATH\",\"CMAKE_FIND_ROOT_PATH_MODE_INCLUDE\",\"CMAKE_FIND_ROOT_PATH_MODE_LIBRARY\",\"CMAKE_FIND_ROOT_PATH_MODE_PACKAGE\",\"CMAKE_FIND_ROOT_PATH_MODE_PROGRAM\",\"CMAKE_FRAMEWORK_PATH\",\"CMAKE_Fortran_FORMAT\",\"CMAKE_Fortran_MODDIR_DEFAULT\",\"CMAKE_Fortran_MODDIR_FLAG\",\"CMAKE_Fortran_MODOUT_FLAG\",\"CMAKE_Fortran_MODULE_DIRECTORY\",\"CMAKE_GENERATOR\",\"CMAKE_GENERATOR_PLATFORM\",\"CMAKE_GENERATOR_TOOLSET\",\"CMAKE_GNUtoMS\",\"CMAKE_HOME_DIRECTORY\",\"CMAKE_HOST_APPLE\",\"CMAKE_HOST_SYSTEM\",\"CMAKE_HOST_SYSTEM_NAME\",\"CMAKE_HOST_SYSTEM_PROCESSOR\",\"CMAKE_HOST_SYSTEM_VERSION\",\"CMAKE_HOST_UNIX\",\"CMAKE_HOST_WIN32\",\"CMAKE_IGNORE_PATH\",\"CMAKE_IMPORT_LIBRARY_PREFIX\",\"CMAKE_IMPORT_LIBRARY_SUFFIX\",\"CMAKE_INCLUDE_CURRENT_DIR\",\"CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE\",\"CMAKE_INCLUDE_DIRECTORIES_BEFORE\",\"CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE\",\"CMAKE_INCLUDE_PATH\",\"CMAKE_INSTALL_DEFAULT_COMPONENT_NAME\",\"CMAKE_INSTALL_MESSAGE\",\"CMAKE_INSTALL_NAME_DIR\",\"CMAKE_INSTALL_PREFIX\",\"CMAKE_INSTALL_RPATH\",\"CMAKE_INSTALL_RPATH_USE_LINK_PATH\",\"CMAKE_INTERNAL_PLATFORM_ABI\",\"CMAKE_JOB_POOL_COMPILE\",\"CMAKE_JOB_POOL_LINK\",\"CMAKE_LIBRARY_ARCHITECTURE\",\"CMAKE_LIBRARY_ARCHITECTURE_REGEX\",\"CMAKE_LIBRARY_OUTPUT_DIRECTORY\",\"CMAKE_LIBRARY_PATH\",\"CMAKE_LIBRARY_PATH_FLAG\",\"CMAKE_LINK_DEF_FILE_FLAG\",\"CMAKE_LINK_DEPENDS_NO_SHARED\",\"CMAKE_LINK_INTERFACE_LIBRARIES\",\"CMAKE_LINK_LIBRARY_FILE_FLAG\",\"CMAKE_LINK_LIBRARY_FLAG\",\"CMAKE_LINK_LIBRARY_SUFFIX\",\"CMAKE_MACOSX_BUNDLE\",\"CMAKE_MACOSX_RPATH\",\"CMAKE_MAJOR_VERSION\",\"CMAKE_MAKE_PROGRAM\",\"CMAKE_MATCH_COUNT\",\"CMAKE_MFC_FLAG\",\"CMAKE_MINIMUM_REQUIRED_VERSION\",\"CMAKE_MINOR_VERSION\",\"CMAKE_MODULE_LINKER_FLAGS\",\"CMAKE_MODULE_PATH\",\"CMAKE_NOT_USING_CONFIG_FLAGS\",\"CMAKE_NO_BUILTIN_CHRPATH\",\"CMAKE_NO_SYSTEM_FROM_IMPORTED\",\"CMAKE_OBJECT_PATH_MAX\",\"CMAKE_OSX_ARCHITECTURES\",\"CMAKE_OSX_DEPLOYMENT_TARGET\",\"CMAKE_OSX_SYSROOT\",\"CMAKE_PARENT_LIST_FILE\",\"CMAKE_PATCH_VERSION\",\"CMAKE_PDB_OUTPUT_DIRECTORY\",\"CMAKE_POSITION_INDEPENDENT_CODE\",\"CMAKE_PREFIX_PATH\",\"CMAKE_PROGRAM_PATH\",\"CMAKE_PROJECT_NAME\",\"CMAKE_RANLIB\",\"CMAKE_ROOT\",\"CMAKE_RUNTIME_OUTPUT_DIRECTORY\",\"CMAKE_SCRIPT_MODE_FILE\",\"CMAKE_SHARED_LIBRARY_PREFIX\",\"CMAKE_SHARED_LIBRARY_SUFFIX\",\"CMAKE_SHARED_LINKER_FLAGS\",\"CMAKE_SHARED_MODULE_PREFIX\",\"CMAKE_SHARED_MODULE_SUFFIX\",\"CMAKE_SIZEOF_VOID_P\",\"CMAKE_SKIP_BUILD_RPATH\",\"CMAKE_SKIP_INSTALL_ALL_DEPENDENCY\",\"CMAKE_SKIP_INSTALL_RPATH\",\"CMAKE_SKIP_INSTALL_RULES\",\"CMAKE_SKIP_RPATH\",\"CMAKE_SOURCE_DIR\",\"CMAKE_STAGING_PREFIX\",\"CMAKE_STANDARD_LIBRARIES\",\"CMAKE_STATIC_LIBRARY_PREFIX\",\"CMAKE_STATIC_LIBRARY_SUFFIX\",\"CMAKE_STATIC_LINKER_FLAGS\",\"CMAKE_SYSROOT\",\"CMAKE_SYSTEM\",\"CMAKE_SYSTEM_IGNORE_PATH\",\"CMAKE_SYSTEM_INCLUDE_PATH\",\"CMAKE_SYSTEM_LIBRARY_PATH\",\"CMAKE_SYSTEM_NAME\",\"CMAKE_SYSTEM_PREFIX_PATH\",\"CMAKE_SYSTEM_PROCESSOR\",\"CMAKE_SYSTEM_PROGRAM_PATH\",\"CMAKE_SYSTEM_VERSION\",\"CMAKE_TOOLCHAIN_FILE\",\"CMAKE_TRY_COMPILE_CONFIGURATION\",\"CMAKE_TWEAK_VERSION\",\"CMAKE_USER_MAKE_RULES_OVERRIDE\",\"CMAKE_USE_RELATIVE_PATHS\",\"CMAKE_VERBOSE_MAKEFILE\",\"CMAKE_VERSION\",\"CMAKE_VISIBILITY_INLINES_HIDDEN\",\"CMAKE_VS_DEVENV_COMMAND\",\"CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD\",\"CMAKE_VS_INTEL_Fortran_PROJECT_VERSION\",\"CMAKE_VS_MSBUILD_COMMAND\",\"CMAKE_VS_MSDEV_COMMAND\",\"CMAKE_VS_NsightTegra_VERSION\",\"CMAKE_VS_PLATFORM_NAME\",\"CMAKE_VS_PLATFORM_TOOLSET\",\"CMAKE_WARN_DEPRECATED\",\"CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION\",\"CMAKE_WIN32_EXECUTABLE\",\"CMAKE_XCODE_PLATFORM_TOOLSET\",\"CPACK_ABSOLUTE_DESTINATION_FILES\",\"CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY\",\"CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION\",\"CPACK_INCLUDE_TOPLEVEL_DIRECTORY\",\"CPACK_INSTALL_SCRIPT\",\"CPACK_PACKAGING_INSTALL_PREFIX\",\"CPACK_SET_DESTDIR\",\"CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION\",\"CTEST_BINARY_DIRECTORY\",\"CTEST_BUILD_COMMAND\",\"CTEST_BUILD_NAME\",\"CTEST_BZR_COMMAND\",\"CTEST_BZR_UPDATE_OPTIONS\",\"CTEST_CHECKOUT_COMMAND\",\"CTEST_CONFIGURATION_TYPE\",\"CTEST_CONFIGURE_COMMAND\",\"CTEST_COVERAGE_COMMAND\",\"CTEST_COVERAGE_EXTRA_FLAGS\",\"CTEST_CURL_OPTIONS\",\"CTEST_CVS_CHECKOUT\",\"CTEST_CVS_COMMAND\",\"CTEST_CVS_UPDATE_OPTIONS\",\"CTEST_DROP_LOCATION\",\"CTEST_DROP_METHOD\",\"CTEST_DROP_SITE\",\"CTEST_DROP_SITE_CDASH\",\"CTEST_DROP_SITE_PASSWORD\",\"CTEST_DROP_SITE_USER\",\"CTEST_GIT_COMMAND\",\"CTEST_GIT_UPDATE_CUSTOM\",\"CTEST_GIT_UPDATE_OPTIONS\",\"CTEST_HG_COMMAND\",\"CTEST_HG_UPDATE_OPTIONS\",\"CTEST_MEMORYCHECK_COMMAND\",\"CTEST_MEMORYCHECK_COMMAND_OPTIONS\",\"CTEST_MEMORYCHECK_SANITIZER_OPTIONS\",\"CTEST_MEMORYCHECK_SUPPRESSIONS_FILE\",\"CTEST_MEMORYCHECK_TYPE\",\"CTEST_NIGHTLY_START_TIME\",\"CTEST_P4_CLIENT\",\"CTEST_P4_COMMAND\",\"CTEST_P4_OPTIONS\",\"CTEST_P4_UPDATE_OPTIONS\",\"CTEST_SCP_COMMAND\",\"CTEST_SITE\",\"CTEST_SOURCE_DIRECTORY\",\"CTEST_SVN_COMMAND\",\"CTEST_SVN_OPTIONS\",\"CTEST_SVN_UPDATE_OPTIONS\",\"CTEST_TEST_TIMEOUT\",\"CTEST_TRIGGER_SITE\",\"CTEST_UPDATE_COMMAND\",\"CTEST_UPDATE_OPTIONS\",\"CTEST_UPDATE_VERSION_ONLY\",\"CTEST_USE_LAUNCHERS\",\"CYGWIN\",\"ENV\",\"EXECUTABLE_OUTPUT_PATH\",\"GHS-MULTI\",\"LIBRARY_OUTPUT_PATH\",\"MINGW\",\"MSVC\",\"MSVC10\",\"MSVC11\",\"MSVC12\",\"MSVC14\",\"MSVC60\",\"MSVC70\",\"MSVC71\",\"MSVC80\",\"MSVC90\",\"MSVC_IDE\",\"MSVC_VERSION\",\"PROJECT_BINARY_DIR\",\"PROJECT_NAME\",\"PROJECT_SOURCE_DIR\",\"PROJECT_VERSION\",\"PROJECT_VERSION_MAJOR\",\"PROJECT_VERSION_MINOR\",\"PROJECT_VERSION_PATCH\",\"PROJECT_VERSION_TWEAK\",\"UNIX\",\"WIN32\",\"WINCE\",\"WINDOWS_PHONE\",\"WINDOWS_STORE\",\"XCODE_VERSION\"])), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"CMake\",\"Detect More Builtin Variables\"), 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}),(\"Detect Generator Expressions\",Context {cName = \"Detect Generator Expressions\", cSyntax = \"CMake\", cRules = [Rule {rMatcher = Detect2Chars '$' '<', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CMake\",\"Generator Expression\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Detect More Builtin Variables\",Context {cName = \"Detect More Builtin Variables\", cSyntax = \"CMake\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_ARCHIVE_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_COMPILER_IS_GNU[A-Za-z_][A-Za-z_0-9]*\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_DISABLE_FIND_PACKAGE_[A-Za-z_][A-Za-z_0-9]*\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_EXE_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_LIBRARY_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_MAP_IMPORTED_CONFIG_[A-Za-z_][A-Za-z_0-9]*\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_MODULE_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_PDB_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_POLICY_DEFAULT_CMP[0-9]+\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_POLICY_WARNING_CMP[0-9]+\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_PROJECT_[A-Za-z_][A-Za-z_0-9]*_INCLUDE\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_RUNTIME_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_SHARED_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_STATIC_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_USER_MAKE_RULES_OVERRIDE_[A-Za-z_][A-Za-z_0-9]*\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_XCODE_ATTRIBUTE_[A-Za-z_][A-Za-z_0-9]*\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_ARCHIVE_APPEND\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_ARCHIVE_CREATE\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_ARCHIVE_FINISH\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_ABI\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_EXTERNAL_TOOLCHAIN\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_ID\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_LOADED\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_TARGET\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_VERSION\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILE_OBJECT\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_CREATE_SHARED_LIBRARY\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_CREATE_SHARED_MODULE\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_CREATE_STATIC_LIBRARY\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_DEBUG\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_MINSIZEREL\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_RELEASE\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_RELWITHDEBINFO\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_DEBUG\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_MINSIZEREL\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_RELEASE\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_RELWITHDEBINFO\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IGNORE_EXTENSIONS\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_INCLUDE_DIRECTORIES\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_LINK_DIRECTORIES\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_LINK_LIBRARIES\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_INCLUDE_WHAT_YOU_USE\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LIBRARY_ARCHITECTURE\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LINKER_PREFERENCE\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LINKER_PREFERENCE_PROPAGATES\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LINK_EXECUTABLE\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_OUTPUT_EXTENSION\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_PLATFORM_ID\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_POSTFIX\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SIMULATE_ID\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SIMULATE_VERSION\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SIZEOF_DATA_PTR\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SOURCE_FILE_EXTENSIONS\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_VISIBILITY_PRESET\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[A-Za-z_][A-Za-z_0-9]*_BINARY_DIR\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[A-Za-z_][A-Za-z_0-9]*_SOURCE_DIR\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[A-Za-z_][A-Za-z_0-9]*_VERSION\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[A-Za-z_][A-Za-z_0-9]*_VERSION_MAJOR\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[A-Za-z_][A-Za-z_0-9]*_VERSION_MINOR\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[A-Za-z_][A-Za-z_0-9]*_VERSION_PATCH\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[A-Za-z_][A-Za-z_0-9]*_VERSION_TWEAK\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Detect Variables\",Context {cName = \"Detect Variables\", cSyntax = \"CMake\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\$ENV\\\\{\\\\s*[\\\\w-]+\\\\s*\\\\}\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '$' '{', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CMake\",\"VarSubst\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"DetectSimpleGEEnd\",Context {cName = \"DetectSimpleGEEnd\", cSyntax = \"CMake\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Generator Expression\",Context {cName = \"Generator Expression\", cSyntax = \"CMake\", cRules = [Rule {rMatcher = IncludeRules (\"CMake\",\"Detect Generator Expressions\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '>', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"ANGLE-R\",\"COMMA\",\"CONFIGURATION\",\"INSTALL_PREFIX\",\"SEMICOLON\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CMake\",\"DetectSimpleGEEnd\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"0\",\"1\",\"AND\",\"ANGLE-R\",\"BOOL\",\"BUILD_INTERFACE\",\"COMMA\",\"COMPILER_FEATURES\",\"CONFIG\",\"CONFIGURATION\",\"CXX_COMPILER_ID\",\"CXX_COMPILER_VERSION\",\"C_COMPILER_ID\",\"C_COMPILER_VERSION\",\"EQUAL\",\"INSTALL_INTERFACE\",\"INSTALL_PREFIX\",\"JOIN\",\"LINK_ONLY\",\"LOWER_CASE\",\"MAKE_C_IDENTIFIER\",\"NOT\",\"OR\",\"PLATFORM_ID\",\"SEMICOLON\",\"STREQUAL\",\"TARGET_DIR\",\"TARGET_FILE\",\"TARGET_FILE_DIR\",\"TARGET_FILE_NAME\",\"TARGET_LINKER_FILE\",\"TARGET_LINKER_FILE_DIR\",\"TARGET_LINKER_FILE_NAME\",\"TARGET_NAME\",\"TARGET_OBJECTS\",\"TARGET_PDB_FILE\",\"TARGET_PDB_FILE_DIR\",\"TARGET_PDB_FILE_NAME\",\"TARGET_POLICY\",\"TARGET_PROPERTY\",\"TARGET_SONAME_FILE\",\"TARGET_SONAME_FILE_DIR\",\"TARGET_SONAME_FILE_NAME\",\"UPPER_CASE\",\"VERSION_EQUAL\",\"VERSION_GREATER\",\"VERSION_LESS\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"CMake\",\"Detect Variables\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Macro Args\",Context {cName = \"Macro Args\", cSyntax = \"CMake\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[\\\"$n\\\\\\\\]\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CMake\",\"String\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[(=*)\\\\[\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CMake\",\"Bracketed String\")]},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CMake\",\"Comment\")]},Rule {rMatcher = IncludeRules (\"CMake\",\"Detect Builtin Variables\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"CMake\",\"Detect Variables\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"CMake\",\"Detect Generator Expressions\"), 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}),(\"Normal Text\",Context {cName = \"Normal Text\", cSyntax = \"CMake\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = WordDetect \"if\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CMake\",\"Command Args\")]},Rule {rMatcher = WordDetect \"else\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CMake\",\"Command Args\")]},Rule {rMatcher = WordDetect \"elseif\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CMake\",\"Command Args\")]},Rule {rMatcher = WordDetect \"endif\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CMake\",\"Command Args\")]},Rule {rMatcher = WordDetect \"macro\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CMake\",\"Command Args\")]},Rule {rMatcher = WordDetect \"endmacro\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CMake\",\"Command Args\")]},Rule {rMatcher = WordDetect \"foreach\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CMake\",\"Command Args\")]},Rule {rMatcher = WordDetect \"endforeach\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CMake\",\"Command Args\")]},Rule {rMatcher = WordDetect \"while\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CMake\",\"Command Args\")]},Rule {rMatcher = WordDetect \"endwhile\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CMake\",\"Command Args\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"add_compile_options\",\"add_custom_command\",\"add_custom_target\",\"add_definitions\",\"add_dependencies\",\"add_executable\",\"add_library\",\"add_subdirectory\",\"add_test\",\"aux_source_directory\",\"break\",\"build_command\",\"build_name\",\"cmake_host_system_information\",\"cmake_minimum_required\",\"cmake_policy\",\"configure_file\",\"continue\",\"create_test_sourcelist\",\"ctest_build\",\"ctest_configure\",\"ctest_coverage\",\"ctest_empty_binary_directory\",\"ctest_memcheck\",\"ctest_read_custom_files\",\"ctest_run_script\",\"ctest_sleep\",\"ctest_start\",\"ctest_submit\",\"ctest_test\",\"ctest_update\",\"ctest_upload\",\"define_property\",\"else\",\"elseif\",\"enable_language\",\"enable_testing\",\"endforeach\",\"endfunction\",\"endif\",\"endmacro\",\"endwhile\",\"exec_program\",\"execute_process\",\"export\",\"export_library_dependencies\",\"file\",\"find_file\",\"find_library\",\"find_package\",\"find_path\",\"find_program\",\"fltk_wrap_ui\",\"foreach\",\"function\",\"get_cmake_property\",\"get_directory_property\",\"get_filename_component\",\"get_property\",\"get_source_file_property\",\"get_target_property\",\"get_test_property\",\"if\",\"include\",\"include_directories\",\"include_external_msproject\",\"include_regular_expression\",\"install\",\"install_files\",\"install_programs\",\"install_targets\",\"link_directories\",\"link_libraries\",\"list\",\"load_cache\",\"load_command\",\"macro\",\"make_directory\",\"mark_as_advanced\",\"math\",\"message\",\"option\",\"output_required_files\",\"project\",\"qt_wrap_cpp\",\"qt_wrap_ui\",\"remove\",\"remove_definitions\",\"return\",\"separate_arguments\",\"set\",\"set_directory_properties\",\"set_property\",\"set_source_files_properties\",\"set_target_properties\",\"set_tests_properties\",\"site_name\",\"source_group\",\"string\",\"subdir_depends\",\"subdirs\",\"target_compile_definitions\",\"target_compile_features\",\"target_compile_options\",\"target_include_directories\",\"target_link_libraries\",\"target_sources\",\"try_compile\",\"try_run\",\"unset\",\"use_mangled_mesa\",\"utility_source\",\"variable_requires\",\"variable_watch\",\"while\",\"write_file\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CMake\",\"Command Args\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"itk_wrap_tcl\",\"vtk_make_instantiator\",\"vtk_wrap_java\",\"vtk_wrap_python\",\"vtk_wrap_tcl\"])), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*BEGIN.*$\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*END.*$\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\[(=*)\\\\[\\\\.rst:\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"CMake\",\"RST Documentation\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\[(=*)\\\\[\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"CMake\",\"Bracketed Comment\")]},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CMake\",\"Comment\")]},Rule {rMatcher = IncludeRules (\"CMake\",\"Detect Variables\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\w+\\\\s*(?=\\\\()\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CMake\",\"Macro Args\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"RST Documentation\",Context {cName = \"RST Documentation\", cSyntax = \"CMake\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"#?\\\\]%1\\\\]\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"String\",Context {cName = \"String\", cSyntax = \"CMake\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\"(?=[ );]|$)\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[\\\"$nrt\\\\\\\\]\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"CMake\",\"Detect Variables\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"CMake\",\"Detect Generator Expressions\"), 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}),(\"VarSubst\",Context {cName = \"VarSubst\", cSyntax = \"CMake\", cRules = [Rule {rMatcher = IncludeRules (\"CMake\",\"Detect Builtin Variables\"), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"CMake\",\"Detect Variables\"), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = VariableTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Alexander Neundorf (neundorf@kde.org)\", sVersion = \"3\", sLicense = \"LGPLv2+\", sExtensions = [\"CMakeLists.txt\",\"*.cmake\",\"*.cmake.in\"], sStartingContext = \"Normal Text\"}"
diff --git a/src/Skylighting/Syntax/Coffee.hs b/src/Skylighting/Syntax/Coffee.hs
--- a/src/Skylighting/Syntax/Coffee.hs
+++ b/src/Skylighting/Syntax/Coffee.hs
@@ -2,936 +2,6 @@
 module Skylighting.Syntax.Coffee (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "CoffeeScript"
-  , sFilename = "coffee.xml"
-  , sShortname = "Coffee"
-  , sContexts =
-      fromList
-        [ ( "Class"
-          , Context
-              { cName = "Class"
-              , cSyntax = "CoffeeScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , 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 = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "CoffeeScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts_indent" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Embedding"
-          , Context
-              { cName = "Embedding"
-              , cSyntax = "CoffeeScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Heredoc"
-          , Context
-              { cName = "Heredoc"
-              , cSyntax = "CoffeeScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "'''"
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Javascript"
-          , Context
-              { cName = "Javascript"
-              , cSyntax = "CoffeeScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "JavaScript" , "Normal" )
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = True
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = AlertTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Multiline Comment"
-          , Context
-              { cName = "Multiline Comment"
-              , cSyntax = "CoffeeScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "###"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts_indent" , "" )
-                      , 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
-              }
-          )
-        , ( "Multiline Regex"
-          , Context
-              { cName = "Multiline Regex"
-              , cSyntax = "CoffeeScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CoffeeScript" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "///[mig]{0,3}"
-                              , reCompiled = Just (compileRegex True "///[mig]{0,3}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "CoffeeScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !#%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "and"
-                               , "break"
-                               , "by"
-                               , "catch"
-                               , "constructor"
-                               , "continue"
-                               , "delete"
-                               , "do"
-                               , "else"
-                               , "finally"
-                               , "for"
-                               , "if"
-                               , "in"
-                               , "is"
-                               , "isnt"
-                               , "loop"
-                               , "not"
-                               , "of"
-                               , "or"
-                               , "return"
-                               , "super"
-                               , "switch"
-                               , "then"
-                               , "throw"
-                               , "try"
-                               , "typeof"
-                               , "unless"
-                               , "until"
-                               , "when"
-                               , "where"
-                               , "while"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !#%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "class" , "extends" , "instanceof" , "new" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CoffeeScript" , "Class" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !#%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Infinity"
-                               , "NaN"
-                               , "false"
-                               , "no"
-                               , "null"
-                               , "off"
-                               , "on"
-                               , "true"
-                               , "undefined"
-                               , "yes"
-                               ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !#%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "__bind"
-                               , "__extends"
-                               , "__hasProp"
-                               , "__indexOf"
-                               , "__slice"
-                               , "case"
-                               , "const"
-                               , "default"
-                               , "enum"
-                               , "export"
-                               , "function"
-                               , "import"
-                               , "let"
-                               , "native"
-                               , "var"
-                               , "void"
-                               , "with"
-                               ])
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !#%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Array"
-                               , "Boolean"
-                               , "Date"
-                               , "Function"
-                               , "Math"
-                               , "Number"
-                               , "Object"
-                               , "RegExp"
-                               , "String"
-                               , "clearInterval"
-                               , "clearTimeout"
-                               , "console"
-                               , "decodeURI"
-                               , "decodeURIComponent"
-                               , "encodeURI"
-                               , "encodeURIComponent"
-                               , "escape"
-                               , "eval"
-                               , "isFinite"
-                               , "isNaN"
-                               , "parseFloat"
-                               , "parseInt"
-                               , "setInterval"
-                               , "setTimeout"
-                               , "unescape"
-                               ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !#%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "alert"
-                               , "document"
-                               , "history"
-                               , "location"
-                               , "navigator"
-                               , "prompt"
-                               , "screen"
-                               , "window"
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !#%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "GLOBAL" , "exports" , "process" , "require" ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(@[_$a-zA-Z][$\\w]*|\\bthis)\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "(@[_$a-zA-Z][$\\w]*|\\bthis)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\((\\'[^']*'|\"[^\"]*\"|[^()])*\\))?\\s*(-|=)>"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False "(\\((\\'[^']*'|\"[^\"]*\"|[^()])*\\))?\\s*(-|=)>")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[_$a-z][$\\w]*\\b"
-                              , reCompiled = Just (compileRegex False "[_$a-z][$\\w]*\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "'''"
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CoffeeScript" , "Heredoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\"\"\""
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CoffeeScript" , "Rich Heredoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CoffeeScript" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CoffeeScript" , "Rich String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CoffeeScript" , "Javascript" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "###"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "CoffeeScript" , "Multiline Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CoffeeScript" , "Comment" ) ]
-                      }
-                  , 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 = [ Push ( "CoffeeScript" , "Multiline Regex" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "/([^/\\\\\\r\\n]|\\\\.)*/[mig]{0,3}"
-                              , reCompiled =
-                                  Just (compileRegex True "/([^/\\\\\\r\\n]|\\\\.)*/[mig]{0,3}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "():!%&+,-/.*<=>?[]|~^;{}"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Rich Heredoc"
-          , Context
-              { cName = "Rich Heredoc"
-              , cSyntax = "CoffeeScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '{'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CoffeeScript" , "Embedding" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\"\"\""
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Rich String"
-          , Context
-              { cName = "Rich String"
-              , cSyntax = "CoffeeScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '{'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "CoffeeScript" , "Embedding" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "CoffeeScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Max Shawabkeh (max99x@gmail.com)"
-  , sVersion = "2"
-  , sLicense = "MIT"
-  , sExtensions = [ "Cakefile" , "*.coffee" , "*.coco" ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"CoffeeScript\", sFilename = \"coffee.xml\", sShortname = \"Coffee\", sContexts = fromList [(\"Class\",Context {cName = \"Class\", cSyntax = \"CoffeeScript\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[@$:.\\\\w\\\\[\\\\]]+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment\",Context {cName = \"Comment\", cSyntax = \"CoffeeScript\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts_indent\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Embedding\",Context {cName = \"Embedding\", cSyntax = \"CoffeeScript\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Heredoc\",Context {cName = \"Heredoc\", cSyntax = \"CoffeeScript\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"'''\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Javascript\",Context {cName = \"Javascript\", cSyntax = \"CoffeeScript\", cRules = [Rule {rMatcher = DetectChar '`', rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"JavaScript\",\"Normal\"), rAttribute = AlertTok, rIncludeAttribute = True, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = AlertTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Multiline Comment\",Context {cName = \"Multiline Comment\", cSyntax = \"CoffeeScript\", cRules = [Rule {rMatcher = StringDetect \"###\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Alerts_indent\",\"\"), 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}),(\"Multiline Regex\",Context {cName = \"Multiline Regex\", cSyntax = \"CoffeeScript\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CoffeeScript\",\"Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"///[mig]{0,3}\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"CoffeeScript\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !#%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"and\",\"break\",\"by\",\"catch\",\"constructor\",\"continue\",\"delete\",\"do\",\"else\",\"finally\",\"for\",\"if\",\"in\",\"is\",\"isnt\",\"loop\",\"not\",\"of\",\"or\",\"return\",\"super\",\"switch\",\"then\",\"throw\",\"try\",\"typeof\",\"unless\",\"until\",\"when\",\"where\",\"while\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !#%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"class\",\"extends\",\"instanceof\",\"new\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CoffeeScript\",\"Class\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !#%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"Infinity\",\"NaN\",\"false\",\"no\",\"null\",\"off\",\"on\",\"true\",\"undefined\",\"yes\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !#%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"__bind\",\"__extends\",\"__hasProp\",\"__indexOf\",\"__slice\",\"case\",\"const\",\"default\",\"enum\",\"export\",\"function\",\"import\",\"let\",\"native\",\"var\",\"void\",\"with\"])), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !#%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"Array\",\"Boolean\",\"Date\",\"Function\",\"Math\",\"Number\",\"Object\",\"RegExp\",\"String\",\"clearInterval\",\"clearTimeout\",\"console\",\"decodeURI\",\"decodeURIComponent\",\"encodeURI\",\"encodeURIComponent\",\"escape\",\"eval\",\"isFinite\",\"isNaN\",\"parseFloat\",\"parseInt\",\"setInterval\",\"setTimeout\",\"unescape\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !#%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"alert\",\"document\",\"history\",\"location\",\"navigator\",\"prompt\",\"screen\",\"window\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !#%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"GLOBAL\",\"exports\",\"process\",\"require\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(@[_$a-zA-Z][$\\\\w]*|\\\\bthis)\\\\b\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\((\\\\'[^']*'|\\\"[^\\\"]*\\\"|[^()])*\\\\))?\\\\s*(-|=)>\", reCaseSensitive = False}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[_$a-z][$\\\\w]*\\\\b\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"'''\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CoffeeScript\",\"Heredoc\")]},Rule {rMatcher = StringDetect \"\\\"\\\"\\\"\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CoffeeScript\",\"Rich Heredoc\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CoffeeScript\",\"String\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CoffeeScript\",\"Rich String\")]},Rule {rMatcher = DetectChar '`', rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CoffeeScript\",\"Javascript\")]},Rule {rMatcher = StringDetect \"###\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CoffeeScript\",\"Multiline Comment\")]},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CoffeeScript\",\"Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"///\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CoffeeScript\",\"Multiline Regex\")]},Rule {rMatcher = RegExpr (RE {reString = \"/([^/\\\\\\\\\\\\r\\\\n]|\\\\\\\\.)*/[mig]{0,3}\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"():!%&+,-/.*<=>?[]|~^;{}\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Rich Heredoc\",Context {cName = \"Rich Heredoc\", cSyntax = \"CoffeeScript\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '#' '{', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CoffeeScript\",\"Embedding\")]},Rule {rMatcher = StringDetect \"\\\"\\\"\\\"\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Rich String\",Context {cName = \"Rich String\", cSyntax = \"CoffeeScript\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '#' '{', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"CoffeeScript\",\"Embedding\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"CoffeeScript\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Max Shawabkeh (max99x@gmail.com)\", sVersion = \"2\", sLicense = \"MIT\", sExtensions = [\"Cakefile\",\"*.coffee\",\"*.coco\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Coldfusion.hs b/src/Skylighting/Syntax/Coldfusion.hs
--- a/src/Skylighting/Syntax/Coldfusion.hs
+++ b/src/Skylighting/Syntax/Coldfusion.hs
@@ -2,2237 +2,6 @@
 module Skylighting.Syntax.Coldfusion (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "ColdFusion"
-  , sFilename = "coldfusion.xml"
-  , sShortname = "Coldfusion"
-  , sContexts =
-      fromList
-        [ ( "Normal Text"
-          , Context
-              { cName = "Normal Text"
-              , cSyntax = "ColdFusion"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<!---"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ColdFusion" , "ctxCF Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ColdFusion" , "ctxHTML Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<[cC][fF][sS][cC][rR][iI][pP][tT]"
-                              , reCompiled =
-                                  Just (compileRegex True "<[cC][fF][sS][cC][rR][iI][pP][tT]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ColdFusion" , "ctxCFSCRIPT Tag" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<[sS][cC][rR][iI][pP][tT]"
-                              , reCompiled = Just (compileRegex True "<[sS][cC][rR][iI][pP][tT]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ColdFusion" , "ctxSCRIPT Tag" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<[sS][tT][yY][lL][eE]"
-                              , reCompiled = Just (compileRegex True "<[sS][tT][yY][lL][eE]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ColdFusion" , "ctxSTYLE Tag" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '&'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ColdFusion" , "ctxHTML Entities" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\/?[cC][fF]_"
-                              , reCompiled = Just (compileRegex True "<\\/?[cC][fF]_")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ColdFusion" , "ctxCustom Tag" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\/?[cC][fF][xX]_"
-                              , reCompiled = Just (compileRegex True "<\\/?[cC][fF][xX]_")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ColdFusion" , "ctxCFX Tag" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\/?[cC][fF]"
-                              , reCompiled = Just (compileRegex True "<\\/?[cC][fF]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ColdFusion" , "ctxCF Tag" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\/?([tT][aAhHbBfFrRdD])|([cC][aA][pP][tT])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "<\\/?([tT][aAhHbBfFrRdD])|([cC][aA][pP][tT])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ColdFusion" , "ctxTable Tag" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\/?[aA] "
-                              , reCompiled = Just (compileRegex True "<\\/?[aA] ")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ColdFusion" , "ctxAnchor Tag" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\/?[iI][mM][gG] "
-                              , reCompiled = Just (compileRegex True "<\\/?[iI][mM][gG] ")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ColdFusion" , "ctxImage Tag" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<!?\\/?[a-zA-Z0-9_]+"
-                              , reCompiled = Just (compileRegex True "<!?\\/?[a-zA-Z0-9_]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ColdFusion" , "ctxTag" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ctxAnchor Tag"
-          , Context
-              { cName = "ctxAnchor Tag"
-              , cSyntax = "ColdFusion"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\"[^\"]*\""
-                              , reCompiled = Just (compileRegex True "\"[^\"]*\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'[^']*'"
-                              , reCompiled = Just (compileRegex True "'[^']*'")
-                              , 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
-              }
-          )
-        , ( "ctxC Style Comment"
-          , Context
-              { cName = "ctxC Style Comment"
-              , cSyntax = "ColdFusion"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ctxCF Comment"
-          , Context
-              { cName = "ctxCF Comment"
-              , cSyntax = "ColdFusion"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "--->"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ctxCF Tag"
-          , Context
-              { cName = "ctxCF Tag"
-              , cSyntax = "ColdFusion"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\"[^\"]*\""
-                              , reCompiled = Just (compileRegex True "\"[^\"]*\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'[^']*'"
-                              , reCompiled = Just (compileRegex True "'[^']*'")
-                              , 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
-              }
-          )
-        , ( "ctxCFSCRIPT Block"
-          , Context
-              { cName = "ctxCFSCRIPT Block"
-              , cSyntax = "ColdFusion"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ColdFusion" , "ctxC Style Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "ColdFusion" , "ctxOne Line Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\"[^\"]*\""
-                              , reCompiled = Just (compileRegex True "\"[^\"]*\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'[^']*'"
-                              , reCompiled = Just (compileRegex True "'[^']*'")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "[()[\\]=+-*/]+"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "{}"
-                      , rAttribute = NormalTok
-                      , 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
-                               [ "break"
-                               , "case"
-                               , "catch"
-                               , "continue"
-                               , "default"
-                               , "do"
-                               , "else"
-                               , "for"
-                               , "function"
-                               , "if"
-                               , "in"
-                               , "return"
-                               , "switch"
-                               , "try"
-                               , "var"
-                               , "while"
-                               ])
-                      , rAttribute = NormalTok
-                      , 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
-                               [ "Abs"
-                               , "ACos"
-                               , "ArrayAppend"
-                               , "ArrayAvg"
-                               , "ArrayClear"
-                               , "ArrayDeleteAt"
-                               , "ArrayInsertAt"
-                               , "ArrayIsEmpty"
-                               , "ArrayLen"
-                               , "ArrayMax"
-                               , "ArrayMin"
-                               , "ArrayNew"
-                               , "ArrayPrepend"
-                               , "ArrayResize"
-                               , "ArraySet"
-                               , "ArraySort"
-                               , "ArraySum"
-                               , "ArraySwap"
-                               , "ArrayToList"
-                               , "Asc"
-                               , "ASin"
-                               , "Atn"
-                               , "BitAnd"
-                               , "BitMaskClear"
-                               , "BitMaskRead"
-                               , "BitMaskSet"
-                               , "BitNot"
-                               , "BitOr"
-                               , "BitSHLN"
-                               , "BitSHRN"
-                               , "BitXor"
-                               , "Ceiling"
-                               , "Chr"
-                               , "CJustify"
-                               , "Compare"
-                               , "CompareNoCase"
-                               , "Cos"
-                               , "CreateDate"
-                               , "CreateDateTime"
-                               , "CreateObject"
-                               , "CreateODBCDate"
-                               , "CreateODBCDateTime"
-                               , "CreateODBCTime"
-                               , "CreateTime"
-                               , "CreateTimeSpan"
-                               , "CreateUUID"
-                               , "DateAdd"
-                               , "DateCompare"
-                               , "DateConvert"
-                               , "DateDiff"
-                               , "DateFormat"
-                               , "DatePart"
-                               , "Day"
-                               , "DayOfWeek"
-                               , "DayOfWeekAsString"
-                               , "DayOfYear"
-                               , "DaysInMonth"
-                               , "DaysInYear"
-                               , "DE"
-                               , "DecimalFormat"
-                               , "DecrementValue"
-                               , "Decrypt"
-                               , "DeleteClientVariable"
-                               , "DirectoryExists"
-                               , "DollarFormat"
-                               , "Duplicate"
-                               , "Encrypt"
-                               , "Evaluate"
-                               , "Exp"
-                               , "ExpandPath"
-                               , "FileExists"
-                               , "Find"
-                               , "FindNoCase"
-                               , "FindOneOf"
-                               , "FirstDayOfMonth"
-                               , "Fix"
-                               , "FormatBaseN"
-                               , "GetAuthUser"
-                               , "GetBaseTagData"
-                               , "GetBaseTagList"
-                               , "GetBaseTemplatePath"
-                               , "GetClientVariablesList"
-                               , "GetCurrentTemplatePath"
-                               , "GetDirectoryFromPath"
-                               , "GetException"
-                               , "GetFileFromPath"
-                               , "GetFunctionList"
-                               , "GetHttpRequestData"
-                               , "GetHttpTimeString"
-                               , "GetK2ServerDocCount"
-                               , "GetK2ServerDocCountLimit"
-                               , "GetLocale"
-                               , "GetMetaData"
-                               , "GetMetricData"
-                               , "GetPageContext"
-                               , "GetProfileSections"
-                               , "GetProfileString"
-                               , "GetServiceSettings"
-                               , "GetTempDirectory"
-                               , "GetTempFile"
-                               , "GetTemplatePath"
-                               , "GetTickCount"
-                               , "GetTimeZoneInfo"
-                               , "GetToken"
-                               , "Hash"
-                               , "Hour"
-                               , "HTMLCodeFormat"
-                               , "HTMLEditFormat"
-                               , "IIf"
-                               , "IncrementValue"
-                               , "InputBaseN"
-                               , "Insert"
-                               , "Int"
-                               , "IsArray"
-                               , "IsBinary"
-                               , "IsBoolean"
-                               , "IsCustomFunction"
-                               , "IsDate"
-                               , "IsDebugMode"
-                               , "IsDefined"
-                               , "IsK2ServerABroker"
-                               , "IsK2ServerDocCountExceeded"
-                               , "IsK2ServerOnline"
-                               , "IsLeapYear"
-                               , "IsNumeric"
-                               , "IsNumericDate"
-                               , "IsObject"
-                               , "IsQuery"
-                               , "IsSimpleValue"
-                               , "IsStruct"
-                               , "IsUserInRole"
-                               , "IsWDDX"
-                               , "IsXmlDoc"
-                               , "IsXmlElement"
-                               , "IsXmlRoot"
-                               , "JavaCast"
-                               , "JSStringFormat"
-                               , "LCase"
-                               , "Left"
-                               , "Len"
-                               , "ListAppend"
-                               , "ListChangeDelims"
-                               , "ListContains"
-                               , "ListContainsNoCase"
-                               , "ListDeleteAt"
-                               , "ListFind"
-                               , "ListFindNoCase"
-                               , "ListFirst"
-                               , "ListGetAt"
-                               , "ListInsertAt"
-                               , "ListLast"
-                               , "ListLen"
-                               , "ListPrepend"
-                               , "ListQualify"
-                               , "ListRest"
-                               , "ListSetAt"
-                               , "ListSort"
-                               , "ListToArray"
-                               , "ListValueCount"
-                               , "ListValueCountNoCase"
-                               , "LJustify"
-                               , "Log"
-                               , "Log10"
-                               , "LSCurrencyFormat"
-                               , "LSDateFormat"
-                               , "LSEuroCurrencyFormat"
-                               , "LSIsCurrency"
-                               , "LSIsDate"
-                               , "LSIsNumeric"
-                               , "LSNumberFormat"
-                               , "LSParseCurrency"
-                               , "LSParseDateTime"
-                               , "LSParseEuroCurrency"
-                               , "LSParseNumber"
-                               , "LSTimeFormat"
-                               , "LTrim"
-                               , "Max"
-                               , "Mid"
-                               , "Min"
-                               , "Minute"
-                               , "Month"
-                               , "MonthAsString"
-                               , "Now"
-                               , "NumberFormat"
-                               , "ParagraphFormat"
-                               , "ParameterExists"
-                               , "ParseDateTime"
-                               , "Pi"
-                               , "PreserveSingleQuotes"
-                               , "Quarter"
-                               , "QueryAddColumn"
-                               , "QueryAddRow"
-                               , "QueryNew"
-                               , "QuerySetCell"
-                               , "QuotedValueList"
-                               , "Rand"
-                               , "Randomize"
-                               , "RandRange"
-                               , "REFind"
-                               , "REFindNoCase"
-                               , "RemoveChars"
-                               , "RepeatString"
-                               , "Replace"
-                               , "ReplaceList"
-                               , "ReplaceNoCase"
-                               , "REReplace"
-                               , "REReplaceNoCase"
-                               , "Reverse"
-                               , "Right"
-                               , "RJustify"
-                               , "Round"
-                               , "RTrim"
-                               , "Second"
-                               , "SetEncoding"
-                               , "SetLocale"
-                               , "SetProfileString"
-                               , "SetVariable"
-                               , "Sgn"
-                               , "Sin"
-                               , "SpanExcluding"
-                               , "SpanIncluding"
-                               , "Sqr"
-                               , "StripCR"
-                               , "StructAppend"
-                               , "StructClear"
-                               , "StructCopy"
-                               , "StructCount"
-                               , "StructDelete"
-                               , "StructFind"
-                               , "StructFindKey"
-                               , "StructFindValue"
-                               , "StructGet"
-                               , "StructInsert"
-                               , "StructIsEmpty"
-                               , "StructKeyArray"
-                               , "StructKeyExists"
-                               , "StructKeyList"
-                               , "StructNew"
-                               , "StructSort"
-                               , "StructUpdate"
-                               , "Tan"
-                               , "TimeFormat"
-                               , "ToBase64"
-                               , "ToBinary"
-                               , "ToString"
-                               , "Trim"
-                               , "UCase"
-                               , "URLDecode"
-                               , "URLEncodedFormat"
-                               , "URLSessionFormat"
-                               , "Val"
-                               , "ValueList"
-                               , "Week"
-                               , "WriteOutput"
-                               , "XmlChildPos"
-                               , "XmlElemNew"
-                               , "XmlFormat"
-                               , "XmlNew"
-                               , "XmlParse"
-                               , "XmlSearch"
-                               , "XmlTransform"
-                               , "Year"
-                               , "YesNoFormat"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</[cC][fF][sS][cC][rR][iI][pP][tT]>"
-                              , reCompiled =
-                                  Just (compileRegex True "</[cC][fF][sS][cC][rR][iI][pP][tT]>")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ctxCFSCRIPT Tag"
-          , Context
-              { cName = "ctxCFSCRIPT Tag"
-              , cSyntax = "ColdFusion"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ColdFusion" , "ctxCFSCRIPT Block" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\"[^\"]*\""
-                              , reCompiled = Just (compileRegex True "\"[^\"]*\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'[^']*'"
-                              , reCompiled = Just (compileRegex True "'[^']*'")
-                              , 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
-              }
-          )
-        , ( "ctxCFX Tag"
-          , Context
-              { cName = "ctxCFX Tag"
-              , cSyntax = "ColdFusion"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\"[^\"]*\""
-                              , reCompiled = Just (compileRegex True "\"[^\"]*\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'[^']*'"
-                              , reCompiled = Just (compileRegex True "'[^']*'")
-                              , 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
-              }
-          )
-        , ( "ctxCustom Tag"
-          , Context
-              { cName = "ctxCustom Tag"
-              , cSyntax = "ColdFusion"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\"[^\"]*\""
-                              , reCompiled = Just (compileRegex True "\"[^\"]*\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'[^']*'"
-                              , reCompiled = Just (compileRegex True "'[^']*'")
-                              , 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
-              }
-          )
-        , ( "ctxHTML Comment"
-          , Context
-              { cName = "ctxHTML Comment"
-              , cSyntax = "ColdFusion"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<!---"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ColdFusion" , "ctxCF Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "-->"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ctxHTML Entities"
-          , Context
-              { cName = "ctxHTML Entities"
-              , cSyntax = "ColdFusion"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ';'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ctxImage Tag"
-          , Context
-              { cName = "ctxImage Tag"
-              , cSyntax = "ColdFusion"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\"[^\"]*\""
-                              , reCompiled = Just (compileRegex True "\"[^\"]*\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'[^']*'"
-                              , reCompiled = Just (compileRegex True "'[^']*'")
-                              , 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
-              }
-          )
-        , ( "ctxOne Line Comment"
-          , Context
-              { cName = "ctxOne Line Comment"
-              , cSyntax = "ColdFusion"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ctxSCRIPT Block"
-          , Context
-              { cName = "ctxSCRIPT Block"
-              , cSyntax = "ColdFusion"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ColdFusion" , "ctxC Style Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "ColdFusion" , "ctxOne Line Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\"[^\"]*\""
-                              , reCompiled = Just (compileRegex True "\"[^\"]*\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'[^']*'"
-                              , reCompiled = Just (compileRegex True "'[^']*'")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "[()[\\]=+-*/]+"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "{}"
-                      , rAttribute = NormalTok
-                      , 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
-                               [ "break"
-                               , "case"
-                               , "catch"
-                               , "const"
-                               , "continue"
-                               , "default"
-                               , "delete"
-                               , "do"
-                               , "else"
-                               , "false"
-                               , "for"
-                               , "function"
-                               , "if"
-                               , "in"
-                               , "new"
-                               , "return"
-                               , "switch"
-                               , "this"
-                               , "throw"
-                               , "true"
-                               , "try"
-                               , "typeof"
-                               , "var"
-                               , "void"
-                               , "while"
-                               , "with"
-                               ])
-                      , rAttribute = NormalTok
-                      , 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
-                               [ "Anchor"
-                               , "Applet"
-                               , "Area"
-                               , "Array"
-                               , "Boolean"
-                               , "Button"
-                               , "Checkbox"
-                               , "Date"
-                               , "Document"
-                               , "Event"
-                               , "FileUpload"
-                               , "Form"
-                               , "Frame"
-                               , "Function"
-                               , "Hidden"
-                               , "History"
-                               , "Image"
-                               , "Layer"
-                               , "Linke"
-                               , "Location"
-                               , "Math"
-                               , "Navigator"
-                               , "Number"
-                               , "Object"
-                               , "Option"
-                               , "Password"
-                               , "Radio"
-                               , "RegExp"
-                               , "Reset"
-                               , "Screen"
-                               , "Select"
-                               , "String"
-                               , "Submit"
-                               , "Text"
-                               , "Textarea"
-                               , "Window"
-                               ])
-                      , rAttribute = NormalTok
-                      , 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
-                               [ "abs"
-                               , "acos"
-                               , "alert"
-                               , "anchor"
-                               , "apply"
-                               , "asin"
-                               , "atan"
-                               , "atan2"
-                               , "back"
-                               , "blur"
-                               , "call"
-                               , "captureEvents"
-                               , "ceil"
-                               , "charAt"
-                               , "charCodeAt"
-                               , "clearInterval"
-                               , "clearTimeout"
-                               , "click"
-                               , "close"
-                               , "compile"
-                               , "concat"
-                               , "confirm"
-                               , "cos"
-                               , "disableExternalCapture"
-                               , "enableExternalCapture"
-                               , "eval"
-                               , "exec"
-                               , "exp"
-                               , "find"
-                               , "floor"
-                               , "focus"
-                               , "forward"
-                               , "fromCharCode"
-                               , "getDate"
-                               , "getDay"
-                               , "getFullYear"
-                               , "getHours"
-                               , "getMilliseconds"
-                               , "getMinutes"
-                               , "getMonth"
-                               , "getSeconds"
-                               , "getSelection"
-                               , "getTime"
-                               , "getTimezoneOffset"
-                               , "getUTCDate"
-                               , "getUTCDay"
-                               , "getUTCFullYear"
-                               , "getUTCHours"
-                               , "getUTCMilliseconds"
-                               , "getUTCMinutes"
-                               , "getUTCMonth"
-                               , "getUTCSeconds"
-                               , "go"
-                               , "handleEvent"
-                               , "home"
-                               , "indexOf"
-                               , "javaEnabled"
-                               , "join"
-                               , "lastIndexOf"
-                               , "link"
-                               , "load"
-                               , "log"
-                               , "match"
-                               , "max"
-                               , "min"
-                               , "moveAbove"
-                               , "moveBelow"
-                               , "moveBy"
-                               , "moveTo"
-                               , "moveToAbsolute"
-                               , "open"
-                               , "parse"
-                               , "plugins.refresh"
-                               , "pop"
-                               , "pow"
-                               , "preference"
-                               , "print"
-                               , "prompt"
-                               , "push"
-                               , "random"
-                               , "releaseEvents"
-                               , "reload"
-                               , "replace"
-                               , "reset"
-                               , "resizeBy"
-                               , "resizeTo"
-                               , "reverse"
-                               , "round"
-                               , "routeEvent"
-                               , "scrollBy"
-                               , "scrollTo"
-                               , "search"
-                               , "select"
-                               , "setDate"
-                               , "setFullYear"
-                               , "setHours"
-                               , "setInterval"
-                               , "setMilliseconds"
-                               , "setMinutes"
-                               , "setMonth"
-                               , "setSeconds"
-                               , "setTime"
-                               , "setTimeout"
-                               , "setUTCDate"
-                               , "setUTCFullYear"
-                               , "setUTCHours"
-                               , "setUTCMilliseconds"
-                               , "setUTCMinutes"
-                               , "setUTCMonth"
-                               , "setUTCSeconds"
-                               , "shift"
-                               , "sin"
-                               , "slice"
-                               , "sort"
-                               , "splice"
-                               , "split"
-                               , "sqrt"
-                               , "stop"
-                               , "String formatting"
-                               , "submit"
-                               , "substr"
-                               , "substring"
-                               , "taintEnabled"
-                               , "tan"
-                               , "test"
-                               , "toLocaleString"
-                               , "toLowerCase"
-                               , "toSource"
-                               , "toString"
-                               , "toUpperCase"
-                               , "toUTCString"
-                               , "unshift"
-                               , "unwatch"
-                               , "UTC"
-                               , "valueOf"
-                               , "watch"
-                               , "write"
-                               , "writeln"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</[sS][cC][rR][iI][pP][tT]>"
-                              , reCompiled =
-                                  Just (compileRegex True "</[sS][cC][rR][iI][pP][tT]>")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ctxSCRIPT Tag"
-          , Context
-              { cName = "ctxSCRIPT Tag"
-              , cSyntax = "ColdFusion"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ColdFusion" , "ctxSCRIPT Block" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\"[^\"]*\""
-                              , reCompiled = Just (compileRegex True "\"[^\"]*\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'[^']*'"
-                              , reCompiled = Just (compileRegex True "'[^']*'")
-                              , 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
-              }
-          )
-        , ( "ctxSTYLE Block"
-          , Context
-              { cName = "ctxSTYLE Block"
-              , cSyntax = "ColdFusion"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ColdFusion" , "ctxC Style Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "ColdFusion" , "ctxStyle Properties" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</[sS][tT][yY][lL][eE]>"
-                              , reCompiled = Just (compileRegex True "</[sS][tT][yY][lL][eE]>")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ctxSTYLE Tag"
-          , Context
-              { cName = "ctxSTYLE Tag"
-              , cSyntax = "ColdFusion"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ColdFusion" , "ctxSTYLE Block" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\"[^\"]*\""
-                              , reCompiled = Just (compileRegex True "\"[^\"]*\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'[^']*'"
-                              , reCompiled = Just (compileRegex True "'[^']*'")
-                              , 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
-              }
-          )
-        , ( "ctxStyle Properties"
-          , Context
-              { cName = "ctxStyle Properties"
-              , cSyntax = "ColdFusion"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ColdFusion" , "ctxC Style Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ':'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ColdFusion" , "ctxStyle Values" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ctxStyle Values"
-          , Context
-              { cName = "ctxStyle Values"
-              , cSyntax = "ColdFusion"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ';'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ','
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#([0-9a-fA-F]{3})|([0-9a-fA-F]{6})"
-                              , reCompiled =
-                                  Just (compileRegex True "#([0-9a-fA-F]{3})|([0-9a-fA-F]{6})")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\"[^\"]*\""
-                              , reCompiled = Just (compileRegex True "\"[^\"]*\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'[^']*'"
-                              , reCompiled = Just (compileRegex True "'[^']*'")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ctxTable Tag"
-          , Context
-              { cName = "ctxTable Tag"
-              , cSyntax = "ColdFusion"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\"[^\"]*\""
-                              , reCompiled = Just (compileRegex True "\"[^\"]*\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'[^']*'"
-                              , reCompiled = Just (compileRegex True "'[^']*'")
-                              , 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
-              }
-          )
-        , ( "ctxTag"
-          , Context
-              { cName = "ctxTag"
-              , cSyntax = "ColdFusion"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\"[^\"]*\""
-                              , reCompiled = Just (compileRegex True "\"[^\"]*\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'[^']*'"
-                              , reCompiled = Just (compileRegex True "'[^']*'")
-                              , 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
-              }
-          )
-        ]
-  , sAuthor = ""
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.cfm" , "*.cfc" , "*.cfml" , "*.dbm" ]
-  , sStartingContext = "Normal Text"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"ColdFusion\", sFilename = \"coldfusion.xml\", sShortname = \"Coldfusion\", sContexts = fromList [(\"Normal Text\",Context {cName = \"Normal Text\", cSyntax = \"ColdFusion\", cRules = [Rule {rMatcher = StringDetect \"<!---\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxCF Comment\")]},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxHTML Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<[cC][fF][sS][cC][rR][iI][pP][tT]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxCFSCRIPT Tag\")]},Rule {rMatcher = RegExpr (RE {reString = \"<[sS][cC][rR][iI][pP][tT]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxSCRIPT Tag\")]},Rule {rMatcher = RegExpr (RE {reString = \"<[sS][tT][yY][lL][eE]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxSTYLE Tag\")]},Rule {rMatcher = DetectChar '&', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxHTML Entities\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\/?[cC][fF]_\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxCustom Tag\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\/?[cC][fF][xX]_\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxCFX Tag\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\/?[cC][fF]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxCF Tag\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\/?([tT][aAhHbBfFrRdD])|([cC][aA][pP][tT])\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxTable Tag\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\/?[aA] \", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxAnchor Tag\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\/?[iI][mM][gG] \", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxImage Tag\")]},Rule {rMatcher = RegExpr (RE {reString = \"<!?\\\\/?[a-zA-Z0-9_]+\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxTag\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ctxAnchor Tag\",Context {cName = \"ctxAnchor Tag\", cSyntax = \"ColdFusion\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '=', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\"[^\\\"]*\\\"\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"'[^']*'\", 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}),(\"ctxC Style Comment\",Context {cName = \"ctxC Style Comment\", cSyntax = \"ColdFusion\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ctxCF Comment\",Context {cName = \"ctxCF Comment\", cSyntax = \"ColdFusion\", cRules = [Rule {rMatcher = StringDetect \"--->\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ctxCF Tag\",Context {cName = \"ctxCF Tag\", cSyntax = \"ColdFusion\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '=', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\"[^\\\"]*\\\"\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"'[^']*'\", 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}),(\"ctxCFSCRIPT Block\",Context {cName = \"ctxCFSCRIPT Block\", cSyntax = \"ColdFusion\", cRules = [Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxC Style Comment\")]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxOne Line Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\"[^\\\"]*\\\"\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"'[^']*'\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"[()[\\\\]=+-*/]+\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"{}\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"break\",\"case\",\"catch\",\"continue\",\"default\",\"do\",\"else\",\"for\",\"function\",\"if\",\"in\",\"return\",\"switch\",\"try\",\"var\",\"while\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"Abs\",\"ACos\",\"ArrayAppend\",\"ArrayAvg\",\"ArrayClear\",\"ArrayDeleteAt\",\"ArrayInsertAt\",\"ArrayIsEmpty\",\"ArrayLen\",\"ArrayMax\",\"ArrayMin\",\"ArrayNew\",\"ArrayPrepend\",\"ArrayResize\",\"ArraySet\",\"ArraySort\",\"ArraySum\",\"ArraySwap\",\"ArrayToList\",\"Asc\",\"ASin\",\"Atn\",\"BitAnd\",\"BitMaskClear\",\"BitMaskRead\",\"BitMaskSet\",\"BitNot\",\"BitOr\",\"BitSHLN\",\"BitSHRN\",\"BitXor\",\"Ceiling\",\"Chr\",\"CJustify\",\"Compare\",\"CompareNoCase\",\"Cos\",\"CreateDate\",\"CreateDateTime\",\"CreateObject\",\"CreateODBCDate\",\"CreateODBCDateTime\",\"CreateODBCTime\",\"CreateTime\",\"CreateTimeSpan\",\"CreateUUID\",\"DateAdd\",\"DateCompare\",\"DateConvert\",\"DateDiff\",\"DateFormat\",\"DatePart\",\"Day\",\"DayOfWeek\",\"DayOfWeekAsString\",\"DayOfYear\",\"DaysInMonth\",\"DaysInYear\",\"DE\",\"DecimalFormat\",\"DecrementValue\",\"Decrypt\",\"DeleteClientVariable\",\"DirectoryExists\",\"DollarFormat\",\"Duplicate\",\"Encrypt\",\"Evaluate\",\"Exp\",\"ExpandPath\",\"FileExists\",\"Find\",\"FindNoCase\",\"FindOneOf\",\"FirstDayOfMonth\",\"Fix\",\"FormatBaseN\",\"GetAuthUser\",\"GetBaseTagData\",\"GetBaseTagList\",\"GetBaseTemplatePath\",\"GetClientVariablesList\",\"GetCurrentTemplatePath\",\"GetDirectoryFromPath\",\"GetException\",\"GetFileFromPath\",\"GetFunctionList\",\"GetHttpRequestData\",\"GetHttpTimeString\",\"GetK2ServerDocCount\",\"GetK2ServerDocCountLimit\",\"GetLocale\",\"GetMetaData\",\"GetMetricData\",\"GetPageContext\",\"GetProfileSections\",\"GetProfileString\",\"GetServiceSettings\",\"GetTempDirectory\",\"GetTempFile\",\"GetTemplatePath\",\"GetTickCount\",\"GetTimeZoneInfo\",\"GetToken\",\"Hash\",\"Hour\",\"HTMLCodeFormat\",\"HTMLEditFormat\",\"IIf\",\"IncrementValue\",\"InputBaseN\",\"Insert\",\"Int\",\"IsArray\",\"IsBinary\",\"IsBoolean\",\"IsCustomFunction\",\"IsDate\",\"IsDebugMode\",\"IsDefined\",\"IsK2ServerABroker\",\"IsK2ServerDocCountExceeded\",\"IsK2ServerOnline\",\"IsLeapYear\",\"IsNumeric\",\"IsNumericDate\",\"IsObject\",\"IsQuery\",\"IsSimpleValue\",\"IsStruct\",\"IsUserInRole\",\"IsWDDX\",\"IsXmlDoc\",\"IsXmlElement\",\"IsXmlRoot\",\"JavaCast\",\"JSStringFormat\",\"LCase\",\"Left\",\"Len\",\"ListAppend\",\"ListChangeDelims\",\"ListContains\",\"ListContainsNoCase\",\"ListDeleteAt\",\"ListFind\",\"ListFindNoCase\",\"ListFirst\",\"ListGetAt\",\"ListInsertAt\",\"ListLast\",\"ListLen\",\"ListPrepend\",\"ListQualify\",\"ListRest\",\"ListSetAt\",\"ListSort\",\"ListToArray\",\"ListValueCount\",\"ListValueCountNoCase\",\"LJustify\",\"Log\",\"Log10\",\"LSCurrencyFormat\",\"LSDateFormat\",\"LSEuroCurrencyFormat\",\"LSIsCurrency\",\"LSIsDate\",\"LSIsNumeric\",\"LSNumberFormat\",\"LSParseCurrency\",\"LSParseDateTime\",\"LSParseEuroCurrency\",\"LSParseNumber\",\"LSTimeFormat\",\"LTrim\",\"Max\",\"Mid\",\"Min\",\"Minute\",\"Month\",\"MonthAsString\",\"Now\",\"NumberFormat\",\"ParagraphFormat\",\"ParameterExists\",\"ParseDateTime\",\"Pi\",\"PreserveSingleQuotes\",\"Quarter\",\"QueryAddColumn\",\"QueryAddRow\",\"QueryNew\",\"QuerySetCell\",\"QuotedValueList\",\"Rand\",\"Randomize\",\"RandRange\",\"REFind\",\"REFindNoCase\",\"RemoveChars\",\"RepeatString\",\"Replace\",\"ReplaceList\",\"ReplaceNoCase\",\"REReplace\",\"REReplaceNoCase\",\"Reverse\",\"Right\",\"RJustify\",\"Round\",\"RTrim\",\"Second\",\"SetEncoding\",\"SetLocale\",\"SetProfileString\",\"SetVariable\",\"Sgn\",\"Sin\",\"SpanExcluding\",\"SpanIncluding\",\"Sqr\",\"StripCR\",\"StructAppend\",\"StructClear\",\"StructCopy\",\"StructCount\",\"StructDelete\",\"StructFind\",\"StructFindKey\",\"StructFindValue\",\"StructGet\",\"StructInsert\",\"StructIsEmpty\",\"StructKeyArray\",\"StructKeyExists\",\"StructKeyList\",\"StructNew\",\"StructSort\",\"StructUpdate\",\"Tan\",\"TimeFormat\",\"ToBase64\",\"ToBinary\",\"ToString\",\"Trim\",\"UCase\",\"URLDecode\",\"URLEncodedFormat\",\"URLSessionFormat\",\"Val\",\"ValueList\",\"Week\",\"WriteOutput\",\"XmlChildPos\",\"XmlElemNew\",\"XmlFormat\",\"XmlNew\",\"XmlParse\",\"XmlSearch\",\"XmlTransform\",\"Year\",\"YesNoFormat\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"</[cC][fF][sS][cC][rR][iI][pP][tT]>\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ctxCFSCRIPT Tag\",Context {cName = \"ctxCFSCRIPT Tag\", cSyntax = \"ColdFusion\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxCFSCRIPT Block\")]},Rule {rMatcher = DetectChar '=', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\"[^\\\"]*\\\"\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"'[^']*'\", 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}),(\"ctxCFX Tag\",Context {cName = \"ctxCFX Tag\", cSyntax = \"ColdFusion\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '=', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\"[^\\\"]*\\\"\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"'[^']*'\", 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}),(\"ctxCustom Tag\",Context {cName = \"ctxCustom Tag\", cSyntax = \"ColdFusion\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '=', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\"[^\\\"]*\\\"\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"'[^']*'\", 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}),(\"ctxHTML Comment\",Context {cName = \"ctxHTML Comment\", cSyntax = \"ColdFusion\", cRules = [Rule {rMatcher = StringDetect \"<!---\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxCF Comment\")]},Rule {rMatcher = StringDetect \"-->\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ctxHTML Entities\",Context {cName = \"ctxHTML Entities\", cSyntax = \"ColdFusion\", cRules = [Rule {rMatcher = DetectChar ';', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ctxImage Tag\",Context {cName = \"ctxImage Tag\", cSyntax = \"ColdFusion\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '=', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\"[^\\\"]*\\\"\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"'[^']*'\", 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}),(\"ctxOne Line Comment\",Context {cName = \"ctxOne Line Comment\", cSyntax = \"ColdFusion\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ctxSCRIPT Block\",Context {cName = \"ctxSCRIPT Block\", cSyntax = \"ColdFusion\", cRules = [Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxC Style Comment\")]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxOne Line Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\"[^\\\"]*\\\"\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"'[^']*'\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"[()[\\\\]=+-*/]+\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"{}\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"break\",\"case\",\"catch\",\"const\",\"continue\",\"default\",\"delete\",\"do\",\"else\",\"false\",\"for\",\"function\",\"if\",\"in\",\"new\",\"return\",\"switch\",\"this\",\"throw\",\"true\",\"try\",\"typeof\",\"var\",\"void\",\"while\",\"with\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"Anchor\",\"Applet\",\"Area\",\"Array\",\"Boolean\",\"Button\",\"Checkbox\",\"Date\",\"Document\",\"Event\",\"FileUpload\",\"Form\",\"Frame\",\"Function\",\"Hidden\",\"History\",\"Image\",\"Layer\",\"Linke\",\"Location\",\"Math\",\"Navigator\",\"Number\",\"Object\",\"Option\",\"Password\",\"Radio\",\"RegExp\",\"Reset\",\"Screen\",\"Select\",\"String\",\"Submit\",\"Text\",\"Textarea\",\"Window\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"abs\",\"acos\",\"alert\",\"anchor\",\"apply\",\"asin\",\"atan\",\"atan2\",\"back\",\"blur\",\"call\",\"captureEvents\",\"ceil\",\"charAt\",\"charCodeAt\",\"clearInterval\",\"clearTimeout\",\"click\",\"close\",\"compile\",\"concat\",\"confirm\",\"cos\",\"disableExternalCapture\",\"enableExternalCapture\",\"eval\",\"exec\",\"exp\",\"find\",\"floor\",\"focus\",\"forward\",\"fromCharCode\",\"getDate\",\"getDay\",\"getFullYear\",\"getHours\",\"getMilliseconds\",\"getMinutes\",\"getMonth\",\"getSeconds\",\"getSelection\",\"getTime\",\"getTimezoneOffset\",\"getUTCDate\",\"getUTCDay\",\"getUTCFullYear\",\"getUTCHours\",\"getUTCMilliseconds\",\"getUTCMinutes\",\"getUTCMonth\",\"getUTCSeconds\",\"go\",\"handleEvent\",\"home\",\"indexOf\",\"javaEnabled\",\"join\",\"lastIndexOf\",\"link\",\"load\",\"log\",\"match\",\"max\",\"min\",\"moveAbove\",\"moveBelow\",\"moveBy\",\"moveTo\",\"moveToAbsolute\",\"open\",\"parse\",\"plugins.refresh\",\"pop\",\"pow\",\"preference\",\"print\",\"prompt\",\"push\",\"random\",\"releaseEvents\",\"reload\",\"replace\",\"reset\",\"resizeBy\",\"resizeTo\",\"reverse\",\"round\",\"routeEvent\",\"scrollBy\",\"scrollTo\",\"search\",\"select\",\"setDate\",\"setFullYear\",\"setHours\",\"setInterval\",\"setMilliseconds\",\"setMinutes\",\"setMonth\",\"setSeconds\",\"setTime\",\"setTimeout\",\"setUTCDate\",\"setUTCFullYear\",\"setUTCHours\",\"setUTCMilliseconds\",\"setUTCMinutes\",\"setUTCMonth\",\"setUTCSeconds\",\"shift\",\"sin\",\"slice\",\"sort\",\"splice\",\"split\",\"sqrt\",\"stop\",\"String formatting\",\"submit\",\"substr\",\"substring\",\"taintEnabled\",\"tan\",\"test\",\"toLocaleString\",\"toLowerCase\",\"toSource\",\"toString\",\"toUpperCase\",\"toUTCString\",\"unshift\",\"unwatch\",\"UTC\",\"valueOf\",\"watch\",\"write\",\"writeln\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"</[sS][cC][rR][iI][pP][tT]>\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ctxSCRIPT Tag\",Context {cName = \"ctxSCRIPT Tag\", cSyntax = \"ColdFusion\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxSCRIPT Block\")]},Rule {rMatcher = DetectChar '=', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\"[^\\\"]*\\\"\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"'[^']*'\", 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}),(\"ctxSTYLE Block\",Context {cName = \"ctxSTYLE Block\", cSyntax = \"ColdFusion\", cRules = [Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxC Style Comment\")]},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxStyle Properties\")]},Rule {rMatcher = RegExpr (RE {reString = \"</[sS][tT][yY][lL][eE]>\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ctxSTYLE Tag\",Context {cName = \"ctxSTYLE Tag\", cSyntax = \"ColdFusion\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxSTYLE Block\")]},Rule {rMatcher = DetectChar '=', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\"[^\\\"]*\\\"\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"'[^']*'\", 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}),(\"ctxStyle Properties\",Context {cName = \"ctxStyle Properties\", cSyntax = \"ColdFusion\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxC Style Comment\")]},Rule {rMatcher = DetectChar ':', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ColdFusion\",\"ctxStyle Values\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ctxStyle Values\",Context {cName = \"ctxStyle Values\", cSyntax = \"ColdFusion\", cRules = [Rule {rMatcher = DetectChar ';', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar ',', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#([0-9a-fA-F]{3})|([0-9a-fA-F]{6})\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\"[^\\\"]*\\\"\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"'[^']*'\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ctxTable Tag\",Context {cName = \"ctxTable Tag\", cSyntax = \"ColdFusion\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '=', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\"[^\\\"]*\\\"\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"'[^']*'\", 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}),(\"ctxTag\",Context {cName = \"ctxTag\", cSyntax = \"ColdFusion\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '=', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\"[^\\\"]*\\\"\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"'[^']*'\", 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})], sAuthor = \"\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.cfm\",\"*.cfc\",\"*.cfml\",\"*.dbm\"], sStartingContext = \"Normal Text\"}"
diff --git a/src/Skylighting/Syntax/Commonlisp.hs b/src/Skylighting/Syntax/Commonlisp.hs
--- a/src/Skylighting/Syntax/Commonlisp.hs
+++ b/src/Skylighting/Syntax/Commonlisp.hs
@@ -2,1584 +2,6 @@
 module Skylighting.Syntax.Commonlisp (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Common Lisp"
-  , sFilename = "commonlisp.xml"
-  , sShortname = "Commonlisp"
-  , sContexts =
-      fromList
-        [ ( "MultiLineComment"
-          , Context
-              { cName = "MultiLineComment"
-              , cSyntax = "Common Lisp"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '|' '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Common Lisp"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ";+\\s*BEGIN.*$"
-                              , reCompiled = Just (compileRegex True ";+\\s*BEGIN.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ";+\\s*END.*$"
-                              , reCompiled = Just (compileRegex True ";+\\s*END.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ";.*$"
-                              , reCompiled = Just (compileRegex True ";.*$")
-                              , reCaseSensitive = True
-                              }
-                      , 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 = [ Push ( "Common Lisp" , "MultiLineComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&(),.;[]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "abort"
-                               , "abs"
-                               , "access"
-                               , "acons"
-                               , "acos"
-                               , "acosh"
-                               , "add-method"
-                               , "adjoin"
-                               , "adjust-array"
-                               , "adjustable-array-p"
-                               , "allocate-instance"
-                               , "alpha-char-p"
-                               , "alphanumericp"
-                               , "and"
-                               , "append"
-                               , "apply"
-                               , "applyhook"
-                               , "apropos"
-                               , "apropos-list"
-                               , "aref"
-                               , "arithmetic-error"
-                               , "arithmetic-error-operands"
-                               , "arithmetic-error-operation"
-                               , "array"
-                               , "array-dimension"
-                               , "array-dimension-limit"
-                               , "array-dimensions"
-                               , "array-displacement"
-                               , "array-element-type"
-                               , "array-has-fill-pointer-p"
-                               , "array-in-bounds-p"
-                               , "array-rank"
-                               , "array-rank-limit"
-                               , "array-row-major-index"
-                               , "array-total-size"
-                               , "array-total-size-limit"
-                               , "arrayp"
-                               , "ash"
-                               , "asin"
-                               , "asinh"
-                               , "assert"
-                               , "assoc"
-                               , "assoc-if"
-                               , "assoc-if-not"
-                               , "atan"
-                               , "atanh"
-                               , "atom"
-                               , "base-char"
-                               , "base-string"
-                               , "bignum"
-                               , "bit"
-                               , "bit-and"
-                               , "bit-andc1"
-                               , "bit-andc2"
-                               , "bit-eqv"
-                               , "bit-ior"
-                               , "bit-nand"
-                               , "bit-nor"
-                               , "bit-not"
-                               , "bit-orc1"
-                               , "bit-orc2"
-                               , "bit-vector"
-                               , "bit-vector-p"
-                               , "bit-xor"
-                               , "block"
-                               , "boole"
-                               , "boole-1"
-                               , "boole-2"
-                               , "boole-and"
-                               , "boole-andc1"
-                               , "boole-andc2"
-                               , "boole-c1"
-                               , "boole-c2"
-                               , "boole-clr"
-                               , "boole-eqv"
-                               , "boole-ior"
-                               , "boole-nand"
-                               , "boole-nor"
-                               , "boole-orc1"
-                               , "boole-orc2"
-                               , "boole-set"
-                               , "boole-xor"
-                               , "boolean"
-                               , "both-case-p"
-                               , "boundp"
-                               , "break"
-                               , "broadcast-stream"
-                               , "broadcast-stream-streams"
-                               , "built-in-class"
-                               , "butlast"
-                               , "byte"
-                               , "byte-position"
-                               , "byte-size"
-                               , "caaaar"
-                               , "caaadr"
-                               , "caaar"
-                               , "caadar"
-                               , "caaddr"
-                               , "caadr"
-                               , "caar"
-                               , "cadaar"
-                               , "cadadr"
-                               , "cadar"
-                               , "caddar"
-                               , "cadddr"
-                               , "caddr"
-                               , "cadr"
-                               , "call-arguments-limit"
-                               , "call-method"
-                               , "call-next-method"
-                               , "capitalize"
-                               , "car"
-                               , "case"
-                               , "catch"
-                               , "ccase"
-                               , "cdaaar"
-                               , "cdaadr"
-                               , "cdaar"
-                               , "cdadar"
-                               , "cdaddr"
-                               , "cdadr"
-                               , "cdar"
-                               , "cddaar"
-                               , "cddadr"
-                               , "cddar"
-                               , "cdddar"
-                               , "cddddr"
-                               , "cdddr"
-                               , "cddr"
-                               , "cdr"
-                               , "ceiling"
-                               , "cell-error"
-                               , "cell-error-name"
-                               , "cerror"
-                               , "change-class"
-                               , "char"
-                               , "char-bit"
-                               , "char-bits"
-                               , "char-bits-limit"
-                               , "char-code"
-                               , "char-code-limit"
-                               , "char-control-bit"
-                               , "char-downcase"
-                               , "char-equal"
-                               , "char-font"
-                               , "char-font-limit"
-                               , "char-greaterp"
-                               , "char-hyper-bit"
-                               , "char-int"
-                               , "char-lessp"
-                               , "char-meta-bit"
-                               , "char-name"
-                               , "char-not-equal"
-                               , "char-not-greaterp"
-                               , "char-not-lessp"
-                               , "char-super-bit"
-                               , "char-upcase"
-                               , "char/="
-                               , "char<"
-                               , "char<="
-                               , "char="
-                               , "char>"
-                               , "char>="
-                               , "character"
-                               , "characterp"
-                               , "check-type"
-                               , "cis"
-                               , "class"
-                               , "class-name"
-                               , "class-of"
-                               , "clear-input"
-                               , "clear-output"
-                               , "close"
-                               , "clrhash"
-                               , "code-char"
-                               , "coerce"
-                               , "commonp"
-                               , "compilation-speed"
-                               , "compile"
-                               , "compile-file"
-                               , "compile-file-pathname"
-                               , "compiled-function"
-                               , "compiled-function-p"
-                               , "compiler-let"
-                               , "compiler-macro"
-                               , "compiler-macro-function"
-                               , "complement"
-                               , "complex"
-                               , "complexp"
-                               , "compute-applicable-methods"
-                               , "compute-restarts"
-                               , "concatenate"
-                               , "concatenated-stream"
-                               , "concatenated-stream-streams"
-                               , "cond"
-                               , "condition"
-                               , "conjugate"
-                               , "cons"
-                               , "consp"
-                               , "constantly"
-                               , "constantp"
-                               , "continue"
-                               , "control-error"
-                               , "copy-alist"
-                               , "copy-list"
-                               , "copy-pprint-dispatch"
-                               , "copy-readtable"
-                               , "copy-seq"
-                               , "copy-structure"
-                               , "copy-symbol"
-                               , "copy-tree"
-                               , "cos"
-                               , "cosh"
-                               , "count"
-                               , "count-if"
-                               , "count-if-not"
-                               , "ctypecase"
-                               , "debug"
-                               , "decf"
-                               , "declaim"
-                               , "declaration"
-                               , "declare"
-                               , "decode-float"
-                               , "decode-universal-time"
-                               , "delete"
-                               , "delete-duplicates"
-                               , "delete-file"
-                               , "delete-if"
-                               , "delete-if-not"
-                               , "delete-package"
-                               , "denominator"
-                               , "deposit-field"
-                               , "describe"
-                               , "describe-object"
-                               , "destructuring-bind"
-                               , "digit-char"
-                               , "digit-char-p"
-                               , "directory"
-                               , "directory-namestring"
-                               , "disassemble"
-                               , "division-by-zero"
-                               , "do"
-                               , "do*"
-                               , "do-all-symbols"
-                               , "do-exeternal-symbols"
-                               , "do-external-symbols"
-                               , "do-symbols"
-                               , "documentation"
-                               , "dolist"
-                               , "dotimes"
-                               , "double-float"
-                               , "double-float-epsilon"
-                               , "double-float-negative-epsilon"
-                               , "dpb"
-                               , "dribble"
-                               , "dynamic-extent"
-                               , "ecase"
-                               , "echo-stream"
-                               , "echo-stream-input-stream"
-                               , "echo-stream-output-stream"
-                               , "ed"
-                               , "eighth"
-                               , "elt"
-                               , "encode-universal-time"
-                               , "end-of-file"
-                               , "endp"
-                               , "enough-namestring"
-                               , "ensure-directories-exist"
-                               , "ensure-generic-function"
-                               , "eq"
-                               , "eql"
-                               , "equal"
-                               , "equalp"
-                               , "error"
-                               , "etypecase"
-                               , "eval"
-                               , "eval-when"
-                               , "evalhook"
-                               , "evenp"
-                               , "every"
-                               , "exp"
-                               , "export"
-                               , "expt"
-                               , "extended-char"
-                               , "fboundp"
-                               , "fceiling"
-                               , "fdefinition"
-                               , "ffloor"
-                               , "fifth"
-                               , "file-author"
-                               , "file-error"
-                               , "file-error-pathname"
-                               , "file-length"
-                               , "file-namestring"
-                               , "file-position"
-                               , "file-stream"
-                               , "file-string-length"
-                               , "file-write-date"
-                               , "fill"
-                               , "fill-pointer"
-                               , "find"
-                               , "find-all-symbols"
-                               , "find-class"
-                               , "find-if"
-                               , "find-if-not"
-                               , "find-method"
-                               , "find-package"
-                               , "find-restart"
-                               , "find-symbol"
-                               , "finish-output"
-                               , "first"
-                               , "fixnum"
-                               , "flet"
-                               , "float"
-                               , "float-digits"
-                               , "float-precision"
-                               , "float-radix"
-                               , "float-sign"
-                               , "floating-point-inexact"
-                               , "floating-point-invalid-operation"
-                               , "floating-point-overflow"
-                               , "floating-point-underflow"
-                               , "floatp"
-                               , "floor"
-                               , "fmakunbound"
-                               , "force-output"
-                               , "format"
-                               , "formatter"
-                               , "fourth"
-                               , "fresh-line"
-                               , "fround"
-                               , "ftruncate"
-                               , "ftype"
-                               , "funcall"
-                               , "function"
-                               , "function-keywords"
-                               , "function-lambda-expression"
-                               , "functionp"
-                               , "gbitp"
-                               , "gcd"
-                               , "generic-function"
-                               , "gensym"
-                               , "gentemp"
-                               , "get"
-                               , "get-decoded-time"
-                               , "get-dispatch-macro-character"
-                               , "get-internal-real-time"
-                               , "get-internal-run-time"
-                               , "get-macro-character"
-                               , "get-output-stream-string"
-                               , "get-properties"
-                               , "get-setf-expansion"
-                               , "get-setf-method"
-                               , "get-universal-time"
-                               , "getf"
-                               , "gethash"
-                               , "go"
-                               , "graphic-char-p"
-                               , "handler-bind"
-                               , "handler-case"
-                               , "hash-table"
-                               , "hash-table-count"
-                               , "hash-table-p"
-                               , "hash-table-rehash-size"
-                               , "hash-table-rehash-threshold"
-                               , "hash-table-size"
-                               , "hash-table-test"
-                               , "host-namestring"
-                               , "identity"
-                               , "if"
-                               , "if-exists"
-                               , "ignorable"
-                               , "ignore"
-                               , "ignore-errors"
-                               , "imagpart"
-                               , "import"
-                               , "in-package"
-                               , "incf"
-                               , "initialize-instance"
-                               , "inline"
-                               , "input-stream-p"
-                               , "inspect"
-                               , "int-char"
-                               , "integer"
-                               , "integer-decode-float"
-                               , "integer-length"
-                               , "integerp"
-                               , "interactive-stream-p"
-                               , "intern"
-                               , "internal-time-units-per-second"
-                               , "intersection"
-                               , "invalid-method-error"
-                               , "invoke-debugger"
-                               , "invoke-restart"
-                               , "invoke-restart-interactively"
-                               , "isqrt"
-                               , "keyword"
-                               , "keywordp"
-                               , "labels"
-                               , "lambda"
-                               , "lambda-list-keywords"
-                               , "lambda-parameters-limit"
-                               , "last"
-                               , "lcm"
-                               , "ldb"
-                               , "ldb-test"
-                               , "ldiff"
-                               , "least-negative-double-float"
-                               , "least-negative-long-float"
-                               , "least-negative-normalized-double-float"
-                               , "least-negative-normalized-long-float"
-                               , "least-negative-normalized-short-float"
-                               , "least-negative-normalized-single-float"
-                               , "least-negative-short-float"
-                               , "least-negative-single-float"
-                               , "least-positive-double-float"
-                               , "least-positive-long-float"
-                               , "least-positive-normalized-double-float"
-                               , "least-positive-normalized-long-float"
-                               , "least-positive-normalized-short-float"
-                               , "least-positive-normalized-single-float"
-                               , "least-positive-short-float"
-                               , "least-positive-single-float"
-                               , "length"
-                               , "let"
-                               , "let*"
-                               , "lisp"
-                               , "lisp-implementation-type"
-                               , "lisp-implementation-version"
-                               , "list"
-                               , "list*"
-                               , "list-all-packages"
-                               , "list-length"
-                               , "listen"
-                               , "listp"
-                               , "load"
-                               , "load-logical-pathname-translations"
-                               , "load-time-value"
-                               , "locally"
-                               , "log"
-                               , "logand"
-                               , "logandc1"
-                               , "logandc2"
-                               , "logbitp"
-                               , "logcount"
-                               , "logeqv"
-                               , "logical-pathname"
-                               , "logical-pathname-translations"
-                               , "logior"
-                               , "lognand"
-                               , "lognor"
-                               , "lognot"
-                               , "logorc1"
-                               , "logorc2"
-                               , "logtest"
-                               , "logxor"
-                               , "long-float"
-                               , "long-float-epsilon"
-                               , "long-float-negative-epsilon"
-                               , "long-site-name"
-                               , "loop"
-                               , "loop-finish"
-                               , "lower-case-p"
-                               , "machine-instance"
-                               , "machine-type"
-                               , "machine-version"
-                               , "macro-function"
-                               , "macroexpand"
-                               , "macroexpand-1"
-                               , "macroexpand-l"
-                               , "macrolet"
-                               , "make-array"
-                               , "make-broadcast-stream"
-                               , "make-char"
-                               , "make-concatenated-stream"
-                               , "make-condition"
-                               , "make-dispatch-macro-character"
-                               , "make-echo-stream"
-                               , "make-hash-table"
-                               , "make-instance"
-                               , "make-instances-obsolete"
-                               , "make-list"
-                               , "make-load-form"
-                               , "make-load-form-saving-slots"
-                               , "make-method"
-                               , "make-package"
-                               , "make-pathname"
-                               , "make-random-state"
-                               , "make-sequence"
-                               , "make-string"
-                               , "make-string-input-stream"
-                               , "make-string-output-stream"
-                               , "make-symbol"
-                               , "make-synonym-stream"
-                               , "make-two-way-stream"
-                               , "makunbound"
-                               , "map"
-                               , "map-into"
-                               , "mapc"
-                               , "mapcan"
-                               , "mapcar"
-                               , "mapcon"
-                               , "maphash"
-                               , "mapl"
-                               , "maplist"
-                               , "mask-field"
-                               , "max"
-                               , "member"
-                               , "member-if"
-                               , "member-if-not"
-                               , "merge"
-                               , "merge-pathname"
-                               , "merge-pathnames"
-                               , "method"
-                               , "method-combination"
-                               , "method-combination-error"
-                               , "method-qualifiers"
-                               , "min"
-                               , "minusp"
-                               , "mismatch"
-                               , "mod"
-                               , "most-negative-double-float"
-                               , "most-negative-fixnum"
-                               , "most-negative-long-float"
-                               , "most-negative-short-float"
-                               , "most-negative-single-float"
-                               , "most-positive-double-float"
-                               , "most-positive-fixnum"
-                               , "most-positive-long-float"
-                               , "most-positive-short-float"
-                               , "most-positive-single-float"
-                               , "muffle-warning"
-                               , "multiple-value-bind"
-                               , "multiple-value-call"
-                               , "multiple-value-list"
-                               , "multiple-value-prog1"
-                               , "multiple-value-seteq"
-                               , "multiple-value-setq"
-                               , "multiple-values-limit"
-                               , "name-char"
-                               , "namestring"
-                               , "nbutlast"
-                               , "nconc"
-                               , "next-method-p"
-                               , "nil"
-                               , "nintersection"
-                               , "ninth"
-                               , "no-applicable-method"
-                               , "no-next-method"
-                               , "not"
-                               , "notany"
-                               , "notevery"
-                               , "notinline"
-                               , "nreconc"
-                               , "nreverse"
-                               , "nset-difference"
-                               , "nset-exclusive-or"
-                               , "nstring"
-                               , "nstring-capitalize"
-                               , "nstring-downcase"
-                               , "nstring-upcase"
-                               , "nsublis"
-                               , "nsubst"
-                               , "nsubst-if"
-                               , "nsubst-if-not"
-                               , "nsubstitute"
-                               , "nsubstitute-if"
-                               , "nsubstitute-if-not"
-                               , "nth"
-                               , "nth-value"
-                               , "nthcdr"
-                               , "null"
-                               , "number"
-                               , "numberp"
-                               , "numerator"
-                               , "nunion"
-                               , "oddp"
-                               , "open"
-                               , "open-stream-p"
-                               , "optimize"
-                               , "or"
-                               , "otherwise"
-                               , "output-stream-p"
-                               , "package"
-                               , "package-error"
-                               , "package-error-package"
-                               , "package-name"
-                               , "package-nicknames"
-                               , "package-shadowing-symbols"
-                               , "package-use-list"
-                               , "package-used-by-list"
-                               , "packagep"
-                               , "pairlis"
-                               , "parse-error"
-                               , "parse-integer"
-                               , "parse-namestring"
-                               , "pathname"
-                               , "pathname-device"
-                               , "pathname-directory"
-                               , "pathname-host"
-                               , "pathname-match-p"
-                               , "pathname-name"
-                               , "pathname-type"
-                               , "pathname-version"
-                               , "pathnamep"
-                               , "peek-char"
-                               , "phase"
-                               , "pi"
-                               , "plusp"
-                               , "pop"
-                               , "position"
-                               , "position-if"
-                               , "position-if-not"
-                               , "pprint"
-                               , "pprint-dispatch"
-                               , "pprint-exit-if-list-exhausted"
-                               , "pprint-fill"
-                               , "pprint-indent"
-                               , "pprint-linear"
-                               , "pprint-logical-block"
-                               , "pprint-newline"
-                               , "pprint-pop"
-                               , "pprint-tab"
-                               , "pprint-tabular"
-                               , "prin1"
-                               , "prin1-to-string"
-                               , "princ"
-                               , "princ-to-string"
-                               , "print"
-                               , "print-not-readable"
-                               , "print-not-readable-object"
-                               , "print-object"
-                               , "print-unreadable-object"
-                               , "probe-file"
-                               , "proclaim"
-                               , "prog"
-                               , "prog*"
-                               , "prog1"
-                               , "prog2"
-                               , "progn"
-                               , "program-error"
-                               , "progv"
-                               , "provide"
-                               , "psetf"
-                               , "psetq"
-                               , "push"
-                               , "pushnew"
-                               , "putprop"
-                               , "quote"
-                               , "random"
-                               , "random-state"
-                               , "random-state-p"
-                               , "rassoc"
-                               , "rassoc-if"
-                               , "rassoc-if-not"
-                               , "ratio"
-                               , "rational"
-                               , "rationalize"
-                               , "rationalp"
-                               , "read"
-                               , "read-byte"
-                               , "read-char"
-                               , "read-char-no-hang"
-                               , "read-delimited-list"
-                               , "read-eval-print"
-                               , "read-from-string"
-                               , "read-line"
-                               , "read-preserving-whitespace"
-                               , "read-sequence"
-                               , "reader-error"
-                               , "readtable"
-                               , "readtable-case"
-                               , "readtablep"
-                               , "real"
-                               , "realp"
-                               , "realpart"
-                               , "reduce"
-                               , "reinitialize-instance"
-                               , "rem"
-                               , "remf"
-                               , "remhash"
-                               , "remove"
-                               , "remove-duplicates"
-                               , "remove-if"
-                               , "remove-if-not"
-                               , "remove-method"
-                               , "remprop"
-                               , "rename-file"
-                               , "rename-package"
-                               , "replace"
-                               , "require"
-                               , "rest"
-                               , "restart"
-                               , "restart-bind"
-                               , "restart-case"
-                               , "restart-name"
-                               , "return"
-                               , "return-from"
-                               , "revappend"
-                               , "reverse"
-                               , "room"
-                               , "rotatef"
-                               , "round"
-                               , "row-major-aref"
-                               , "rplaca"
-                               , "rplacd"
-                               , "safety"
-                               , "satisfies"
-                               , "sbit"
-                               , "scale-float"
-                               , "schar"
-                               , "search"
-                               , "second"
-                               , "sequence"
-                               , "serious-condition"
-                               , "set"
-                               , "set-char-bit"
-                               , "set-difference"
-                               , "set-dispatch-macro-character"
-                               , "set-exclusive-or"
-                               , "set-macro-character"
-                               , "set-pprint-dispatch"
-                               , "set-syntax-from-char"
-                               , "setf"
-                               , "setq"
-                               , "seventh"
-                               , "shadow"
-                               , "shadowing-import"
-                               , "shared-initialize"
-                               , "shiftf"
-                               , "short-float"
-                               , "short-float-epsilon"
-                               , "short-float-negative-epsilon"
-                               , "short-site-name"
-                               , "signal"
-                               , "signed-byte"
-                               , "signum"
-                               , "simle-condition"
-                               , "simple-array"
-                               , "simple-base-string"
-                               , "simple-bit-vector"
-                               , "simple-bit-vector-p"
-                               , "simple-condition-format-arguments"
-                               , "simple-condition-format-control"
-                               , "simple-error"
-                               , "simple-string"
-                               , "simple-string-p"
-                               , "simple-type-error"
-                               , "simple-vector"
-                               , "simple-vector-p"
-                               , "simple-warning"
-                               , "sin"
-                               , "single-flaot-epsilon"
-                               , "single-float"
-                               , "single-float-epsilon"
-                               , "single-float-negative-epsilon"
-                               , "sinh"
-                               , "sixth"
-                               , "sleep"
-                               , "slot-boundp"
-                               , "slot-exists-p"
-                               , "slot-makunbound"
-                               , "slot-missing"
-                               , "slot-unbound"
-                               , "slot-value"
-                               , "software-type"
-                               , "software-version"
-                               , "some"
-                               , "sort"
-                               , "space"
-                               , "special"
-                               , "special-form-p"
-                               , "special-operator-p"
-                               , "speed"
-                               , "sqrt"
-                               , "stable-sort"
-                               , "standard"
-                               , "standard-char"
-                               , "standard-char-p"
-                               , "standard-class"
-                               , "standard-generic-function"
-                               , "standard-method"
-                               , "standard-object"
-                               , "step"
-                               , "storage-condition"
-                               , "store-value"
-                               , "stream"
-                               , "stream-element-type"
-                               , "stream-error"
-                               , "stream-error-stream"
-                               , "stream-external-format"
-                               , "streamp"
-                               , "streamup"
-                               , "string"
-                               , "string-capitalize"
-                               , "string-char"
-                               , "string-char-p"
-                               , "string-downcase"
-                               , "string-equal"
-                               , "string-greaterp"
-                               , "string-left-trim"
-                               , "string-lessp"
-                               , "string-not-equal"
-                               , "string-not-greaterp"
-                               , "string-not-lessp"
-                               , "string-right-strim"
-                               , "string-right-trim"
-                               , "string-stream"
-                               , "string-trim"
-                               , "string-upcase"
-                               , "string/="
-                               , "string<"
-                               , "string<="
-                               , "string="
-                               , "string>"
-                               , "string>="
-                               , "stringp"
-                               , "structure"
-                               , "structure-class"
-                               , "structure-object"
-                               , "style-warning"
-                               , "sublim"
-                               , "sublis"
-                               , "subseq"
-                               , "subsetp"
-                               , "subst"
-                               , "subst-if"
-                               , "subst-if-not"
-                               , "substitute"
-                               , "substitute-if"
-                               , "substitute-if-not"
-                               , "subtypep"
-                               , "svref"
-                               , "sxhash"
-                               , "symbol"
-                               , "symbol-function"
-                               , "symbol-macrolet"
-                               , "symbol-name"
-                               , "symbol-package"
-                               , "symbol-plist"
-                               , "symbol-value"
-                               , "symbolp"
-                               , "synonym-stream"
-                               , "synonym-stream-symbol"
-                               , "sys"
-                               , "system"
-                               , "t"
-                               , "tagbody"
-                               , "tailp"
-                               , "tan"
-                               , "tanh"
-                               , "tenth"
-                               , "terpri"
-                               , "the"
-                               , "third"
-                               , "throw"
-                               , "time"
-                               , "trace"
-                               , "translate-logical-pathname"
-                               , "translate-pathname"
-                               , "tree-equal"
-                               , "truename"
-                               , "truncase"
-                               , "truncate"
-                               , "two-way-stream"
-                               , "two-way-stream-input-stream"
-                               , "two-way-stream-output-stream"
-                               , "type"
-                               , "type-error"
-                               , "type-error-datum"
-                               , "type-error-expected-type"
-                               , "type-of"
-                               , "typecase"
-                               , "typep"
-                               , "unbound-slot"
-                               , "unbound-slot-instance"
-                               , "unbound-variable"
-                               , "undefined-function"
-                               , "unexport"
-                               , "unintern"
-                               , "union"
-                               , "unless"
-                               , "unread"
-                               , "unread-char"
-                               , "unsigned-byte"
-                               , "untrace"
-                               , "unuse-package"
-                               , "unwind-protect"
-                               , "update-instance-for-different-class"
-                               , "update-instance-for-redefined-class"
-                               , "upgraded-array-element-type"
-                               , "upgraded-complex-part-type"
-                               , "upper-case-p"
-                               , "use-package"
-                               , "use-value"
-                               , "user"
-                               , "user-homedir-pathname"
-                               , "values"
-                               , "values-list"
-                               , "vector"
-                               , "vector-pop"
-                               , "vector-push"
-                               , "vector-push-extend"
-                               , "vectorp"
-                               , "warn"
-                               , "warning"
-                               , "when"
-                               , "wild-pathname-p"
-                               , "with-accessors"
-                               , "with-compilation-unit"
-                               , "with-condition-restarts"
-                               , "with-hash-table-iterator"
-                               , "with-input-from-string"
-                               , "with-open-file"
-                               , "with-open-stream"
-                               , "with-output-to-string"
-                               , "with-package-iterator"
-                               , "with-simple-restart"
-                               , "with-slots"
-                               , "with-standard-io-syntax"
-                               , "write"
-                               , "write-byte"
-                               , "write-char"
-                               , "write-line"
-                               , "write-sequence"
-                               , "write-string"
-                               , "write-to-string"
-                               , "y-or-n-p"
-                               , "yes-or-no-p"
-                               , "zerop"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&(),.;[]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "*"
-                               , "**"
-                               , "***"
-                               , "+"
-                               , "++"
-                               , "+++"
-                               , "-"
-                               , "/"
-                               , "//"
-                               , "///"
-                               , "/="
-                               , "1+"
-                               , "1-"
-                               , "<"
-                               , "<="
-                               , "="
-                               , "=>"
-                               , ">"
-                               , ">="
-                               ])
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&(),.;[]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ ":abort"
-                               , ":adjustable"
-                               , ":append"
-                               , ":array"
-                               , ":base"
-                               , ":case"
-                               , ":circle"
-                               , ":conc-name"
-                               , ":constructor"
-                               , ":copier"
-                               , ":count"
-                               , ":create"
-                               , ":default"
-                               , ":defaults"
-                               , ":device"
-                               , ":direction"
-                               , ":directory"
-                               , ":displaced-index-offset"
-                               , ":displaced-to"
-                               , ":element-type"
-                               , ":end"
-                               , ":end1"
-                               , ":end2"
-                               , ":error"
-                               , ":escape"
-                               , ":external"
-                               , ":from-end"
-                               , ":gensym"
-                               , ":host"
-                               , ":if-does-not-exist:pretty"
-                               , ":if-exists:print"
-                               , ":include:print-function"
-                               , ":index"
-                               , ":inherited"
-                               , ":initial-contents"
-                               , ":initial-element"
-                               , ":initial-offset"
-                               , ":initial-value"
-                               , ":input"
-                               , ":internal:size"
-                               , ":io"
-                               , ":junk-allowed"
-                               , ":key"
-                               , ":length"
-                               , ":level"
-                               , ":name"
-                               , ":named"
-                               , ":new-version"
-                               , ":nicknames"
-                               , ":output"
-                               , ":output-file"
-                               , ":overwrite"
-                               , ":predicate"
-                               , ":preserve-whitespace"
-                               , ":probe"
-                               , ":radix"
-                               , ":read-only"
-                               , ":rehash-size"
-                               , ":rehash-threshold"
-                               , ":rename"
-                               , ":rename-and-delete"
-                               , ":start"
-                               , ":start1"
-                               , ":start2"
-                               , ":stream"
-                               , ":supersede"
-                               , ":test"
-                               , ":test-not"
-                               , ":type"
-                               , ":use"
-                               , ":verbose"
-                               , ":version"
-                               ])
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&(),.;[]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "*applyhook*"
-                               , "*break-on-signals*"
-                               , "*break-on-warnings*"
-                               , "*compile-file-pathname*"
-                               , "*compile-file-truename*"
-                               , "*compile-print*"
-                               , "*compile-verbose*"
-                               , "*debug-io*"
-                               , "*debugger-hook*"
-                               , "*default-pathname-defaults*"
-                               , "*error-output*"
-                               , "*evalhook*"
-                               , "*features*"
-                               , "*gensym-counter*"
-                               , "*load-pathname*"
-                               , "*load-print*"
-                               , "*load-truename*"
-                               , "*load-verbose*"
-                               , "*macroexpand-hook*"
-                               , "*modules*"
-                               , "*package*"
-                               , "*print-array*"
-                               , "*print-base*"
-                               , "*print-case*"
-                               , "*print-circle*"
-                               , "*print-escape*"
-                               , "*print-gensym*"
-                               , "*print-length*"
-                               , "*print-level*"
-                               , "*print-lines*"
-                               , "*print-miser-width*"
-                               , "*print-pprint-dispatch*"
-                               , "*print-pretty*"
-                               , "*print-radix*"
-                               , "*print-readably*"
-                               , "*print-right-margin*"
-                               , "*query-io*"
-                               , "*random-state*"
-                               , "*read-base*"
-                               , "*read-default-float-format*"
-                               , "*read-eval*"
-                               , "*read-suppress*"
-                               , "*readtable*"
-                               , "*standard-input*"
-                               , "*standard-output*"
-                               , "*terminal-io*"
-                               , "*trace-output*"
-                               ])
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&(),.;[]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "defclass"
-                               , "defconstant"
-                               , "defgeneric"
-                               , "define-compiler-macro"
-                               , "define-condition"
-                               , "define-method-combination"
-                               , "define-modify-macro"
-                               , "define-setf-expander"
-                               , "define-setf-method"
-                               , "define-symbol-macro"
-                               , "defmacro"
-                               , "defmethod"
-                               , "defpackage"
-                               , "defparameter"
-                               , "defsetf"
-                               , "defstruct"
-                               , "deftype"
-                               , "defun"
-                               , "defvar"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Common Lisp" , "function_decl" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\\\."
-                              , reCompiled = Just (compileRegex True "#\\\\.")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Common Lisp" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#[bodxei]"
-                              , reCompiled = Just (compileRegex True "#[bodxei]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Common Lisp" , "SpecialNumber" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#[tf]"
-                              , reCompiled = Just (compileRegex True "#[tf]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SpecialNumber"
-          , Context
-              { cName = "SpecialNumber"
-              , cSyntax = "Common Lisp"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Common Lisp"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\\\."
-                              , reCompiled = Just (compileRegex True "#\\\\.")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "function_decl"
-          , Context
-              { cName = "function_decl"
-              , cSyntax = "Common Lisp"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*[A-Za-z0-9-+\\<\\>//\\*]*\\s*"
-                              , reCompiled =
-                                  Just (compileRegex True "\\s*[A-Za-z0-9-+\\<\\>//\\*]*\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Dominik Haumann (dhdev@gmx.de)"
-  , sVersion = "3"
-  , sLicense = "LGPLv2+"
-  , sExtensions = [ "*.lisp" , "*.cl" , "*.lsp" ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Common Lisp\", sFilename = \"commonlisp.xml\", sShortname = \"Commonlisp\", sContexts = fromList [(\"MultiLineComment\",Context {cName = \"MultiLineComment\", cSyntax = \"Common Lisp\", cRules = [Rule {rMatcher = Detect2Chars '|' '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Common Lisp\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \";+\\\\s*BEGIN.*$\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \";+\\\\s*END.*$\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \";.*$\", reCaseSensitive = True}), 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 = [Push (\"Common Lisp\",\"MultiLineComment\")]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&(),.;[]^{|}~\"}) (CaseSensitiveWords (fromList [\"abort\",\"abs\",\"access\",\"acons\",\"acos\",\"acosh\",\"add-method\",\"adjoin\",\"adjust-array\",\"adjustable-array-p\",\"allocate-instance\",\"alpha-char-p\",\"alphanumericp\",\"and\",\"append\",\"apply\",\"applyhook\",\"apropos\",\"apropos-list\",\"aref\",\"arithmetic-error\",\"arithmetic-error-operands\",\"arithmetic-error-operation\",\"array\",\"array-dimension\",\"array-dimension-limit\",\"array-dimensions\",\"array-displacement\",\"array-element-type\",\"array-has-fill-pointer-p\",\"array-in-bounds-p\",\"array-rank\",\"array-rank-limit\",\"array-row-major-index\",\"array-total-size\",\"array-total-size-limit\",\"arrayp\",\"ash\",\"asin\",\"asinh\",\"assert\",\"assoc\",\"assoc-if\",\"assoc-if-not\",\"atan\",\"atanh\",\"atom\",\"base-char\",\"base-string\",\"bignum\",\"bit\",\"bit-and\",\"bit-andc1\",\"bit-andc2\",\"bit-eqv\",\"bit-ior\",\"bit-nand\",\"bit-nor\",\"bit-not\",\"bit-orc1\",\"bit-orc2\",\"bit-vector\",\"bit-vector-p\",\"bit-xor\",\"block\",\"boole\",\"boole-1\",\"boole-2\",\"boole-and\",\"boole-andc1\",\"boole-andc2\",\"boole-c1\",\"boole-c2\",\"boole-clr\",\"boole-eqv\",\"boole-ior\",\"boole-nand\",\"boole-nor\",\"boole-orc1\",\"boole-orc2\",\"boole-set\",\"boole-xor\",\"boolean\",\"both-case-p\",\"boundp\",\"break\",\"broadcast-stream\",\"broadcast-stream-streams\",\"built-in-class\",\"butlast\",\"byte\",\"byte-position\",\"byte-size\",\"caaaar\",\"caaadr\",\"caaar\",\"caadar\",\"caaddr\",\"caadr\",\"caar\",\"cadaar\",\"cadadr\",\"cadar\",\"caddar\",\"cadddr\",\"caddr\",\"cadr\",\"call-arguments-limit\",\"call-method\",\"call-next-method\",\"capitalize\",\"car\",\"case\",\"catch\",\"ccase\",\"cdaaar\",\"cdaadr\",\"cdaar\",\"cdadar\",\"cdaddr\",\"cdadr\",\"cdar\",\"cddaar\",\"cddadr\",\"cddar\",\"cdddar\",\"cddddr\",\"cdddr\",\"cddr\",\"cdr\",\"ceiling\",\"cell-error\",\"cell-error-name\",\"cerror\",\"change-class\",\"char\",\"char-bit\",\"char-bits\",\"char-bits-limit\",\"char-code\",\"char-code-limit\",\"char-control-bit\",\"char-downcase\",\"char-equal\",\"char-font\",\"char-font-limit\",\"char-greaterp\",\"char-hyper-bit\",\"char-int\",\"char-lessp\",\"char-meta-bit\",\"char-name\",\"char-not-equal\",\"char-not-greaterp\",\"char-not-lessp\",\"char-super-bit\",\"char-upcase\",\"char/=\",\"char<\",\"char<=\",\"char=\",\"char>\",\"char>=\",\"character\",\"characterp\",\"check-type\",\"cis\",\"class\",\"class-name\",\"class-of\",\"clear-input\",\"clear-output\",\"close\",\"clrhash\",\"code-char\",\"coerce\",\"commonp\",\"compilation-speed\",\"compile\",\"compile-file\",\"compile-file-pathname\",\"compiled-function\",\"compiled-function-p\",\"compiler-let\",\"compiler-macro\",\"compiler-macro-function\",\"complement\",\"complex\",\"complexp\",\"compute-applicable-methods\",\"compute-restarts\",\"concatenate\",\"concatenated-stream\",\"concatenated-stream-streams\",\"cond\",\"condition\",\"conjugate\",\"cons\",\"consp\",\"constantly\",\"constantp\",\"continue\",\"control-error\",\"copy-alist\",\"copy-list\",\"copy-pprint-dispatch\",\"copy-readtable\",\"copy-seq\",\"copy-structure\",\"copy-symbol\",\"copy-tree\",\"cos\",\"cosh\",\"count\",\"count-if\",\"count-if-not\",\"ctypecase\",\"debug\",\"decf\",\"declaim\",\"declaration\",\"declare\",\"decode-float\",\"decode-universal-time\",\"delete\",\"delete-duplicates\",\"delete-file\",\"delete-if\",\"delete-if-not\",\"delete-package\",\"denominator\",\"deposit-field\",\"describe\",\"describe-object\",\"destructuring-bind\",\"digit-char\",\"digit-char-p\",\"directory\",\"directory-namestring\",\"disassemble\",\"division-by-zero\",\"do\",\"do*\",\"do-all-symbols\",\"do-exeternal-symbols\",\"do-external-symbols\",\"do-symbols\",\"documentation\",\"dolist\",\"dotimes\",\"double-float\",\"double-float-epsilon\",\"double-float-negative-epsilon\",\"dpb\",\"dribble\",\"dynamic-extent\",\"ecase\",\"echo-stream\",\"echo-stream-input-stream\",\"echo-stream-output-stream\",\"ed\",\"eighth\",\"elt\",\"encode-universal-time\",\"end-of-file\",\"endp\",\"enough-namestring\",\"ensure-directories-exist\",\"ensure-generic-function\",\"eq\",\"eql\",\"equal\",\"equalp\",\"error\",\"etypecase\",\"eval\",\"eval-when\",\"evalhook\",\"evenp\",\"every\",\"exp\",\"export\",\"expt\",\"extended-char\",\"fboundp\",\"fceiling\",\"fdefinition\",\"ffloor\",\"fifth\",\"file-author\",\"file-error\",\"file-error-pathname\",\"file-length\",\"file-namestring\",\"file-position\",\"file-stream\",\"file-string-length\",\"file-write-date\",\"fill\",\"fill-pointer\",\"find\",\"find-all-symbols\",\"find-class\",\"find-if\",\"find-if-not\",\"find-method\",\"find-package\",\"find-restart\",\"find-symbol\",\"finish-output\",\"first\",\"fixnum\",\"flet\",\"float\",\"float-digits\",\"float-precision\",\"float-radix\",\"float-sign\",\"floating-point-inexact\",\"floating-point-invalid-operation\",\"floating-point-overflow\",\"floating-point-underflow\",\"floatp\",\"floor\",\"fmakunbound\",\"force-output\",\"format\",\"formatter\",\"fourth\",\"fresh-line\",\"fround\",\"ftruncate\",\"ftype\",\"funcall\",\"function\",\"function-keywords\",\"function-lambda-expression\",\"functionp\",\"gbitp\",\"gcd\",\"generic-function\",\"gensym\",\"gentemp\",\"get\",\"get-decoded-time\",\"get-dispatch-macro-character\",\"get-internal-real-time\",\"get-internal-run-time\",\"get-macro-character\",\"get-output-stream-string\",\"get-properties\",\"get-setf-expansion\",\"get-setf-method\",\"get-universal-time\",\"getf\",\"gethash\",\"go\",\"graphic-char-p\",\"handler-bind\",\"handler-case\",\"hash-table\",\"hash-table-count\",\"hash-table-p\",\"hash-table-rehash-size\",\"hash-table-rehash-threshold\",\"hash-table-size\",\"hash-table-test\",\"host-namestring\",\"identity\",\"if\",\"if-exists\",\"ignorable\",\"ignore\",\"ignore-errors\",\"imagpart\",\"import\",\"in-package\",\"incf\",\"initialize-instance\",\"inline\",\"input-stream-p\",\"inspect\",\"int-char\",\"integer\",\"integer-decode-float\",\"integer-length\",\"integerp\",\"interactive-stream-p\",\"intern\",\"internal-time-units-per-second\",\"intersection\",\"invalid-method-error\",\"invoke-debugger\",\"invoke-restart\",\"invoke-restart-interactively\",\"isqrt\",\"keyword\",\"keywordp\",\"labels\",\"lambda\",\"lambda-list-keywords\",\"lambda-parameters-limit\",\"last\",\"lcm\",\"ldb\",\"ldb-test\",\"ldiff\",\"least-negative-double-float\",\"least-negative-long-float\",\"least-negative-normalized-double-float\",\"least-negative-normalized-long-float\",\"least-negative-normalized-short-float\",\"least-negative-normalized-single-float\",\"least-negative-short-float\",\"least-negative-single-float\",\"least-positive-double-float\",\"least-positive-long-float\",\"least-positive-normalized-double-float\",\"least-positive-normalized-long-float\",\"least-positive-normalized-short-float\",\"least-positive-normalized-single-float\",\"least-positive-short-float\",\"least-positive-single-float\",\"length\",\"let\",\"let*\",\"lisp\",\"lisp-implementation-type\",\"lisp-implementation-version\",\"list\",\"list*\",\"list-all-packages\",\"list-length\",\"listen\",\"listp\",\"load\",\"load-logical-pathname-translations\",\"load-time-value\",\"locally\",\"log\",\"logand\",\"logandc1\",\"logandc2\",\"logbitp\",\"logcount\",\"logeqv\",\"logical-pathname\",\"logical-pathname-translations\",\"logior\",\"lognand\",\"lognor\",\"lognot\",\"logorc1\",\"logorc2\",\"logtest\",\"logxor\",\"long-float\",\"long-float-epsilon\",\"long-float-negative-epsilon\",\"long-site-name\",\"loop\",\"loop-finish\",\"lower-case-p\",\"machine-instance\",\"machine-type\",\"machine-version\",\"macro-function\",\"macroexpand\",\"macroexpand-1\",\"macroexpand-l\",\"macrolet\",\"make-array\",\"make-broadcast-stream\",\"make-char\",\"make-concatenated-stream\",\"make-condition\",\"make-dispatch-macro-character\",\"make-echo-stream\",\"make-hash-table\",\"make-instance\",\"make-instances-obsolete\",\"make-list\",\"make-load-form\",\"make-load-form-saving-slots\",\"make-method\",\"make-package\",\"make-pathname\",\"make-random-state\",\"make-sequence\",\"make-string\",\"make-string-input-stream\",\"make-string-output-stream\",\"make-symbol\",\"make-synonym-stream\",\"make-two-way-stream\",\"makunbound\",\"map\",\"map-into\",\"mapc\",\"mapcan\",\"mapcar\",\"mapcon\",\"maphash\",\"mapl\",\"maplist\",\"mask-field\",\"max\",\"member\",\"member-if\",\"member-if-not\",\"merge\",\"merge-pathname\",\"merge-pathnames\",\"method\",\"method-combination\",\"method-combination-error\",\"method-qualifiers\",\"min\",\"minusp\",\"mismatch\",\"mod\",\"most-negative-double-float\",\"most-negative-fixnum\",\"most-negative-long-float\",\"most-negative-short-float\",\"most-negative-single-float\",\"most-positive-double-float\",\"most-positive-fixnum\",\"most-positive-long-float\",\"most-positive-short-float\",\"most-positive-single-float\",\"muffle-warning\",\"multiple-value-bind\",\"multiple-value-call\",\"multiple-value-list\",\"multiple-value-prog1\",\"multiple-value-seteq\",\"multiple-value-setq\",\"multiple-values-limit\",\"name-char\",\"namestring\",\"nbutlast\",\"nconc\",\"next-method-p\",\"nil\",\"nintersection\",\"ninth\",\"no-applicable-method\",\"no-next-method\",\"not\",\"notany\",\"notevery\",\"notinline\",\"nreconc\",\"nreverse\",\"nset-difference\",\"nset-exclusive-or\",\"nstring\",\"nstring-capitalize\",\"nstring-downcase\",\"nstring-upcase\",\"nsublis\",\"nsubst\",\"nsubst-if\",\"nsubst-if-not\",\"nsubstitute\",\"nsubstitute-if\",\"nsubstitute-if-not\",\"nth\",\"nth-value\",\"nthcdr\",\"null\",\"number\",\"numberp\",\"numerator\",\"nunion\",\"oddp\",\"open\",\"open-stream-p\",\"optimize\",\"or\",\"otherwise\",\"output-stream-p\",\"package\",\"package-error\",\"package-error-package\",\"package-name\",\"package-nicknames\",\"package-shadowing-symbols\",\"package-use-list\",\"package-used-by-list\",\"packagep\",\"pairlis\",\"parse-error\",\"parse-integer\",\"parse-namestring\",\"pathname\",\"pathname-device\",\"pathname-directory\",\"pathname-host\",\"pathname-match-p\",\"pathname-name\",\"pathname-type\",\"pathname-version\",\"pathnamep\",\"peek-char\",\"phase\",\"pi\",\"plusp\",\"pop\",\"position\",\"position-if\",\"position-if-not\",\"pprint\",\"pprint-dispatch\",\"pprint-exit-if-list-exhausted\",\"pprint-fill\",\"pprint-indent\",\"pprint-linear\",\"pprint-logical-block\",\"pprint-newline\",\"pprint-pop\",\"pprint-tab\",\"pprint-tabular\",\"prin1\",\"prin1-to-string\",\"princ\",\"princ-to-string\",\"print\",\"print-not-readable\",\"print-not-readable-object\",\"print-object\",\"print-unreadable-object\",\"probe-file\",\"proclaim\",\"prog\",\"prog*\",\"prog1\",\"prog2\",\"progn\",\"program-error\",\"progv\",\"provide\",\"psetf\",\"psetq\",\"push\",\"pushnew\",\"putprop\",\"quote\",\"random\",\"random-state\",\"random-state-p\",\"rassoc\",\"rassoc-if\",\"rassoc-if-not\",\"ratio\",\"rational\",\"rationalize\",\"rationalp\",\"read\",\"read-byte\",\"read-char\",\"read-char-no-hang\",\"read-delimited-list\",\"read-eval-print\",\"read-from-string\",\"read-line\",\"read-preserving-whitespace\",\"read-sequence\",\"reader-error\",\"readtable\",\"readtable-case\",\"readtablep\",\"real\",\"realp\",\"realpart\",\"reduce\",\"reinitialize-instance\",\"rem\",\"remf\",\"remhash\",\"remove\",\"remove-duplicates\",\"remove-if\",\"remove-if-not\",\"remove-method\",\"remprop\",\"rename-file\",\"rename-package\",\"replace\",\"require\",\"rest\",\"restart\",\"restart-bind\",\"restart-case\",\"restart-name\",\"return\",\"return-from\",\"revappend\",\"reverse\",\"room\",\"rotatef\",\"round\",\"row-major-aref\",\"rplaca\",\"rplacd\",\"safety\",\"satisfies\",\"sbit\",\"scale-float\",\"schar\",\"search\",\"second\",\"sequence\",\"serious-condition\",\"set\",\"set-char-bit\",\"set-difference\",\"set-dispatch-macro-character\",\"set-exclusive-or\",\"set-macro-character\",\"set-pprint-dispatch\",\"set-syntax-from-char\",\"setf\",\"setq\",\"seventh\",\"shadow\",\"shadowing-import\",\"shared-initialize\",\"shiftf\",\"short-float\",\"short-float-epsilon\",\"short-float-negative-epsilon\",\"short-site-name\",\"signal\",\"signed-byte\",\"signum\",\"simle-condition\",\"simple-array\",\"simple-base-string\",\"simple-bit-vector\",\"simple-bit-vector-p\",\"simple-condition-format-arguments\",\"simple-condition-format-control\",\"simple-error\",\"simple-string\",\"simple-string-p\",\"simple-type-error\",\"simple-vector\",\"simple-vector-p\",\"simple-warning\",\"sin\",\"single-flaot-epsilon\",\"single-float\",\"single-float-epsilon\",\"single-float-negative-epsilon\",\"sinh\",\"sixth\",\"sleep\",\"slot-boundp\",\"slot-exists-p\",\"slot-makunbound\",\"slot-missing\",\"slot-unbound\",\"slot-value\",\"software-type\",\"software-version\",\"some\",\"sort\",\"space\",\"special\",\"special-form-p\",\"special-operator-p\",\"speed\",\"sqrt\",\"stable-sort\",\"standard\",\"standard-char\",\"standard-char-p\",\"standard-class\",\"standard-generic-function\",\"standard-method\",\"standard-object\",\"step\",\"storage-condition\",\"store-value\",\"stream\",\"stream-element-type\",\"stream-error\",\"stream-error-stream\",\"stream-external-format\",\"streamp\",\"streamup\",\"string\",\"string-capitalize\",\"string-char\",\"string-char-p\",\"string-downcase\",\"string-equal\",\"string-greaterp\",\"string-left-trim\",\"string-lessp\",\"string-not-equal\",\"string-not-greaterp\",\"string-not-lessp\",\"string-right-strim\",\"string-right-trim\",\"string-stream\",\"string-trim\",\"string-upcase\",\"string/=\",\"string<\",\"string<=\",\"string=\",\"string>\",\"string>=\",\"stringp\",\"structure\",\"structure-class\",\"structure-object\",\"style-warning\",\"sublim\",\"sublis\",\"subseq\",\"subsetp\",\"subst\",\"subst-if\",\"subst-if-not\",\"substitute\",\"substitute-if\",\"substitute-if-not\",\"subtypep\",\"svref\",\"sxhash\",\"symbol\",\"symbol-function\",\"symbol-macrolet\",\"symbol-name\",\"symbol-package\",\"symbol-plist\",\"symbol-value\",\"symbolp\",\"synonym-stream\",\"synonym-stream-symbol\",\"sys\",\"system\",\"t\",\"tagbody\",\"tailp\",\"tan\",\"tanh\",\"tenth\",\"terpri\",\"the\",\"third\",\"throw\",\"time\",\"trace\",\"translate-logical-pathname\",\"translate-pathname\",\"tree-equal\",\"truename\",\"truncase\",\"truncate\",\"two-way-stream\",\"two-way-stream-input-stream\",\"two-way-stream-output-stream\",\"type\",\"type-error\",\"type-error-datum\",\"type-error-expected-type\",\"type-of\",\"typecase\",\"typep\",\"unbound-slot\",\"unbound-slot-instance\",\"unbound-variable\",\"undefined-function\",\"unexport\",\"unintern\",\"union\",\"unless\",\"unread\",\"unread-char\",\"unsigned-byte\",\"untrace\",\"unuse-package\",\"unwind-protect\",\"update-instance-for-different-class\",\"update-instance-for-redefined-class\",\"upgraded-array-element-type\",\"upgraded-complex-part-type\",\"upper-case-p\",\"use-package\",\"use-value\",\"user\",\"user-homedir-pathname\",\"values\",\"values-list\",\"vector\",\"vector-pop\",\"vector-push\",\"vector-push-extend\",\"vectorp\",\"warn\",\"warning\",\"when\",\"wild-pathname-p\",\"with-accessors\",\"with-compilation-unit\",\"with-condition-restarts\",\"with-hash-table-iterator\",\"with-input-from-string\",\"with-open-file\",\"with-open-stream\",\"with-output-to-string\",\"with-package-iterator\",\"with-simple-restart\",\"with-slots\",\"with-standard-io-syntax\",\"write\",\"write-byte\",\"write-char\",\"write-line\",\"write-sequence\",\"write-string\",\"write-to-string\",\"y-or-n-p\",\"yes-or-no-p\",\"zerop\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&(),.;[]^{|}~\"}) (CaseSensitiveWords (fromList [\"*\",\"**\",\"***\",\"+\",\"++\",\"+++\",\"-\",\"/\",\"//\",\"///\",\"/=\",\"1+\",\"1-\",\"<\",\"<=\",\"=\",\"=>\",\">\",\">=\"])), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&(),.;[]^{|}~\"}) (CaseSensitiveWords (fromList [\":abort\",\":adjustable\",\":append\",\":array\",\":base\",\":case\",\":circle\",\":conc-name\",\":constructor\",\":copier\",\":count\",\":create\",\":default\",\":defaults\",\":device\",\":direction\",\":directory\",\":displaced-index-offset\",\":displaced-to\",\":element-type\",\":end\",\":end1\",\":end2\",\":error\",\":escape\",\":external\",\":from-end\",\":gensym\",\":host\",\":if-does-not-exist:pretty\",\":if-exists:print\",\":include:print-function\",\":index\",\":inherited\",\":initial-contents\",\":initial-element\",\":initial-offset\",\":initial-value\",\":input\",\":internal:size\",\":io\",\":junk-allowed\",\":key\",\":length\",\":level\",\":name\",\":named\",\":new-version\",\":nicknames\",\":output\",\":output-file\",\":overwrite\",\":predicate\",\":preserve-whitespace\",\":probe\",\":radix\",\":read-only\",\":rehash-size\",\":rehash-threshold\",\":rename\",\":rename-and-delete\",\":start\",\":start1\",\":start2\",\":stream\",\":supersede\",\":test\",\":test-not\",\":type\",\":use\",\":verbose\",\":version\"])), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&(),.;[]^{|}~\"}) (CaseSensitiveWords (fromList [\"*applyhook*\",\"*break-on-signals*\",\"*break-on-warnings*\",\"*compile-file-pathname*\",\"*compile-file-truename*\",\"*compile-print*\",\"*compile-verbose*\",\"*debug-io*\",\"*debugger-hook*\",\"*default-pathname-defaults*\",\"*error-output*\",\"*evalhook*\",\"*features*\",\"*gensym-counter*\",\"*load-pathname*\",\"*load-print*\",\"*load-truename*\",\"*load-verbose*\",\"*macroexpand-hook*\",\"*modules*\",\"*package*\",\"*print-array*\",\"*print-base*\",\"*print-case*\",\"*print-circle*\",\"*print-escape*\",\"*print-gensym*\",\"*print-length*\",\"*print-level*\",\"*print-lines*\",\"*print-miser-width*\",\"*print-pprint-dispatch*\",\"*print-pretty*\",\"*print-radix*\",\"*print-readably*\",\"*print-right-margin*\",\"*query-io*\",\"*random-state*\",\"*read-base*\",\"*read-default-float-format*\",\"*read-eval*\",\"*read-suppress*\",\"*readtable*\",\"*standard-input*\",\"*standard-output*\",\"*terminal-io*\",\"*trace-output*\"])), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&(),.;[]^{|}~\"}) (CaseSensitiveWords (fromList [\"defclass\",\"defconstant\",\"defgeneric\",\"define-compiler-macro\",\"define-condition\",\"define-method-combination\",\"define-modify-macro\",\"define-setf-expander\",\"define-setf-method\",\"define-symbol-macro\",\"defmacro\",\"defmethod\",\"defpackage\",\"defparameter\",\"defsetf\",\"defstruct\",\"deftype\",\"defun\",\"defvar\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Common Lisp\",\"function_decl\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\\\\\.\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Common Lisp\",\"String\")]},Rule {rMatcher = RegExpr (RE {reString = \"#[bodxei]\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Common Lisp\",\"SpecialNumber\")]},Rule {rMatcher = RegExpr (RE {reString = \"#[tf]\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SpecialNumber\",Context {cName = \"SpecialNumber\", cSyntax = \"Common Lisp\", cRules = [Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = HlCHex, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Common Lisp\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"#\\\\\\\\.\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCStringChar, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"function_decl\",Context {cName = \"function_decl\", cSyntax = \"Common Lisp\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*[A-Za-z0-9-+\\\\<\\\\>//\\\\*]*\\\\s*\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Dominik Haumann (dhdev@gmx.de)\", sVersion = \"3\", sLicense = \"LGPLv2+\", sExtensions = [\"*.lisp\",\"*.cl\",\"*.lsp\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Cpp.hs b/src/Skylighting/Syntax/Cpp.hs
--- a/src/Skylighting/Syntax/Cpp.hs
+++ b/src/Skylighting/Syntax/Cpp.hs
@@ -2,1717 +2,6 @@
 module Skylighting.Syntax.Cpp (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "C++"
-  , sFilename = "cpp.xml"
-  , sShortname = "Cpp"
-  , sContexts =
-      fromList
-        [ ( "DetectNSEnd"
-          , Context
-              { cName = "DetectNSEnd"
-              , cSyntax = "C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "!% &()+-/.*<=>?[]{|}~^,;"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar " "
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "DetectQt4Extensions"
-          , Context
-              { cName = "DetectQt4Extensions"
-              , cSyntax = "C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "QObjectList"
-                               , "QRgb"
-                               , "Q_PID"
-                               , "QtMsgHandler"
-                               , "QtMsgType"
-                               , "WId"
-                               , "qScriptConnect"
-                               , "qScriptDisconnect"
-                               , "qScriptRegisterMetaType"
-                               , "qScriptRegisterSequenceMetaType"
-                               , "qScriptValueFromSequence"
-                               , "qScriptValueToSequence"
-                               , "qint16"
-                               , "qint32"
-                               , "qint64"
-                               , "qint8"
-                               , "qlonglong"
-                               , "qptrdiff"
-                               , "qreal"
-                               , "quint16"
-                               , "quint32"
-                               , "quint64"
-                               , "quint8"
-                               , "quintptr"
-                               , "qulonglong"
-                               , "uchar"
-                               , "uint"
-                               , "ulong"
-                               , "ushort"
-                               ])
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Phonon"
-                               , "QAbstractAnimation"
-                               , "QAbstractButton"
-                               , "QAbstractEventDispatcher"
-                               , "QAbstractExtensionFactory"
-                               , "QAbstractExtensionManager"
-                               , "QAbstractFileEngine"
-                               , "QAbstractFileEngineHandler"
-                               , "QAbstractFileEngineIterator"
-                               , "QAbstractFontEngine"
-                               , "QAbstractFormBuilder"
-                               , "QAbstractGraphicsShapeItem"
-                               , "QAbstractItemDelegate"
-                               , "QAbstractItemModel"
-                               , "QAbstractItemView"
-                               , "QAbstractListModel"
-                               , "QAbstractMessageHandler"
-                               , "QAbstractNetworkCache"
-                               , "QAbstractPrintDialog"
-                               , "QAbstractProxyModel"
-                               , "QAbstractScrollArea"
-                               , "QAbstractSlider"
-                               , "QAbstractSocket"
-                               , "QAbstractSpinBox"
-                               , "QAbstractState"
-                               , "QAbstractTableModel"
-                               , "QAbstractTextDocumentLayout"
-                               , "QAbstractTransition"
-                               , "QAbstractUriResolver"
-                               , "QAbstractVideoBuffer"
-                               , "QAbstractVideoSurface"
-                               , "QAbstractXmlNodeModel"
-                               , "QAbstractXmlReceiver"
-                               , "QAccessible"
-                               , "QAccessibleBridge"
-                               , "QAccessibleBridgePlugin"
-                               , "QAccessibleEvent"
-                               , "QAccessibleInterface"
-                               , "QAccessibleObject"
-                               , "QAccessiblePlugin"
-                               , "QAccessibleWidget"
-                               , "QAction"
-                               , "QActionEvent"
-                               , "QActionGroup"
-                               , "QAnimationGroup"
-                               , "QApplication"
-                               , "QAtomicInt"
-                               , "QAtomicPointer"
-                               , "QAudioDeviceInfo"
-                               , "QAudioFormat"
-                               , "QAudioInput"
-                               , "QAudioOutput"
-                               , "QAuthenticator"
-                               , "QAxAggregated"
-                               , "QAxBase"
-                               , "QAxBindable"
-                               , "QAxFactory"
-                               , "QAxObject"
-                               , "QAxScript"
-                               , "QAxScriptEngine"
-                               , "QAxScriptManager"
-                               , "QAxWidget"
-                               , "QBasicTimer"
-                               , "QBitArray"
-                               , "QBitmap"
-                               , "QBool"
-                               , "QBoxLayout"
-                               , "QBrush"
-                               , "QBuffer"
-                               , "QButtonGroup"
-                               , "QByteArray"
-                               , "QByteArrayMatcher"
-                               , "QCDEStyle"
-                               , "QCache"
-                               , "QCalendarWidget"
-                               , "QChar"
-                               , "QCheckBox"
-                               , "QChildEvent"
-                               , "QCleanlooksStyle"
-                               , "QClipboard"
-                               , "QCloseEvent"
-                               , "QColor"
-                               , "QColorDialog"
-                               , "QColormap"
-                               , "QColumnView"
-                               , "QComboBox"
-                               , "QCommandLinkButton"
-                               , "QCommonStyle"
-                               , "QCompleter"
-                               , "QConicalGradient"
-                               , "QContextMenuEvent"
-                               , "QContiguousCache"
-                               , "QCopChannel"
-                               , "QCoreApplication"
-                               , "QCryptographicHash"
-                               , "QCursor"
-                               , "QCustomRasterPaintDevice"
-                               , "QDBusAbstractAdaptor"
-                               , "QDBusAbstractInterface"
-                               , "QDBusArgument"
-                               , "QDBusConnection"
-                               , "QDBusConnectionInterface"
-                               , "QDBusContext"
-                               , "QDBusError"
-                               , "QDBusInterface"
-                               , "QDBusMessage"
-                               , "QDBusObjectPath"
-                               , "QDBusPendingCall"
-                               , "QDBusPendingCallWatcher"
-                               , "QDBusPendingReply"
-                               , "QDBusReply"
-                               , "QDBusServiceWatcher"
-                               , "QDBusSignature"
-                               , "QDBusUnixFileDescriptor"
-                               , "QDBusVariant"
-                               , "QDataStream"
-                               , "QDataWidgetMapper"
-                               , "QDate"
-                               , "QDateEdit"
-                               , "QDateTime"
-                               , "QDateTimeEdit"
-                               , "QDebug"
-                               , "QDeclarativeComponent"
-                               , "QDeclarativeContext"
-                               , "QDeclarativeEngine"
-                               , "QDeclarativeError"
-                               , "QDeclarativeExpression"
-                               , "QDeclarativeExtensionPlugin"
-                               , "QDeclarativeImageProvider"
-                               , "QDeclarativeItem"
-                               , "QDeclarativeListProperty"
-                               , "QDeclarativeListReference"
-                               , "QDeclarativeNetworkAccessManagerFactory"
-                               , "QDeclarativeParserStatus"
-                               , "QDeclarativeProperty"
-                               , "QDeclarativePropertyMap"
-                               , "QDeclarativePropertyValueSource"
-                               , "QDeclarativeScriptString"
-                               , "QDeclarativeView"
-                               , "QDecoration"
-                               , "QDecorationDefault"
-                               , "QDecorationFactory"
-                               , "QDecorationPlugin"
-                               , "QDesignerActionEditorInterface"
-                               , "QDesignerContainerExtension"
-                               , "QDesignerCustomWidgetCollectionInterface"
-                               , "QDesignerCustomWidgetInterface"
-                               , "QDesignerDynamicPropertySheetExtension"
-                               , "QDesignerFormEditorInterface"
-                               , "QDesignerFormWindowCursorInterface"
-                               , "QDesignerFormWindowInterface"
-                               , "QDesignerFormWindowManagerInterface"
-                               , "QDesignerMemberSheetExtension"
-                               , "QDesignerObjectInspectorInterface"
-                               , "QDesignerPropertyEditorInterface"
-                               , "QDesignerPropertySheetExtension"
-                               , "QDesignerTaskMenuExtension"
-                               , "QDesignerWidgetBoxInterface"
-                               , "QDesktopServices"
-                               , "QDesktopWidget"
-                               , "QDial"
-                               , "QDialog"
-                               , "QDialogButtonBox"
-                               , "QDir"
-                               , "QDirIterator"
-                               , "QDirectPainter"
-                               , "QDockWidget"
-                               , "QDomAttr"
-                               , "QDomCDATASection"
-                               , "QDomCharacterData"
-                               , "QDomComment"
-                               , "QDomDocument"
-                               , "QDomDocumentFragment"
-                               , "QDomDocumentType"
-                               , "QDomElement"
-                               , "QDomEntity"
-                               , "QDomEntityReference"
-                               , "QDomImplementation"
-                               , "QDomNamedNodeMap"
-                               , "QDomNode"
-                               , "QDomNodeList"
-                               , "QDomNotation"
-                               , "QDomProcessingInstruction"
-                               , "QDomText"
-                               , "QDoubleSpinBox"
-                               , "QDoubleValidator"
-                               , "QDrag"
-                               , "QDragEnterEvent"
-                               , "QDragLeaveEvent"
-                               , "QDragMoveEvent"
-                               , "QDropEvent"
-                               , "QDynamicPropertyChangeEvent"
-                               , "QEasingCurve"
-                               , "QElapsedTimer"
-                               , "QErrorMessage"
-                               , "QEvent"
-                               , "QEventLoop"
-                               , "QEventTransition"
-                               , "QExplicitlySharedDataPointer"
-                               , "QExtensionFactory"
-                               , "QExtensionManager"
-                               , "QFSFileEngine"
-                               , "QFile"
-                               , "QFileDialog"
-                               , "QFileIconProvider"
-                               , "QFileInfo"
-                               , "QFileInfoList"
-                               , "QFileOpenEvent"
-                               , "QFileSystemModel"
-                               , "QFileSystemWatcher"
-                               , "QFinalState"
-                               , "QFlag"
-                               , "QFlags"
-                               , "QFocusEvent"
-                               , "QFocusFrame"
-                               , "QFont"
-                               , "QFontComboBox"
-                               , "QFontDatabase"
-                               , "QFontDialog"
-                               , "QFontEngineInfo"
-                               , "QFontEnginePlugin"
-                               , "QFontInfo"
-                               , "QFontMetrics"
-                               , "QFontMetricsF"
-                               , "QFormBuilder"
-                               , "QFormLayout"
-                               , "QFrame"
-                               , "QFtp"
-                               , "QFuture"
-                               , "QFutureIterator"
-                               , "QFutureSynchronizer"
-                               , "QFutureWatcher"
-                               , "QGLBuffer"
-                               , "QGLColormap"
-                               , "QGLContext"
-                               , "QGLFormat"
-                               , "QGLFramebufferObject"
-                               , "QGLFramebufferObjectFormat"
-                               , "QGLFunctions"
-                               , "QGLPixelBuffer"
-                               , "QGLShader"
-                               , "QGLShaderProgram"
-                               , "QGLWidget"
-                               , "QGenericArgument"
-                               , "QGenericMatrix"
-                               , "QGenericPlugin"
-                               , "QGenericPluginFactory"
-                               , "QGenericReturnArgument"
-                               , "QGesture"
-                               , "QGestureEvent"
-                               , "QGestureRecognizer"
-                               , "QGlyphRun"
-                               , "QGradient"
-                               , "QGraphicsAnchor"
-                               , "QGraphicsAnchorLayout"
-                               , "QGraphicsBlurEffect"
-                               , "QGraphicsColorizeEffect"
-                               , "QGraphicsDropShadowEffect"
-                               , "QGraphicsEffect"
-                               , "QGraphicsEllipseItem"
-                               , "QGraphicsGridLayout"
-                               , "QGraphicsItem"
-                               , "QGraphicsItemAnimation"
-                               , "QGraphicsItemGroup"
-                               , "QGraphicsLayout"
-                               , "QGraphicsLayoutItem"
-                               , "QGraphicsLineItem"
-                               , "QGraphicsLinearLayout"
-                               , "QGraphicsObject"
-                               , "QGraphicsOpacityEffect"
-                               , "QGraphicsPathItem"
-                               , "QGraphicsPixmapItem"
-                               , "QGraphicsPolygonItem"
-                               , "QGraphicsProxyWidget"
-                               , "QGraphicsRectItem"
-                               , "QGraphicsRotation"
-                               , "QGraphicsScale"
-                               , "QGraphicsScene"
-                               , "QGraphicsSceneContextMenuEvent"
-                               , "QGraphicsSceneDragDropEvent"
-                               , "QGraphicsSceneEvent"
-                               , "QGraphicsSceneHelpEvent"
-                               , "QGraphicsSceneHoverEvent"
-                               , "QGraphicsSceneMouseEvent"
-                               , "QGraphicsSceneMoveEvent"
-                               , "QGraphicsSceneResizeEvent"
-                               , "QGraphicsSceneWheelEvent"
-                               , "QGraphicsSimpleTextItem"
-                               , "QGraphicsSvgItem"
-                               , "QGraphicsTextItem"
-                               , "QGraphicsTransform"
-                               , "QGraphicsView"
-                               , "QGraphicsWebView"
-                               , "QGraphicsWidget"
-                               , "QGridLayout"
-                               , "QGroupBox"
-                               , "QGtkStyle"
-                               , "QHBoxLayout"
-                               , "QHash"
-                               , "QHashIterator"
-                               , "QHeaderView"
-                               , "QHelpContentItem"
-                               , "QHelpContentModel"
-                               , "QHelpContentWidget"
-                               , "QHelpEngine"
-                               , "QHelpEngineCore"
-                               , "QHelpEvent"
-                               , "QHelpIndexModel"
-                               , "QHelpIndexWidget"
-                               , "QHelpSearchEngine"
-                               , "QHelpSearchQuery"
-                               , "QHelpSearchQueryWidget"
-                               , "QHelpSearchResultWidget"
-                               , "QHideEvent"
-                               , "QHistoryState"
-                               , "QHostAddress"
-                               , "QHostInfo"
-                               , "QHoverEvent"
-                               , "QHttpMultiPart"
-                               , "QHttpPart"
-                               , "QIODevice"
-                               , "QIcon"
-                               , "QIconDragEvent"
-                               , "QIconEngine"
-                               , "QIconEnginePlugin"
-                               , "QIconEnginePluginV2"
-                               , "QIconEngineV2"
-                               , "QIdentityProxyModel"
-                               , "QImage"
-                               , "QImageIOHandler"
-                               , "QImageIOPlugin"
-                               , "QImageReader"
-                               , "QImageWriter"
-                               , "QInputContext"
-                               , "QInputContextFactory"
-                               , "QInputContextPlugin"
-                               , "QInputDialog"
-                               , "QInputEvent"
-                               , "QInputMethodEvent"
-                               , "QIntValidator"
-                               , "QItemDelegate"
-                               , "QItemEditorCreator"
-                               , "QItemEditorCreatorBase"
-                               , "QItemEditorFactory"
-                               , "QItemSelection"
-                               , "QItemSelectionModel"
-                               , "QItemSelectionRange"
-                               , "QKbdDriverFactory"
-                               , "QKbdDriverPlugin"
-                               , "QKeyEvent"
-                               , "QKeyEventTransition"
-                               , "QKeySequence"
-                               , "QLCDNumber"
-                               , "QLabel"
-                               , "QLatin1Char"
-                               , "QLatin1String"
-                               , "QLayout"
-                               , "QLayoutItem"
-                               , "QLibrary"
-                               , "QLibraryInfo"
-                               , "QLine"
-                               , "QLineEdit"
-                               , "QLineF"
-                               , "QLinearGradient"
-                               , "QLinkedList"
-                               , "QLinkedListIterator"
-                               , "QList"
-                               , "QListIterator"
-                               , "QListView"
-                               , "QListWidget"
-                               , "QListWidgetItem"
-                               , "QLocalServer"
-                               , "QLocalSocket"
-                               , "QLocale"
-                               , "QMacCocoaViewContainer"
-                               , "QMacNativeWidget"
-                               , "QMacPasteboardMime"
-                               , "QMacStyle"
-                               , "QMainWindow"
-                               , "QMap"
-                               , "QMapIterator"
-                               , "QMargins"
-                               , "QMatrix4x4"
-                               , "QMdiArea"
-                               , "QMdiSubWindow"
-                               , "QMenu"
-                               , "QMenuBar"
-                               , "QMessageBox"
-                               , "QMetaClassInfo"
-                               , "QMetaEnum"
-                               , "QMetaMethod"
-                               , "QMetaObject"
-                               , "QMetaProperty"
-                               , "QMetaType"
-                               , "QMimeData"
-                               , "QModelIndex"
-                               , "QMotifStyle"
-                               , "QMouseDriverFactory"
-                               , "QMouseDriverPlugin"
-                               , "QMouseEvent"
-                               , "QMouseEventTransition"
-                               , "QMoveEvent"
-                               , "QMovie"
-                               , "QMultiHash"
-                               , "QMultiMap"
-                               , "QMutableHashIterator"
-                               , "QMutableLinkedListIterator"
-                               , "QMutableListIterator"
-                               , "QMutableMapIterator"
-                               , "QMutableSetIterator"
-                               , "QMutableStringListIterator"
-                               , "QMutableVectorIterator"
-                               , "QMutex"
-                               , "QMutexLocker"
-                               , "QNetworkAccessManager"
-                               , "QNetworkAddressEntry"
-                               , "QNetworkCacheMetaData"
-                               , "QNetworkConfiguration"
-                               , "QNetworkConfigurationManager"
-                               , "QNetworkCookie"
-                               , "QNetworkCookieJar"
-                               , "QNetworkDiskCache"
-                               , "QNetworkInterface"
-                               , "QNetworkProxy"
-                               , "QNetworkProxyFactory"
-                               , "QNetworkProxyQuery"
-                               , "QNetworkReply"
-                               , "QNetworkRequest"
-                               , "QNetworkSession"
-                               , "QObject"
-                               , "QObjectCleanupHandler"
-                               , "QPageSetupDialog"
-                               , "QPaintDevice"
-                               , "QPaintEngine"
-                               , "QPaintEngineState"
-                               , "QPaintEvent"
-                               , "QPainter"
-                               , "QPainterPath"
-                               , "QPainterPathStroker"
-                               , "QPair"
-                               , "QPalette"
-                               , "QPanGesture"
-                               , "QParallelAnimationGroup"
-                               , "QPauseAnimation"
-                               , "QPen"
-                               , "QPersistentModelIndex"
-                               , "QPicture"
-                               , "QPinchGesture"
-                               , "QPixmap"
-                               , "QPixmapCache"
-                               , "QPlainTextDocumentLayout"
-                               , "QPlainTextEdit"
-                               , "QPlastiqueStyle"
-                               , "QPlatformCursor"
-                               , "QPlatformCursorImage"
-                               , "QPlatformFontDatabase"
-                               , "QPlatformWindowFormat"
-                               , "QPluginLoader"
-                               , "QPoint"
-                               , "QPointF"
-                               , "QPointer"
-                               , "QPolygon"
-                               , "QPolygonF"
-                               , "QPrintDialog"
-                               , "QPrintEngine"
-                               , "QPrintPreviewDialog"
-                               , "QPrintPreviewWidget"
-                               , "QPrinter"
-                               , "QPrinterInfo"
-                               , "QProcess"
-                               , "QProcessEnvironment"
-                               , "QProgressBar"
-                               , "QProgressDialog"
-                               , "QPropertyAnimation"
-                               , "QProxyScreen"
-                               , "QProxyScreenCursor"
-                               , "QProxyStyle"
-                               , "QPushButton"
-                               , "QQuaternion"
-                               , "QQueue"
-                               , "QRadialGradient"
-                               , "QRadioButton"
-                               , "QRasterPaintEngine"
-                               , "QRawFont"
-                               , "QReadLocker"
-                               , "QReadWriteLock"
-                               , "QRect"
-                               , "QRectF"
-                               , "QRegExp"
-                               , "QRegExpValidator"
-                               , "QRegion"
-                               , "QResizeEvent"
-                               , "QResource"
-                               , "QRubberBand"
-                               , "QRunnable"
-                               , "QS60MainAppUi"
-                               , "QS60MainApplication"
-                               , "QS60MainDocument"
-                               , "QS60Style"
-                               , "QScopedArrayPointer"
-                               , "QScopedPointer"
-                               , "QScopedValueRollback"
-                               , "QScreen"
-                               , "QScreenCursor"
-                               , "QScreenDriverFactory"
-                               , "QScreenDriverPlugin"
-                               , "QScriptClass"
-                               , "QScriptClassPropertyIterator"
-                               , "QScriptContext"
-                               , "QScriptContextInfo"
-                               , "QScriptEngine"
-                               , "QScriptEngineAgent"
-                               , "QScriptEngineDebugger"
-                               , "QScriptExtensionPlugin"
-                               , "QScriptProgram"
-                               , "QScriptString"
-                               , "QScriptSyntaxCheckResult"
-                               , "QScriptValue"
-                               , "QScriptValueIterator"
-                               , "QScriptable"
-                               , "QScrollArea"
-                               , "QScrollBar"
-                               , "QSemaphore"
-                               , "QSequentialAnimationGroup"
-                               , "QSessionManager"
-                               , "QSet"
-                               , "QSetIterator"
-                               , "QSettings"
-                               , "QSharedData"
-                               , "QSharedDataPointer"
-                               , "QSharedMemory"
-                               , "QSharedPointer"
-                               , "QShortcut"
-                               , "QShortcutEvent"
-                               , "QShowEvent"
-                               , "QSignalMapper"
-                               , "QSignalSpy"
-                               , "QSignalTransition"
-                               , "QSimpleXmlNodeModel"
-                               , "QSize"
-                               , "QSizeF"
-                               , "QSizeGrip"
-                               , "QSizePolicy"
-                               , "QSlider"
-                               , "QSocketNotifier"
-                               , "QSortFilterProxyModel"
-                               , "QSound"
-                               , "QSourceLocation"
-                               , "QSpacerItem"
-                               , "QSpinBox"
-                               , "QSplashScreen"
-                               , "QSplitter"
-                               , "QSplitterHandle"
-                               , "QSqlDatabase"
-                               , "QSqlDriver"
-                               , "QSqlDriverCreator"
-                               , "QSqlDriverCreatorBase"
-                               , "QSqlDriverPlugin"
-                               , "QSqlError"
-                               , "QSqlField"
-                               , "QSqlIndex"
-                               , "QSqlQuery"
-                               , "QSqlQueryModel"
-                               , "QSqlRecord"
-                               , "QSqlRelation"
-                               , "QSqlRelationalDelegate"
-                               , "QSqlRelationalTableModel"
-                               , "QSqlResult"
-                               , "QSqlTableModel"
-                               , "QSslCertificate"
-                               , "QSslCipher"
-                               , "QSslConfiguration"
-                               , "QSslError"
-                               , "QSslKey"
-                               , "QSslSocket"
-                               , "QStack"
-                               , "QStackedLayout"
-                               , "QStackedWidget"
-                               , "QStandardItem"
-                               , "QStandardItemEditorCreator"
-                               , "QStandardItemModel"
-                               , "QState"
-                               , "QStateMachine"
-                               , "QStaticText"
-                               , "QStatusBar"
-                               , "QStatusTipEvent"
-                               , "QString"
-                               , "QStringBuilder"
-                               , "QStringList"
-                               , "QStringListIterator"
-                               , "QStringListModel"
-                               , "QStringMatcher"
-                               , "QStringRef"
-                               , "QStyle"
-                               , "QStyleFactory"
-                               , "QStyleHintReturn"
-                               , "QStyleHintReturnMask"
-                               , "QStyleHintReturnVariant"
-                               , "QStyleOption"
-                               , "QStyleOptionButton"
-                               , "QStyleOptionComboBox"
-                               , "QStyleOptionComplex"
-                               , "QStyleOptionDockWidget"
-                               , "QStyleOptionFocusRect"
-                               , "QStyleOptionFrame"
-                               , "QStyleOptionFrameV2"
-                               , "QStyleOptionFrameV3"
-                               , "QStyleOptionGraphicsItem"
-                               , "QStyleOptionGroupBox"
-                               , "QStyleOptionHeader"
-                               , "QStyleOptionMenuItem"
-                               , "QStyleOptionProgressBar"
-                               , "QStyleOptionProgressBarV2"
-                               , "QStyleOptionQ3DockWindow"
-                               , "QStyleOptionQ3ListView"
-                               , "QStyleOptionQ3ListViewItem"
-                               , "QStyleOptionRubberBand"
-                               , "QStyleOptionSizeGrip"
-                               , "QStyleOptionSlider"
-                               , "QStyleOptionSpinBox"
-                               , "QStyleOptionTab"
-                               , "QStyleOptionTabBarBase"
-                               , "QStyleOptionTabBarBaseV2"
-                               , "QStyleOptionTabV2"
-                               , "QStyleOptionTabV3"
-                               , "QStyleOptionTabWidgetFrame"
-                               , "QStyleOptionTabWidgetFrameV2"
-                               , "QStyleOptionTitleBar"
-                               , "QStyleOptionToolBar"
-                               , "QStyleOptionToolBox"
-                               , "QStyleOptionToolBoxV2"
-                               , "QStyleOptionToolButton"
-                               , "QStyleOptionViewItem"
-                               , "QStyleOptionViewItemV2"
-                               , "QStyleOptionViewItemV3"
-                               , "QStyleOptionViewItemV4"
-                               , "QStylePainter"
-                               , "QStylePlugin"
-                               , "QStyledItemDelegate"
-                               , "QSupportedWritingSystems"
-                               , "QSvgGenerator"
-                               , "QSvgRenderer"
-                               , "QSvgWidget"
-                               , "QSwipeGesture"
-                               , "QSymbianEvent"
-                               , "QSymbianGraphicsSystemHelper"
-                               , "QSyntaxHighlighter"
-                               , "QSysInfo"
-                               , "QSystemLocale"
-                               , "QSystemSemaphore"
-                               , "QSystemTrayIcon"
-                               , "QTabBar"
-                               , "QTabWidget"
-                               , "QTableView"
-                               , "QTableWidget"
-                               , "QTableWidgetItem"
-                               , "QTableWidgetSelectionRange"
-                               , "QTabletEvent"
-                               , "QTapAndHoldGesture"
-                               , "QTapGesture"
-                               , "QTcpServer"
-                               , "QTcpSocket"
-                               , "QTemporaryFile"
-                               , "QTest"
-                               , "QTestEventList"
-                               , "QTextBlock"
-                               , "QTextBlockFormat"
-                               , "QTextBlockGroup"
-                               , "QTextBlockUserData"
-                               , "QTextBoundaryFinder"
-                               , "QTextBrowser"
-                               , "QTextCharFormat"
-                               , "QTextCodec"
-                               , "QTextCodecPlugin"
-                               , "QTextCursor"
-                               , "QTextDecoder"
-                               , "QTextDocument"
-                               , "QTextDocumentFragment"
-                               , "QTextDocumentWriter"
-                               , "QTextEdit"
-                               , "QTextEncoder"
-                               , "QTextFormat"
-                               , "QTextFragment"
-                               , "QTextFrame"
-                               , "QTextFrameFormat"
-                               , "QTextImageFormat"
-                               , "QTextInlineObject"
-                               , "QTextItem"
-                               , "QTextLayout"
-                               , "QTextLength"
-                               , "QTextLine"
-                               , "QTextList"
-                               , "QTextListFormat"
-                               , "QTextObject"
-                               , "QTextObjectInterface"
-                               , "QTextOption"
-                               , "QTextStream"
-                               , "QTextTable"
-                               , "QTextTableCell"
-                               , "QTextTableCellFormat"
-                               , "QTextTableFormat"
-                               , "QThread"
-                               , "QThreadPool"
-                               , "QThreadStorage"
-                               , "QTileRules"
-                               , "QTime"
-                               , "QTimeEdit"
-                               , "QTimeLine"
-                               , "QTimer"
-                               , "QTimerEvent"
-                               , "QToolBar"
-                               , "QToolBox"
-                               , "QToolButton"
-                               , "QToolTip"
-                               , "QTouchEvent"
-                               , "QTouchEventSequence"
-                               , "QTransform"
-                               , "QTranslator"
-                               , "QTreeView"
-                               , "QTreeWidget"
-                               , "QTreeWidgetItem"
-                               , "QTreeWidgetItemIterator"
-                               , "QUdpSocket"
-                               , "QUiLoader"
-                               , "QUndoCommand"
-                               , "QUndoGroup"
-                               , "QUndoStack"
-                               , "QUndoView"
-                               , "QUrl"
-                               , "QUrlInfo"
-                               , "QUuid"
-                               , "QVBoxLayout"
-                               , "QValidator"
-                               , "QVarLengthArray"
-                               , "QVariant"
-                               , "QVariantAnimation"
-                               , "QVector"
-                               , "QVector2D"
-                               , "QVector3D"
-                               , "QVector4D"
-                               , "QVectorIterator"
-                               , "QVideoFrame"
-                               , "QVideoSurfaceFormat"
-                               , "QWSCalibratedMouseHandler"
-                               , "QWSClient"
-                               , "QWSEmbedWidget"
-                               , "QWSEvent"
-                               , "QWSGLWindowSurface"
-                               , "QWSInputMethod"
-                               , "QWSKeyboardHandler"
-                               , "QWSMouseHandler"
-                               , "QWSPointerCalibrationData"
-                               , "QWSScreenSaver"
-                               , "QWSServer"
-                               , "QWSWindow"
-                               , "QWaitCondition"
-                               , "QWeakPointer"
-                               , "QWebDatabase"
-                               , "QWebElement"
-                               , "QWebElementCollection"
-                               , "QWebFrame"
-                               , "QWebHistory"
-                               , "QWebHistoryInterface"
-                               , "QWebHistoryItem"
-                               , "QWebHitTestResult"
-                               , "QWebInspector"
-                               , "QWebPage"
-                               , "QWebPluginFactory"
-                               , "QWebSecurityOrigin"
-                               , "QWebSettings"
-                               , "QWebView"
-                               , "QWhatsThis"
-                               , "QWhatsThisClickedEvent"
-                               , "QWheelEvent"
-                               , "QWidget"
-                               , "QWidgetAction"
-                               , "QWidgetItem"
-                               , "QWidgetList"
-                               , "QWindowStateChangeEvent"
-                               , "QWindowsMime"
-                               , "QWindowsStyle"
-                               , "QWindowsVistaStyle"
-                               , "QWindowsXPStyle"
-                               , "QWizard"
-                               , "QWizardPage"
-                               , "QWriteLocker"
-                               , "QX11EmbedContainer"
-                               , "QX11EmbedWidget"
-                               , "QX11Info"
-                               , "QXmlAttributes"
-                               , "QXmlContentHandler"
-                               , "QXmlDTDHandler"
-                               , "QXmlDeclHandler"
-                               , "QXmlDefaultHandler"
-                               , "QXmlEntityResolver"
-                               , "QXmlErrorHandler"
-                               , "QXmlFormatter"
-                               , "QXmlInputSource"
-                               , "QXmlItem"
-                               , "QXmlLexicalHandler"
-                               , "QXmlLocator"
-                               , "QXmlName"
-                               , "QXmlNamePool"
-                               , "QXmlNamespaceSupport"
-                               , "QXmlNodeModelIndex"
-                               , "QXmlParseException"
-                               , "QXmlQuery"
-                               , "QXmlReader"
-                               , "QXmlResultItems"
-                               , "QXmlSchema"
-                               , "QXmlSchemaValidator"
-                               , "QXmlSerializer"
-                               , "QXmlSimpleReader"
-                               , "QXmlStreamAttribute"
-                               , "QXmlStreamAttributes"
-                               , "QXmlStreamEntityDeclaration"
-                               , "QXmlStreamEntityResolver"
-                               , "QXmlStreamNamespaceDeclaration"
-                               , "QXmlStreamNotationDeclaration"
-                               , "QXmlStreamReader"
-                               , "QXmlStreamWriter"
-                               , "Qt"
-                               , "QtConcurrent"
-                               ])
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C++" , "QtClassMember" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "connect"
-                               , "disconnect"
-                               , "qAbs"
-                               , "qAddPostRoutine"
-                               , "qAlpha"
-                               , "qBinaryFind"
-                               , "qBlue"
-                               , "qBound"
-                               , "qChecksum"
-                               , "qCompress"
-                               , "qCopy"
-                               , "qCopyBackward"
-                               , "qCount"
-                               , "qCritical"
-                               , "qDBusRegisterMetaType"
-                               , "qDebug"
-                               , "qDeleteAll"
-                               , "qEqual"
-                               , "qFatal"
-                               , "qFill"
-                               , "qFind"
-                               , "qFindChildren"
-                               , "qFuzzyCompare"
-                               , "qGray"
-                               , "qGreater"
-                               , "qGreen"
-                               , "qHash"
-                               , "qInstallMsgHandler"
-                               , "qLess"
-                               , "qLowerBound"
-                               , "qMacVersion"
-                               , "qMakePair"
-                               , "qMax"
-                               , "qMetaTypeId"
-                               , "qMin"
-                               , "qPrintable"
-                               , "qRed"
-                               , "qRegisterMetaType"
-                               , "qRegisterMetaTypeStreamOperators"
-                               , "qRgb"
-                               , "qRgba"
-                               , "qRound"
-                               , "qRound64"
-                               , "qSort"
-                               , "qStableSort"
-                               , "qSwap"
-                               , "qUncompress"
-                               , "qUpperBound"
-                               , "qVersion"
-                               , "qWarning"
-                               , "qWebKitMajorVersion"
-                               , "qWebKitMinorVersion"
-                               , "qWebKitVersion"
-                               , "q_check_ptr"
-                               , "qdbus_cast"
-                               , "qgetenv"
-                               , "qmlInfo"
-                               , "qmlRegisterInterface"
-                               , "qmlRegisterType"
-                               , "qmlRegisterTypeNotAvailable"
-                               , "qmlRegisterUncreatableType"
-                               , "qobject_cast"
-                               , "qrand"
-                               , "qsnprintf"
-                               , "qsrand"
-                               , "qstrcmp"
-                               , "qstrcpy"
-                               , "qstrdup"
-                               , "qstricmp"
-                               , "qstrlen"
-                               , "qstrncmp"
-                               , "qstrncpy"
-                               , "qstrnicmp"
-                               , "qstrnlen"
-                               , "qtTrId"
-                               , "qt_extension"
-                               , "qt_set_sequence_auto_mnemonic"
-                               , "qt_symbian_exception2Error"
-                               , "qt_symbian_exception2LeaveL"
-                               , "qt_symbian_throwIfError"
-                               , "qvsnprintf"
-                               , "staticMetaObject"
-                               , "tr"
-                               , "trUtf8"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "QAXCLASS"
-                               , "QAXFACTORY_BEGIN"
-                               , "QAXFACTORY_DEFAULT"
-                               , "QAXFACTORY_END"
-                               , "QAXFACTORY_EXPORT"
-                               , "QAXTYPE"
-                               , "QBENCHMARK"
-                               , "QBENCHMARK_ONCE"
-                               , "QCOMPARE"
-                               , "QDESIGNER_WIDGET_EXPORT"
-                               , "QEXPECT_FAIL"
-                               , "QFAIL"
-                               , "QFETCH"
-                               , "QML_DECLARE_TYPE"
-                               , "QML_DECLARE_TYPEINFO"
-                               , "QSKIP"
-                               , "QT3_SUPPORT"
-                               , "QT3_SUPPORT_CONSTRUCTOR"
-                               , "QT3_SUPPORT_VARIABLE"
-                               , "QT3_SUPPORT_WARNINGS"
-                               , "QTEST"
-                               , "QTEST_APPLESS_MAIN"
-                               , "QTEST_MAIN"
-                               , "QTEST_NOOP_MAIN"
-                               , "QTWEBKIT_VERSION"
-                               , "QTWEBKIT_VERSION_CHECK"
-                               , "QTWEBKIT_VERSION_STR"
-                               , "QT_ARCH_X86_64"
-                               , "QT_ASCII_CAST_WARN"
-                               , "QT_ASCII_CAST_WARN_CONSTRUCTOR"
-                               , "QT_BEGIN_HEADER"
-                               , "QT_BEGIN_NAMESPACE"
-                               , "QT_BUILD_KEY"
-                               , "QT_BUILD_KEY_COMPAT"
-                               , "QT_CATCH"
-                               , "QT_COMPAT"
-                               , "QT_COMPAT_WARNINGS"
-                               , "QT_DEBUG"
-                               , "QT_DEPRECATED"
-                               , "QT_DEPRECATED_CONSTRUCTOR"
-                               , "QT_DEPRECATED_VARIABLE"
-                               , "QT_EDITION"
-                               , "QT_EDITION_ACADEMIC"
-                               , "QT_EDITION_CONSOLE"
-                               , "QT_EDITION_DESKTOP"
-                               , "QT_EDITION_DESKTOPLIGHT"
-                               , "QT_EDITION_EDUCATIONAL"
-                               , "QT_EDITION_EVALUATION"
-                               , "QT_EDITION_OPENSOURCE"
-                               , "QT_EDITION_UNIVERSAL"
-                               , "QT_END_HEADER"
-                               , "QT_END_NAMESPACE"
-                               , "QT_ENSURE_STACK_ALIGNED_FOR_SSE"
-                               , "QT_FASTCALL"
-                               , "QT_FORWARD_DECLARE_CLASS"
-                               , "QT_FORWARD_DECLARE_STRUCT"
-                               , "QT_HAVE_ARMV6"
-                               , "QT_LARGEFILE_SUPPORT"
-                               , "QT_LICENSED_MODULE"
-                               , "QT_LINKED_OPENSSL"
-                               , "QT_LINUXBASE"
-                               , "QT_MAC_USE_COCOA"
-                               , "QT_MOC_COMPAT"
-                               , "QT_MODULE"
-                               , "QT_MODULE_ACTIVEQT"
-                               , "QT_MODULE_CORE"
-                               , "QT_MODULE_DBUS"
-                               , "QT_MODULE_DECLARATIVE"
-                               , "QT_MODULE_GRAPHICSVIEW"
-                               , "QT_MODULE_GUI"
-                               , "QT_MODULE_HELP"
-                               , "QT_MODULE_MULTIMEDIA"
-                               , "QT_MODULE_NETWORK"
-                               , "QT_MODULE_OPENGL"
-                               , "QT_MODULE_OPENVG"
-                               , "QT_MODULE_QT3SUPPORT"
-                               , "QT_MODULE_QT3SUPPORTLIGHT"
-                               , "QT_MODULE_SCRIPT"
-                               , "QT_MODULE_SCRIPTTOOLS"
-                               , "QT_MODULE_SQL"
-                               , "QT_MODULE_SVG"
-                               , "QT_MODULE_TEST"
-                               , "QT_MODULE_XML"
-                               , "QT_MODULE_XMLPATTERNS"
-                               , "QT_NO_ACCESSIBILITY"
-                               , "QT_NO_ANIMATION"
-                               , "QT_NO_ARM_EABI"
-                               , "QT_NO_BEARERMANAGEMENT"
-                               , "QT_NO_BUTTONGROUP"
-                               , "QT_NO_CALENDARWIDGET"
-                               , "QT_NO_CAST_FROM_ASCII"
-                               , "QT_NO_CAST_FROM_BYTEARRAY"
-                               , "QT_NO_CAST_TO_ASCII"
-                               , "QT_NO_CLIPBOARD"
-                               , "QT_NO_CODECS"
-                               , "QT_NO_COLORDIALOG"
-                               , "QT_NO_COLUMNVIEW"
-                               , "QT_NO_COMBOBOX"
-                               , "QT_NO_COMPLETER"
-                               , "QT_NO_CONCURRENT"
-                               , "QT_NO_CONCURRENT_FILTER"
-                               , "QT_NO_CONCURRENT_MAP"
-                               , "QT_NO_CONTEXTMENU"
-                               , "QT_NO_COP"
-                               , "QT_NO_CRASHHANDLER"
-                               , "QT_NO_CUPS"
-                               , "QT_NO_DATAWIDGETMAPPER"
-                               , "QT_NO_DATESTRING"
-                               , "QT_NO_DATETIMEEDIT"
-                               , "QT_NO_DBUS"
-                               , "QT_NO_DEBUG"
-                               , "QT_NO_DEBUG_STREAM"
-                               , "QT_NO_DECLARATIVE"
-                               , "QT_NO_DIAL"
-                               , "QT_NO_DIRMODEL"
-                               , "QT_NO_DOCKWIDGET"
-                               , "QT_NO_DRAGANDDROP"
-                               , "QT_NO_EGL"
-                               , "QT_NO_ERRORMESSAGE"
-                               , "QT_NO_EXCEPTIONS"
-                               , "QT_NO_FILEDIALOG"
-                               , "QT_NO_FILESYSTEMMODEL"
-                               , "QT_NO_FONTCOMBOBOX"
-                               , "QT_NO_FONTCONFIG"
-                               , "QT_NO_FONTDIALOG"
-                               , "QT_NO_FPU"
-                               , "QT_NO_FSCOMPLETER"
-                               , "QT_NO_FTP"
-                               , "QT_NO_GETIFADDRS"
-                               , "QT_NO_GRAPHICSEFFECT"
-                               , "QT_NO_GRAPHICSSVGITEM"
-                               , "QT_NO_GRAPHICSVIEW"
-                               , "QT_NO_GSTREAMER"
-                               , "QT_NO_HOSTINFO"
-                               , "QT_NO_HTTP"
-                               , "QT_NO_ICD"
-                               , "QT_NO_IM"
-                               , "QT_NO_IMAGEFORMAT_JPEG"
-                               , "QT_NO_IMAGEFORMAT_MNG"
-                               , "QT_NO_IMAGEFORMAT_PNG"
-                               , "QT_NO_IMAGEFORMAT_TIFF"
-                               , "QT_NO_IMAGEFORMAT_XPM"
-                               , "QT_NO_INPUTDIALOG"
-                               , "QT_NO_ITEMVIEWS"
-                               , "QT_NO_LIBRARY"
-                               , "QT_NO_LISTVIEW"
-                               , "QT_NO_LISTWIDGET"
-                               , "QT_NO_LPR"
-                               , "QT_NO_MAINWINDOW"
-                               , "QT_NO_MDIAREA"
-                               , "QT_NO_MENU"
-                               , "QT_NO_MENUBAR"
-                               , "QT_NO_MITSHM"
-                               , "QT_NO_MULTIMEDIA"
-                               , "QT_NO_NAS"
-                               , "QT_NO_NETWORKDISKCACHE"
-                               , "QT_NO_OPENGL"
-                               , "QT_NO_OPENVG"
-                               , "QT_NO_PAINT_DEBUG"
-                               , "QT_NO_PHONON"
-                               , "QT_NO_PHONON_EFFECTWIDGET"
-                               , "QT_NO_PHONON_PLATFORMPLUGIN"
-                               , "QT_NO_PHONON_SEEKSLIDER"
-                               , "QT_NO_PHONON_SETTINGSGROUP"
-                               , "QT_NO_PHONON_VIDEOPLAYER"
-                               , "QT_NO_PHONON_VOLUMEFADEREFFECT"
-                               , "QT_NO_PHONON_VOLUMESLIDER"
-                               , "QT_NO_PRINTDIALOG"
-                               , "QT_NO_PRINTER"
-                               , "QT_NO_PRINTPREVIEWDIALOG"
-                               , "QT_NO_PRINTPREVIEWWIDGET"
-                               , "QT_NO_PROCESS"
-                               , "QT_NO_PROGRESSDIALOG"
-                               , "QT_NO_PROXYMODEL"
-                               , "QT_NO_PULSEAUDIO"
-                               , "QT_NO_QDEBUG_MACRO"
-                               , "QT_NO_QFUTURE"
-                               , "QT_NO_QWARNING_MACRO"
-                               , "QT_NO_QWS_CURSOR"
-                               , "QT_NO_QWS_DECORATION_STYLED"
-                               , "QT_NO_QWS_DECORATION_WINDOWS"
-                               , "QT_NO_QWS_DYNAMICSCREENTRANSFORMATION"
-                               , "QT_NO_QWS_INPUTMETHODS"
-                               , "QT_NO_QWS_MANAGER"
-                               , "QT_NO_QWS_MULTIPROCESS"
-                               , "QT_NO_QWS_SOUNDSERVER"
-                               , "QT_NO_QWS_TRANSFORMED"
-                               , "QT_NO_QWS_VNC"
-                               , "QT_NO_RAWFONT"
-                               , "QT_NO_S60"
-                               , "QT_NO_SCRIPT"
-                               , "QT_NO_SCRIPTTOOLS"
-                               , "QT_NO_SCROLLAREA"
-                               , "QT_NO_SCROLLBAR"
-                               , "QT_NO_SESSIONMANAGER"
-                               , "QT_NO_SHAPE"
-                               , "QT_NO_SHAREDMEMORY"
-                               , "QT_NO_SOCKS5"
-                               , "QT_NO_SOFTKEYMANAGER"
-                               , "QT_NO_SORTFILTERPROXYMODEL"
-                               , "QT_NO_SPINBOX"
-                               , "QT_NO_SPLITTER"
-                               , "QT_NO_STANDARDITEMMODEL"
-                               , "QT_NO_STATEMACHINE"
-                               , "QT_NO_STL_WCHAR"
-                               , "QT_NO_STRINGLISTMODEL"
-                               , "QT_NO_STYLE_CDE"
-                               , "QT_NO_STYLE_CLEANLOOKS"
-                               , "QT_NO_STYLE_GTK"
-                               , "QT_NO_STYLE_PLASTIQUE"
-                               , "QT_NO_STYLE_S60"
-                               , "QT_NO_STYLE_STYLESHEET"
-                               , "QT_NO_STYLE_WINDOWSCE"
-                               , "QT_NO_STYLE_WINDOWSMOBILE"
-                               , "QT_NO_STYLE_WINDOWSVISTA"
-                               , "QT_NO_STYLE_WINDOWSXP"
-                               , "QT_NO_SVG"
-                               , "QT_NO_SVGGENERATOR"
-                               , "QT_NO_SVGRENDERER"
-                               , "QT_NO_SVGWIDGET"
-                               , "QT_NO_SXE"
-                               , "QT_NO_SYNTAXHIGHLIGHTER"
-                               , "QT_NO_SYSTEMSEMAPHORE"
-                               , "QT_NO_TABBAR"
-                               , "QT_NO_TABDIALOG"
-                               , "QT_NO_TABLET"
-                               , "QT_NO_TABLEVIEW"
-                               , "QT_NO_TABLEWIDGET"
-                               , "QT_NO_TABWIDGET"
-                               , "QT_NO_TEMPLATE_TEMPLATE_PARAMETERS"
-                               , "QT_NO_TEXTBROWSER"
-                               , "QT_NO_TEXTCODECPLUGIN"
-                               , "QT_NO_TEXTEDIT"
-                               , "QT_NO_TEXTODFWRITER"
-                               , "QT_NO_TOOLBAR"
-                               , "QT_NO_TOOLBOX"
-                               , "QT_NO_TOOLBUTTON"
-                               , "QT_NO_TRANSLATION_UTF8"
-                               , "QT_NO_TREEVIEW"
-                               , "QT_NO_TREEWIDGET"
-                               , "QT_NO_UNDOGROUP"
-                               , "QT_NO_UNDOSTACK"
-                               , "QT_NO_UNDOVIEW"
-                               , "QT_NO_URL_CAST_FROM_STRING"
-                               , "QT_NO_WARNINGS"
-                               , "QT_NO_WEBKIT"
-                               , "QT_NO_WHATSTHIS"
-                               , "QT_NO_WIN_ACTIVEQT"
-                               , "QT_NO_WIZARD"
-                               , "QT_NO_WORKSPACE"
-                               , "QT_NO_XCURSOR"
-                               , "QT_NO_XFIXES"
-                               , "QT_NO_XINERAMA"
-                               , "QT_NO_XINPUT"
-                               , "QT_NO_XKB"
-                               , "QT_NO_XMLPATTERNS"
-                               , "QT_NO_XMLSTREAMREADER"
-                               , "QT_NO_XMLSTREAMWRITER"
-                               , "QT_NO_XRANDR"
-                               , "QT_NO_XRENDER"
-                               , "QT_NO_XSYNC"
-                               , "QT_NO_XVIDEO"
-                               , "QT_NO_ZLIB"
-                               , "QT_PACKAGEDATE_STR"
-                               , "QT_PACKAGE_TAG"
-                               , "QT_POINTER_SIZE"
-                               , "QT_PREPEND_NAMESPACE"
-                               , "QT_PRODUCT_LICENSE"
-                               , "QT_PRODUCT_LICENSEE"
-                               , "QT_RETHROW"
-                               , "QT_STATIC_CONST"
-                               , "QT_STATIC_CONST_IMPL"
-                               , "QT_STRINGIFY"
-                               , "QT_STRINGIFY2"
-                               , "QT_SUPPORTS"
-                               , "QT_SYMBIAN_SUPPORTS_ADVANCED_POINTER"
-                               , "QT_SYMBIAN_SUPPORTS_SGIMAGE"
-                               , "QT_THROW"
-                               , "QT_TRANSLATE_NOOP"
-                               , "QT_TRANSLATE_NOOP3"
-                               , "QT_TRANSLATE_NOOP3_UTF8"
-                               , "QT_TRANSLATE_NOOP_UTF8"
-                               , "QT_TRAP_THROWING"
-                               , "QT_TRID_NOOP"
-                               , "QT_TRY"
-                               , "QT_TRYCATCH_ERROR"
-                               , "QT_TRYCATCH_LEAVING"
-                               , "QT_TR_NOOP"
-                               , "QT_TR_NOOP_UTF8"
-                               , "QT_USE_MATH_H_FLOATS"
-                               , "QT_USE_NAMESPACE"
-                               , "QT_USE_QSTRINGBUILDER"
-                               , "QT_VERSION"
-                               , "QT_VERSION_CHECK"
-                               , "QT_VERSION_STR"
-                               , "QT_VISIBILITY_AVAILABLE"
-                               , "QT_WA"
-                               , "QT_WA_INLINE"
-                               , "QT_WIN_CALLBACK"
-                               , "QVERIFY"
-                               , "QVERIFY2"
-                               , "QWARN"
-                               , "QWIDGETSIZE_MAX"
-                               , "Q_ALIGNOF"
-                               , "Q_ARG"
-                               , "Q_ASSERT"
-                               , "Q_ASSERT_X"
-                               , "Q_ATOMIC_INT_FETCH_AND_ADD_IS_ALWAYS_NATIVE"
-                               , "Q_ATOMIC_INT_FETCH_AND_ADD_IS_NOT_NATIVE"
-                               , "Q_ATOMIC_INT_FETCH_AND_ADD_IS_SOMETIMES_NATIVE"
-                               , "Q_ATOMIC_INT_FETCH_AND_ADD_IS_WAIT_FREE"
-                               , "Q_ATOMIC_INT_FETCH_AND_STORE_IS_ALWAYS_NATIVE"
-                               , "Q_ATOMIC_INT_FETCH_AND_STORE_IS_NOT_NATIVE"
-                               , "Q_ATOMIC_INT_FETCH_AND_STORE_IS_SOMETIMES_NATIVE"
-                               , "Q_ATOMIC_INT_FETCH_AND_STORE_IS_WAIT_FREE"
-                               , "Q_ATOMIC_INT_REFERENCE_COUNTING_IS_ALWAYS_NATIVE"
-                               , "Q_ATOMIC_INT_REFERENCE_COUNTING_IS_NOT_NATIVE"
-                               , "Q_ATOMIC_INT_REFERENCE_COUNTING_IS_SOMETIMES_NATIVE"
-                               , "Q_ATOMIC_INT_REFERENCE_COUNTING_IS_WAIT_FREE"
-                               , "Q_ATOMIC_INT_TEST_AND_SET_IS_ALWAYS_NATIVE"
-                               , "Q_ATOMIC_INT_TEST_AND_SET_IS_NOT_NATIVE"
-                               , "Q_ATOMIC_INT_TEST_AND_SET_IS_SOMETIMES_NATIVE"
-                               , "Q_ATOMIC_INT_TEST_AND_SET_IS_WAIT_FREE"
-                               , "Q_BIG_ENDIAN"
-                               , "Q_BROKEN_DEBUG_STREAM"
-                               , "Q_BROKEN_TEMPLATE_SPECIALIZATION"
-                               , "Q_BYTE_ORDER"
-                               , "Q_CANNOT_DELETE_CONSTANT"
-                               , "Q_CC_BOR"
-                               , "Q_CC_CDS"
-                               , "Q_CC_CLANG"
-                               , "Q_CC_COMEAU"
-                               , "Q_CC_DEC"
-                               , "Q_CC_DIAB"
-                               , "Q_CC_EDG"
-                               , "Q_CC_GCCE"
-                               , "Q_CC_GHS"
-                               , "Q_CC_GNU"
-                               , "Q_CC_HIGHC"
-                               , "Q_CC_HP"
-                               , "Q_CC_HPACC"
-                               , "Q_CC_INTEL"
-                               , "Q_CC_KAI"
-                               , "Q_CC_MINGW"
-                               , "Q_CC_MIPS"
-                               , "Q_CC_MSVC"
-                               , "Q_CC_MSVC_NET"
-                               , "Q_CC_MWERKS"
-                               , "Q_CC_NOKIAX86"
-                               , "Q_CC_OC"
-                               , "Q_CC_PGI"
-                               , "Q_CC_RVCT"
-                               , "Q_CC_SUN"
-                               , "Q_CC_SYM"
-                               , "Q_CC_USLC"
-                               , "Q_CC_WAT"
-                               , "Q_CC_XLC"
-                               , "Q_CHECK_PTR"
-                               , "Q_CLASSINFO"
-                               , "Q_CLEANUP_RESOURCE"
-                               , "Q_COMPILER_AUTO_TYPE"
-                               , "Q_COMPILER_CLASS_ENUM"
-                               , "Q_COMPILER_CONSTEXPR"
-                               , "Q_COMPILER_DECLTYPE"
-                               , "Q_COMPILER_DEFAULT_DELETE_MEMBERS"
-                               , "Q_COMPILER_EXTERN_TEMPLATES"
-                               , "Q_COMPILER_INITIALIZER_LISTS"
-                               , "Q_COMPILER_LAMBDA"
-                               , "Q_COMPILER_MANGLES_RETURN_TYPE"
-                               , "Q_COMPILER_RVALUE_REFS"
-                               , "Q_COMPILER_UNICODE_STRINGS"
-                               , "Q_COMPILER_VARIADIC_TEMPLATES"
-                               , "Q_COMPLEX_TYPE"
-                               , "Q_CONSTRUCTOR_FUNCTION"
-                               , "Q_CONSTRUCTOR_FUNCTION0"
-                               , "Q_C_CALLBACKS"
-                               , "Q_D"
-                               , "Q_DECLARE_EXTENSION_INTERFACE"
-                               , "Q_DECLARE_FLAGS"
-                               , "Q_DECLARE_INCOMPATIBLE_FLAGS"
-                               , "Q_DECLARE_INTERFACE"
-                               , "Q_DECLARE_METATYPE"
-                               , "Q_DECLARE_OPERATORS_FOR_FLAGS"
-                               , "Q_DECLARE_PRIVATE"
-                               , "Q_DECLARE_PRIVATE_D"
-                               , "Q_DECLARE_PUBLIC"
-                               , "Q_DECLARE_SHARED"
-                               , "Q_DECLARE_SHARED_STL"
-                               , "Q_DECLARE_TR_FUNCTIONS"
-                               , "Q_DECLARE_TYPEINFO"
-                               , "Q_DECLARE_TYPEINFO_BODY"
-                               , "Q_DECL_ALIGN"
-                               , "Q_DECL_CONSTEXPR"
-                               , "Q_DECL_CONSTRUCTOR_DEPRECATED"
-                               , "Q_DECL_DEPRECATED"
-                               , "Q_DECL_FINAL"
-                               , "Q_DECL_HIDDEN"
-                               , "Q_DECL_IMPORT"
-                               , "Q_DECL_NOEXCEPT"
-                               , "Q_DECL_NOTHROW"
-                               , "Q_DECL_OVERRIDE"
-                               , "Q_DECL_VARIABLE_DEPRECATED"
-                               , "Q_DESTRUCTOR_FUNCTION"
-                               , "Q_DESTRUCTOR_FUNCTION0"
-                               , "Q_DISABLE_COPY"
-                               , "Q_DUMMY_COMPARISON_OPERATOR"
-                               , "Q_DUMMY_TYPE"
-                               , "Q_EMIT"
-                               , "Q_ENUMS"
-                               , "Q_EXPORT_PLUGIN2"
-                               , "Q_FLAGS"
-                               , "Q_FOREACH"
-                               , "Q_FOREVER"
-                               , "Q_FULL_TEMPLATE_INSTANTIATION"
-                               , "Q_FUNC_INFO"
-                               , "Q_GLOBAL_STATIC"
-                               , "Q_GLOBAL_STATIC_INIT"
-                               , "Q_GLOBAL_STATIC_WITH_ARGS"
-                               , "Q_GLOBAL_STATIC_WITH_INITIALIZER"
-                               , "Q_IMPORT_PLUGIN"
-                               , "Q_INIT_RESOURCE"
-                               , "Q_INIT_RESOURCE_EXTERN"
-                               , "Q_INLINE_TEMPLATE"
-                               , "Q_INT64_C"
-                               , "Q_INTERFACES"
-                               , "Q_INVOKABLE"
-                               , "Q_LIKELY"
-                               , "Q_LITTLE_ENDIAN"
-                               , "Q_MOVABLE_TYPE"
-                               , "Q_NOREPLY"
-                               , "Q_NO_BOOL_TYPE"
-                               , "Q_NO_DATA_RELOCATION"
-                               , "Q_NO_DECLARED_NOT_DEFINED"
-                               , "Q_NO_DEPRECATED_CONSTRUCTORS"
-                               , "Q_NO_EXPLICIT_KEYWORD"
-                               , "Q_NO_PACKED_REFERENCE"
-                               , "Q_NO_POSIX_SIGNALS"
-                               , "Q_NO_TEMPLATE_FRIENDS"
-                               , "Q_NO_USING_KEYWORD"
-                               , "Q_NULLPTR"
-                               , "Q_OBJECT"
-                               , "Q_OF_ELF"
-                               , "Q_OS_AIX"
-                               , "Q_OS_BSD4"
-                               , "Q_OS_BSDI"
-                               , "Q_OS_CYGWIN"
-                               , "Q_OS_DARWIN"
-                               , "Q_OS_DARWIN32"
-                               , "Q_OS_DARWIN64"
-                               , "Q_OS_DGUX"
-                               , "Q_OS_DYNIX"
-                               , "Q_OS_FREEBSD"
-                               , "Q_OS_HPUX"
-                               , "Q_OS_HURD"
-                               , "Q_OS_INTEGRITY"
-                               , "Q_OS_IRIX"
-                               , "Q_OS_LINUX"
-                               , "Q_OS_LYNX"
-                               , "Q_OS_MAC"
-                               , "Q_OS_MAC32"
-                               , "Q_OS_MAC64"
-                               , "Q_OS_MACX"
-                               , "Q_OS_MSDOS"
-                               , "Q_OS_NACL"
-                               , "Q_OS_NETBSD"
-                               , "Q_OS_OPENBSD"
-                               , "Q_OS_OS2"
-                               , "Q_OS_OS2EMX"
-                               , "Q_OS_OSF"
-                               , "Q_OS_QNX"
-                               , "Q_OS_RELIANT"
-                               , "Q_OS_SCO"
-                               , "Q_OS_SOLARIS"
-                               , "Q_OS_SYMBIAN"
-                               , "Q_OS_ULTRIX"
-                               , "Q_OS_UNIX"
-                               , "Q_OS_UNIXWARE"
-                               , "Q_OS_VXWORKS"
-                               , "Q_OS_WIN"
-                               , "Q_OS_WIN32"
-                               , "Q_OS_WIN64"
-                               , "Q_OS_WINCE"
-                               , "Q_OUTOFLINE_TEMPLATE"
-                               , "Q_PACKED"
-                               , "Q_PRIMITIVE_TYPE"
-                               , "Q_PROPERTY"
-                               , "Q_Q"
-                               , "Q_REQUIRED_RESULT"
-                               , "Q_RETURN_ARG"
-                               , "Q_SCRIPT_DECLARE_QMETAOBJECT"
-                               , "Q_SIGNAL"
-                               , "Q_SIGNALS"
-                               , "Q_SLOT"
-                               , "Q_SLOTS"
-                               , "Q_STATIC_TYPE"
-                               , "Q_SYMBIAN_FIXED_POINTER_CURSORS"
-                               , "Q_SYMBIAN_HAS_EXTENDED_BITMAP_TYPE"
-                               , "Q_SYMBIAN_SEMITRANSPARENT_BG_SURFACE"
-                               , "Q_SYMBIAN_SUPPORTS_FIXNATIVEORIENTATION"
-                               , "Q_SYMBIAN_SUPPORTS_MULTIPLE_SCREENS"
-                               , "Q_SYMBIAN_SUPPORTS_SURFACES"
-                               , "Q_SYMBIAN_TRANSITION_EFFECTS"
-                               , "Q_SYMBIAN_WINDOW_SIZE_CACHE"
-                               , "Q_TEMPLATEDLL"
-                               , "Q_TYPENAME"
-                               , "Q_TYPEOF"
-                               , "Q_UINT64_C"
-                               , "Q_UNLIKELY"
-                               , "Q_UNUSED"
-                               , "Q_WRONG_SB_CTYPE_MACROS"
-                               , "Q_WS_MAC"
-                               , "Q_WS_MAC32"
-                               , "Q_WS_MAC64"
-                               , "Q_WS_MACX"
-                               , "Q_WS_PM"
-                               , "Q_WS_S60"
-                               , "Q_WS_WIN"
-                               , "Q_WS_WIN16"
-                               , "Q_WS_WIN32"
-                               , "Q_WS_WIN64"
-                               , "Q_WS_WINCE"
-                               , "Q_WS_WINCE_WM"
-                               , "Q_WS_X11"
-                               , "SIGNAL"
-                               , "SLOT"
-                               , "emit"
-                               , "foreach"
-                               , "forever"
-                               , "qApp"
-                               , "signals"
-                               , "slots"
-                               ])
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "C++" , "DetectQt4Extensions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "ISO C++" , "" )
-                      , 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
-              }
-          )
-        , ( "QtClassMember"
-          , Context
-              { cName = "QtClassMember"
-              , cSyntax = "C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "C++" , "DetectNSEnd" )
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ExtensionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Alex Turbov (i.zaufi@gmail.com)"
-  , sVersion = "3"
-  , sLicense = "LGPL"
-  , sExtensions =
-      [ "*.c++"
-      , "*.cxx"
-      , "*.cpp"
-      , "*.cc"
-      , "*.C"
-      , "*.h"
-      , "*.hh"
-      , "*.H"
-      , "*.h++"
-      , "*.hxx"
-      , "*.hpp"
-      , "*.hcc"
-      , "*.moc"
-      ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"C++\", sFilename = \"cpp.xml\", sShortname = \"Cpp\", sContexts = fromList [(\"DetectNSEnd\",Context {cName = \"DetectNSEnd\", cSyntax = \"C++\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"!% &()+-/.*<=>?[]{|}~^,;\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = AnyChar \" \", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"DetectQt4Extensions\",Context {cName = \"DetectQt4Extensions\", cSyntax = \"C++\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"QObjectList\",\"QRgb\",\"Q_PID\",\"QtMsgHandler\",\"QtMsgType\",\"WId\",\"qScriptConnect\",\"qScriptDisconnect\",\"qScriptRegisterMetaType\",\"qScriptRegisterSequenceMetaType\",\"qScriptValueFromSequence\",\"qScriptValueToSequence\",\"qint16\",\"qint32\",\"qint64\",\"qint8\",\"qlonglong\",\"qptrdiff\",\"qreal\",\"quint16\",\"quint32\",\"quint64\",\"quint8\",\"quintptr\",\"qulonglong\",\"uchar\",\"uint\",\"ulong\",\"ushort\"])), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"Phonon\",\"QAbstractAnimation\",\"QAbstractButton\",\"QAbstractEventDispatcher\",\"QAbstractExtensionFactory\",\"QAbstractExtensionManager\",\"QAbstractFileEngine\",\"QAbstractFileEngineHandler\",\"QAbstractFileEngineIterator\",\"QAbstractFontEngine\",\"QAbstractFormBuilder\",\"QAbstractGraphicsShapeItem\",\"QAbstractItemDelegate\",\"QAbstractItemModel\",\"QAbstractItemView\",\"QAbstractListModel\",\"QAbstractMessageHandler\",\"QAbstractNetworkCache\",\"QAbstractPrintDialog\",\"QAbstractProxyModel\",\"QAbstractScrollArea\",\"QAbstractSlider\",\"QAbstractSocket\",\"QAbstractSpinBox\",\"QAbstractState\",\"QAbstractTableModel\",\"QAbstractTextDocumentLayout\",\"QAbstractTransition\",\"QAbstractUriResolver\",\"QAbstractVideoBuffer\",\"QAbstractVideoSurface\",\"QAbstractXmlNodeModel\",\"QAbstractXmlReceiver\",\"QAccessible\",\"QAccessibleBridge\",\"QAccessibleBridgePlugin\",\"QAccessibleEvent\",\"QAccessibleInterface\",\"QAccessibleObject\",\"QAccessiblePlugin\",\"QAccessibleWidget\",\"QAction\",\"QActionEvent\",\"QActionGroup\",\"QAnimationGroup\",\"QApplication\",\"QAtomicInt\",\"QAtomicPointer\",\"QAudioDeviceInfo\",\"QAudioFormat\",\"QAudioInput\",\"QAudioOutput\",\"QAuthenticator\",\"QAxAggregated\",\"QAxBase\",\"QAxBindable\",\"QAxFactory\",\"QAxObject\",\"QAxScript\",\"QAxScriptEngine\",\"QAxScriptManager\",\"QAxWidget\",\"QBasicTimer\",\"QBitArray\",\"QBitmap\",\"QBool\",\"QBoxLayout\",\"QBrush\",\"QBuffer\",\"QButtonGroup\",\"QByteArray\",\"QByteArrayMatcher\",\"QCDEStyle\",\"QCache\",\"QCalendarWidget\",\"QChar\",\"QCheckBox\",\"QChildEvent\",\"QCleanlooksStyle\",\"QClipboard\",\"QCloseEvent\",\"QColor\",\"QColorDialog\",\"QColormap\",\"QColumnView\",\"QComboBox\",\"QCommandLinkButton\",\"QCommonStyle\",\"QCompleter\",\"QConicalGradient\",\"QContextMenuEvent\",\"QContiguousCache\",\"QCopChannel\",\"QCoreApplication\",\"QCryptographicHash\",\"QCursor\",\"QCustomRasterPaintDevice\",\"QDBusAbstractAdaptor\",\"QDBusAbstractInterface\",\"QDBusArgument\",\"QDBusConnection\",\"QDBusConnectionInterface\",\"QDBusContext\",\"QDBusError\",\"QDBusInterface\",\"QDBusMessage\",\"QDBusObjectPath\",\"QDBusPendingCall\",\"QDBusPendingCallWatcher\",\"QDBusPendingReply\",\"QDBusReply\",\"QDBusServiceWatcher\",\"QDBusSignature\",\"QDBusUnixFileDescriptor\",\"QDBusVariant\",\"QDataStream\",\"QDataWidgetMapper\",\"QDate\",\"QDateEdit\",\"QDateTime\",\"QDateTimeEdit\",\"QDebug\",\"QDeclarativeComponent\",\"QDeclarativeContext\",\"QDeclarativeEngine\",\"QDeclarativeError\",\"QDeclarativeExpression\",\"QDeclarativeExtensionPlugin\",\"QDeclarativeImageProvider\",\"QDeclarativeItem\",\"QDeclarativeListProperty\",\"QDeclarativeListReference\",\"QDeclarativeNetworkAccessManagerFactory\",\"QDeclarativeParserStatus\",\"QDeclarativeProperty\",\"QDeclarativePropertyMap\",\"QDeclarativePropertyValueSource\",\"QDeclarativeScriptString\",\"QDeclarativeView\",\"QDecoration\",\"QDecorationDefault\",\"QDecorationFactory\",\"QDecorationPlugin\",\"QDesignerActionEditorInterface\",\"QDesignerContainerExtension\",\"QDesignerCustomWidgetCollectionInterface\",\"QDesignerCustomWidgetInterface\",\"QDesignerDynamicPropertySheetExtension\",\"QDesignerFormEditorInterface\",\"QDesignerFormWindowCursorInterface\",\"QDesignerFormWindowInterface\",\"QDesignerFormWindowManagerInterface\",\"QDesignerMemberSheetExtension\",\"QDesignerObjectInspectorInterface\",\"QDesignerPropertyEditorInterface\",\"QDesignerPropertySheetExtension\",\"QDesignerTaskMenuExtension\",\"QDesignerWidgetBoxInterface\",\"QDesktopServices\",\"QDesktopWidget\",\"QDial\",\"QDialog\",\"QDialogButtonBox\",\"QDir\",\"QDirIterator\",\"QDirectPainter\",\"QDockWidget\",\"QDomAttr\",\"QDomCDATASection\",\"QDomCharacterData\",\"QDomComment\",\"QDomDocument\",\"QDomDocumentFragment\",\"QDomDocumentType\",\"QDomElement\",\"QDomEntity\",\"QDomEntityReference\",\"QDomImplementation\",\"QDomNamedNodeMap\",\"QDomNode\",\"QDomNodeList\",\"QDomNotation\",\"QDomProcessingInstruction\",\"QDomText\",\"QDoubleSpinBox\",\"QDoubleValidator\",\"QDrag\",\"QDragEnterEvent\",\"QDragLeaveEvent\",\"QDragMoveEvent\",\"QDropEvent\",\"QDynamicPropertyChangeEvent\",\"QEasingCurve\",\"QElapsedTimer\",\"QErrorMessage\",\"QEvent\",\"QEventLoop\",\"QEventTransition\",\"QExplicitlySharedDataPointer\",\"QExtensionFactory\",\"QExtensionManager\",\"QFSFileEngine\",\"QFile\",\"QFileDialog\",\"QFileIconProvider\",\"QFileInfo\",\"QFileInfoList\",\"QFileOpenEvent\",\"QFileSystemModel\",\"QFileSystemWatcher\",\"QFinalState\",\"QFlag\",\"QFlags\",\"QFocusEvent\",\"QFocusFrame\",\"QFont\",\"QFontComboBox\",\"QFontDatabase\",\"QFontDialog\",\"QFontEngineInfo\",\"QFontEnginePlugin\",\"QFontInfo\",\"QFontMetrics\",\"QFontMetricsF\",\"QFormBuilder\",\"QFormLayout\",\"QFrame\",\"QFtp\",\"QFuture\",\"QFutureIterator\",\"QFutureSynchronizer\",\"QFutureWatcher\",\"QGLBuffer\",\"QGLColormap\",\"QGLContext\",\"QGLFormat\",\"QGLFramebufferObject\",\"QGLFramebufferObjectFormat\",\"QGLFunctions\",\"QGLPixelBuffer\",\"QGLShader\",\"QGLShaderProgram\",\"QGLWidget\",\"QGenericArgument\",\"QGenericMatrix\",\"QGenericPlugin\",\"QGenericPluginFactory\",\"QGenericReturnArgument\",\"QGesture\",\"QGestureEvent\",\"QGestureRecognizer\",\"QGlyphRun\",\"QGradient\",\"QGraphicsAnchor\",\"QGraphicsAnchorLayout\",\"QGraphicsBlurEffect\",\"QGraphicsColorizeEffect\",\"QGraphicsDropShadowEffect\",\"QGraphicsEffect\",\"QGraphicsEllipseItem\",\"QGraphicsGridLayout\",\"QGraphicsItem\",\"QGraphicsItemAnimation\",\"QGraphicsItemGroup\",\"QGraphicsLayout\",\"QGraphicsLayoutItem\",\"QGraphicsLineItem\",\"QGraphicsLinearLayout\",\"QGraphicsObject\",\"QGraphicsOpacityEffect\",\"QGraphicsPathItem\",\"QGraphicsPixmapItem\",\"QGraphicsPolygonItem\",\"QGraphicsProxyWidget\",\"QGraphicsRectItem\",\"QGraphicsRotation\",\"QGraphicsScale\",\"QGraphicsScene\",\"QGraphicsSceneContextMenuEvent\",\"QGraphicsSceneDragDropEvent\",\"QGraphicsSceneEvent\",\"QGraphicsSceneHelpEvent\",\"QGraphicsSceneHoverEvent\",\"QGraphicsSceneMouseEvent\",\"QGraphicsSceneMoveEvent\",\"QGraphicsSceneResizeEvent\",\"QGraphicsSceneWheelEvent\",\"QGraphicsSimpleTextItem\",\"QGraphicsSvgItem\",\"QGraphicsTextItem\",\"QGraphicsTransform\",\"QGraphicsView\",\"QGraphicsWebView\",\"QGraphicsWidget\",\"QGridLayout\",\"QGroupBox\",\"QGtkStyle\",\"QHBoxLayout\",\"QHash\",\"QHashIterator\",\"QHeaderView\",\"QHelpContentItem\",\"QHelpContentModel\",\"QHelpContentWidget\",\"QHelpEngine\",\"QHelpEngineCore\",\"QHelpEvent\",\"QHelpIndexModel\",\"QHelpIndexWidget\",\"QHelpSearchEngine\",\"QHelpSearchQuery\",\"QHelpSearchQueryWidget\",\"QHelpSearchResultWidget\",\"QHideEvent\",\"QHistoryState\",\"QHostAddress\",\"QHostInfo\",\"QHoverEvent\",\"QHttpMultiPart\",\"QHttpPart\",\"QIODevice\",\"QIcon\",\"QIconDragEvent\",\"QIconEngine\",\"QIconEnginePlugin\",\"QIconEnginePluginV2\",\"QIconEngineV2\",\"QIdentityProxyModel\",\"QImage\",\"QImageIOHandler\",\"QImageIOPlugin\",\"QImageReader\",\"QImageWriter\",\"QInputContext\",\"QInputContextFactory\",\"QInputContextPlugin\",\"QInputDialog\",\"QInputEvent\",\"QInputMethodEvent\",\"QIntValidator\",\"QItemDelegate\",\"QItemEditorCreator\",\"QItemEditorCreatorBase\",\"QItemEditorFactory\",\"QItemSelection\",\"QItemSelectionModel\",\"QItemSelectionRange\",\"QKbdDriverFactory\",\"QKbdDriverPlugin\",\"QKeyEvent\",\"QKeyEventTransition\",\"QKeySequence\",\"QLCDNumber\",\"QLabel\",\"QLatin1Char\",\"QLatin1String\",\"QLayout\",\"QLayoutItem\",\"QLibrary\",\"QLibraryInfo\",\"QLine\",\"QLineEdit\",\"QLineF\",\"QLinearGradient\",\"QLinkedList\",\"QLinkedListIterator\",\"QList\",\"QListIterator\",\"QListView\",\"QListWidget\",\"QListWidgetItem\",\"QLocalServer\",\"QLocalSocket\",\"QLocale\",\"QMacCocoaViewContainer\",\"QMacNativeWidget\",\"QMacPasteboardMime\",\"QMacStyle\",\"QMainWindow\",\"QMap\",\"QMapIterator\",\"QMargins\",\"QMatrix4x4\",\"QMdiArea\",\"QMdiSubWindow\",\"QMenu\",\"QMenuBar\",\"QMessageBox\",\"QMetaClassInfo\",\"QMetaEnum\",\"QMetaMethod\",\"QMetaObject\",\"QMetaProperty\",\"QMetaType\",\"QMimeData\",\"QModelIndex\",\"QMotifStyle\",\"QMouseDriverFactory\",\"QMouseDriverPlugin\",\"QMouseEvent\",\"QMouseEventTransition\",\"QMoveEvent\",\"QMovie\",\"QMultiHash\",\"QMultiMap\",\"QMutableHashIterator\",\"QMutableLinkedListIterator\",\"QMutableListIterator\",\"QMutableMapIterator\",\"QMutableSetIterator\",\"QMutableStringListIterator\",\"QMutableVectorIterator\",\"QMutex\",\"QMutexLocker\",\"QNetworkAccessManager\",\"QNetworkAddressEntry\",\"QNetworkCacheMetaData\",\"QNetworkConfiguration\",\"QNetworkConfigurationManager\",\"QNetworkCookie\",\"QNetworkCookieJar\",\"QNetworkDiskCache\",\"QNetworkInterface\",\"QNetworkProxy\",\"QNetworkProxyFactory\",\"QNetworkProxyQuery\",\"QNetworkReply\",\"QNetworkRequest\",\"QNetworkSession\",\"QObject\",\"QObjectCleanupHandler\",\"QPageSetupDialog\",\"QPaintDevice\",\"QPaintEngine\",\"QPaintEngineState\",\"QPaintEvent\",\"QPainter\",\"QPainterPath\",\"QPainterPathStroker\",\"QPair\",\"QPalette\",\"QPanGesture\",\"QParallelAnimationGroup\",\"QPauseAnimation\",\"QPen\",\"QPersistentModelIndex\",\"QPicture\",\"QPinchGesture\",\"QPixmap\",\"QPixmapCache\",\"QPlainTextDocumentLayout\",\"QPlainTextEdit\",\"QPlastiqueStyle\",\"QPlatformCursor\",\"QPlatformCursorImage\",\"QPlatformFontDatabase\",\"QPlatformWindowFormat\",\"QPluginLoader\",\"QPoint\",\"QPointF\",\"QPointer\",\"QPolygon\",\"QPolygonF\",\"QPrintDialog\",\"QPrintEngine\",\"QPrintPreviewDialog\",\"QPrintPreviewWidget\",\"QPrinter\",\"QPrinterInfo\",\"QProcess\",\"QProcessEnvironment\",\"QProgressBar\",\"QProgressDialog\",\"QPropertyAnimation\",\"QProxyScreen\",\"QProxyScreenCursor\",\"QProxyStyle\",\"QPushButton\",\"QQuaternion\",\"QQueue\",\"QRadialGradient\",\"QRadioButton\",\"QRasterPaintEngine\",\"QRawFont\",\"QReadLocker\",\"QReadWriteLock\",\"QRect\",\"QRectF\",\"QRegExp\",\"QRegExpValidator\",\"QRegion\",\"QResizeEvent\",\"QResource\",\"QRubberBand\",\"QRunnable\",\"QS60MainAppUi\",\"QS60MainApplication\",\"QS60MainDocument\",\"QS60Style\",\"QScopedArrayPointer\",\"QScopedPointer\",\"QScopedValueRollback\",\"QScreen\",\"QScreenCursor\",\"QScreenDriverFactory\",\"QScreenDriverPlugin\",\"QScriptClass\",\"QScriptClassPropertyIterator\",\"QScriptContext\",\"QScriptContextInfo\",\"QScriptEngine\",\"QScriptEngineAgent\",\"QScriptEngineDebugger\",\"QScriptExtensionPlugin\",\"QScriptProgram\",\"QScriptString\",\"QScriptSyntaxCheckResult\",\"QScriptValue\",\"QScriptValueIterator\",\"QScriptable\",\"QScrollArea\",\"QScrollBar\",\"QSemaphore\",\"QSequentialAnimationGroup\",\"QSessionManager\",\"QSet\",\"QSetIterator\",\"QSettings\",\"QSharedData\",\"QSharedDataPointer\",\"QSharedMemory\",\"QSharedPointer\",\"QShortcut\",\"QShortcutEvent\",\"QShowEvent\",\"QSignalMapper\",\"QSignalSpy\",\"QSignalTransition\",\"QSimpleXmlNodeModel\",\"QSize\",\"QSizeF\",\"QSizeGrip\",\"QSizePolicy\",\"QSlider\",\"QSocketNotifier\",\"QSortFilterProxyModel\",\"QSound\",\"QSourceLocation\",\"QSpacerItem\",\"QSpinBox\",\"QSplashScreen\",\"QSplitter\",\"QSplitterHandle\",\"QSqlDatabase\",\"QSqlDriver\",\"QSqlDriverCreator\",\"QSqlDriverCreatorBase\",\"QSqlDriverPlugin\",\"QSqlError\",\"QSqlField\",\"QSqlIndex\",\"QSqlQuery\",\"QSqlQueryModel\",\"QSqlRecord\",\"QSqlRelation\",\"QSqlRelationalDelegate\",\"QSqlRelationalTableModel\",\"QSqlResult\",\"QSqlTableModel\",\"QSslCertificate\",\"QSslCipher\",\"QSslConfiguration\",\"QSslError\",\"QSslKey\",\"QSslSocket\",\"QStack\",\"QStackedLayout\",\"QStackedWidget\",\"QStandardItem\",\"QStandardItemEditorCreator\",\"QStandardItemModel\",\"QState\",\"QStateMachine\",\"QStaticText\",\"QStatusBar\",\"QStatusTipEvent\",\"QString\",\"QStringBuilder\",\"QStringList\",\"QStringListIterator\",\"QStringListModel\",\"QStringMatcher\",\"QStringRef\",\"QStyle\",\"QStyleFactory\",\"QStyleHintReturn\",\"QStyleHintReturnMask\",\"QStyleHintReturnVariant\",\"QStyleOption\",\"QStyleOptionButton\",\"QStyleOptionComboBox\",\"QStyleOptionComplex\",\"QStyleOptionDockWidget\",\"QStyleOptionFocusRect\",\"QStyleOptionFrame\",\"QStyleOptionFrameV2\",\"QStyleOptionFrameV3\",\"QStyleOptionGraphicsItem\",\"QStyleOptionGroupBox\",\"QStyleOptionHeader\",\"QStyleOptionMenuItem\",\"QStyleOptionProgressBar\",\"QStyleOptionProgressBarV2\",\"QStyleOptionQ3DockWindow\",\"QStyleOptionQ3ListView\",\"QStyleOptionQ3ListViewItem\",\"QStyleOptionRubberBand\",\"QStyleOptionSizeGrip\",\"QStyleOptionSlider\",\"QStyleOptionSpinBox\",\"QStyleOptionTab\",\"QStyleOptionTabBarBase\",\"QStyleOptionTabBarBaseV2\",\"QStyleOptionTabV2\",\"QStyleOptionTabV3\",\"QStyleOptionTabWidgetFrame\",\"QStyleOptionTabWidgetFrameV2\",\"QStyleOptionTitleBar\",\"QStyleOptionToolBar\",\"QStyleOptionToolBox\",\"QStyleOptionToolBoxV2\",\"QStyleOptionToolButton\",\"QStyleOptionViewItem\",\"QStyleOptionViewItemV2\",\"QStyleOptionViewItemV3\",\"QStyleOptionViewItemV4\",\"QStylePainter\",\"QStylePlugin\",\"QStyledItemDelegate\",\"QSupportedWritingSystems\",\"QSvgGenerator\",\"QSvgRenderer\",\"QSvgWidget\",\"QSwipeGesture\",\"QSymbianEvent\",\"QSymbianGraphicsSystemHelper\",\"QSyntaxHighlighter\",\"QSysInfo\",\"QSystemLocale\",\"QSystemSemaphore\",\"QSystemTrayIcon\",\"QTabBar\",\"QTabWidget\",\"QTableView\",\"QTableWidget\",\"QTableWidgetItem\",\"QTableWidgetSelectionRange\",\"QTabletEvent\",\"QTapAndHoldGesture\",\"QTapGesture\",\"QTcpServer\",\"QTcpSocket\",\"QTemporaryFile\",\"QTest\",\"QTestEventList\",\"QTextBlock\",\"QTextBlockFormat\",\"QTextBlockGroup\",\"QTextBlockUserData\",\"QTextBoundaryFinder\",\"QTextBrowser\",\"QTextCharFormat\",\"QTextCodec\",\"QTextCodecPlugin\",\"QTextCursor\",\"QTextDecoder\",\"QTextDocument\",\"QTextDocumentFragment\",\"QTextDocumentWriter\",\"QTextEdit\",\"QTextEncoder\",\"QTextFormat\",\"QTextFragment\",\"QTextFrame\",\"QTextFrameFormat\",\"QTextImageFormat\",\"QTextInlineObject\",\"QTextItem\",\"QTextLayout\",\"QTextLength\",\"QTextLine\",\"QTextList\",\"QTextListFormat\",\"QTextObject\",\"QTextObjectInterface\",\"QTextOption\",\"QTextStream\",\"QTextTable\",\"QTextTableCell\",\"QTextTableCellFormat\",\"QTextTableFormat\",\"QThread\",\"QThreadPool\",\"QThreadStorage\",\"QTileRules\",\"QTime\",\"QTimeEdit\",\"QTimeLine\",\"QTimer\",\"QTimerEvent\",\"QToolBar\",\"QToolBox\",\"QToolButton\",\"QToolTip\",\"QTouchEvent\",\"QTouchEventSequence\",\"QTransform\",\"QTranslator\",\"QTreeView\",\"QTreeWidget\",\"QTreeWidgetItem\",\"QTreeWidgetItemIterator\",\"QUdpSocket\",\"QUiLoader\",\"QUndoCommand\",\"QUndoGroup\",\"QUndoStack\",\"QUndoView\",\"QUrl\",\"QUrlInfo\",\"QUuid\",\"QVBoxLayout\",\"QValidator\",\"QVarLengthArray\",\"QVariant\",\"QVariantAnimation\",\"QVector\",\"QVector2D\",\"QVector3D\",\"QVector4D\",\"QVectorIterator\",\"QVideoFrame\",\"QVideoSurfaceFormat\",\"QWSCalibratedMouseHandler\",\"QWSClient\",\"QWSEmbedWidget\",\"QWSEvent\",\"QWSGLWindowSurface\",\"QWSInputMethod\",\"QWSKeyboardHandler\",\"QWSMouseHandler\",\"QWSPointerCalibrationData\",\"QWSScreenSaver\",\"QWSServer\",\"QWSWindow\",\"QWaitCondition\",\"QWeakPointer\",\"QWebDatabase\",\"QWebElement\",\"QWebElementCollection\",\"QWebFrame\",\"QWebHistory\",\"QWebHistoryInterface\",\"QWebHistoryItem\",\"QWebHitTestResult\",\"QWebInspector\",\"QWebPage\",\"QWebPluginFactory\",\"QWebSecurityOrigin\",\"QWebSettings\",\"QWebView\",\"QWhatsThis\",\"QWhatsThisClickedEvent\",\"QWheelEvent\",\"QWidget\",\"QWidgetAction\",\"QWidgetItem\",\"QWidgetList\",\"QWindowStateChangeEvent\",\"QWindowsMime\",\"QWindowsStyle\",\"QWindowsVistaStyle\",\"QWindowsXPStyle\",\"QWizard\",\"QWizardPage\",\"QWriteLocker\",\"QX11EmbedContainer\",\"QX11EmbedWidget\",\"QX11Info\",\"QXmlAttributes\",\"QXmlContentHandler\",\"QXmlDTDHandler\",\"QXmlDeclHandler\",\"QXmlDefaultHandler\",\"QXmlEntityResolver\",\"QXmlErrorHandler\",\"QXmlFormatter\",\"QXmlInputSource\",\"QXmlItem\",\"QXmlLexicalHandler\",\"QXmlLocator\",\"QXmlName\",\"QXmlNamePool\",\"QXmlNamespaceSupport\",\"QXmlNodeModelIndex\",\"QXmlParseException\",\"QXmlQuery\",\"QXmlReader\",\"QXmlResultItems\",\"QXmlSchema\",\"QXmlSchemaValidator\",\"QXmlSerializer\",\"QXmlSimpleReader\",\"QXmlStreamAttribute\",\"QXmlStreamAttributes\",\"QXmlStreamEntityDeclaration\",\"QXmlStreamEntityResolver\",\"QXmlStreamNamespaceDeclaration\",\"QXmlStreamNotationDeclaration\",\"QXmlStreamReader\",\"QXmlStreamWriter\",\"Qt\",\"QtConcurrent\"])), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"C++\",\"QtClassMember\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"connect\",\"disconnect\",\"qAbs\",\"qAddPostRoutine\",\"qAlpha\",\"qBinaryFind\",\"qBlue\",\"qBound\",\"qChecksum\",\"qCompress\",\"qCopy\",\"qCopyBackward\",\"qCount\",\"qCritical\",\"qDBusRegisterMetaType\",\"qDebug\",\"qDeleteAll\",\"qEqual\",\"qFatal\",\"qFill\",\"qFind\",\"qFindChildren\",\"qFuzzyCompare\",\"qGray\",\"qGreater\",\"qGreen\",\"qHash\",\"qInstallMsgHandler\",\"qLess\",\"qLowerBound\",\"qMacVersion\",\"qMakePair\",\"qMax\",\"qMetaTypeId\",\"qMin\",\"qPrintable\",\"qRed\",\"qRegisterMetaType\",\"qRegisterMetaTypeStreamOperators\",\"qRgb\",\"qRgba\",\"qRound\",\"qRound64\",\"qSort\",\"qStableSort\",\"qSwap\",\"qUncompress\",\"qUpperBound\",\"qVersion\",\"qWarning\",\"qWebKitMajorVersion\",\"qWebKitMinorVersion\",\"qWebKitVersion\",\"q_check_ptr\",\"qdbus_cast\",\"qgetenv\",\"qmlInfo\",\"qmlRegisterInterface\",\"qmlRegisterType\",\"qmlRegisterTypeNotAvailable\",\"qmlRegisterUncreatableType\",\"qobject_cast\",\"qrand\",\"qsnprintf\",\"qsrand\",\"qstrcmp\",\"qstrcpy\",\"qstrdup\",\"qstricmp\",\"qstrlen\",\"qstrncmp\",\"qstrncpy\",\"qstrnicmp\",\"qstrnlen\",\"qtTrId\",\"qt_extension\",\"qt_set_sequence_auto_mnemonic\",\"qt_symbian_exception2Error\",\"qt_symbian_exception2LeaveL\",\"qt_symbian_throwIfError\",\"qvsnprintf\",\"staticMetaObject\",\"tr\",\"trUtf8\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"QAXCLASS\",\"QAXFACTORY_BEGIN\",\"QAXFACTORY_DEFAULT\",\"QAXFACTORY_END\",\"QAXFACTORY_EXPORT\",\"QAXTYPE\",\"QBENCHMARK\",\"QBENCHMARK_ONCE\",\"QCOMPARE\",\"QDESIGNER_WIDGET_EXPORT\",\"QEXPECT_FAIL\",\"QFAIL\",\"QFETCH\",\"QML_DECLARE_TYPE\",\"QML_DECLARE_TYPEINFO\",\"QSKIP\",\"QT3_SUPPORT\",\"QT3_SUPPORT_CONSTRUCTOR\",\"QT3_SUPPORT_VARIABLE\",\"QT3_SUPPORT_WARNINGS\",\"QTEST\",\"QTEST_APPLESS_MAIN\",\"QTEST_MAIN\",\"QTEST_NOOP_MAIN\",\"QTWEBKIT_VERSION\",\"QTWEBKIT_VERSION_CHECK\",\"QTWEBKIT_VERSION_STR\",\"QT_ARCH_X86_64\",\"QT_ASCII_CAST_WARN\",\"QT_ASCII_CAST_WARN_CONSTRUCTOR\",\"QT_BEGIN_HEADER\",\"QT_BEGIN_NAMESPACE\",\"QT_BUILD_KEY\",\"QT_BUILD_KEY_COMPAT\",\"QT_CATCH\",\"QT_COMPAT\",\"QT_COMPAT_WARNINGS\",\"QT_DEBUG\",\"QT_DEPRECATED\",\"QT_DEPRECATED_CONSTRUCTOR\",\"QT_DEPRECATED_VARIABLE\",\"QT_EDITION\",\"QT_EDITION_ACADEMIC\",\"QT_EDITION_CONSOLE\",\"QT_EDITION_DESKTOP\",\"QT_EDITION_DESKTOPLIGHT\",\"QT_EDITION_EDUCATIONAL\",\"QT_EDITION_EVALUATION\",\"QT_EDITION_OPENSOURCE\",\"QT_EDITION_UNIVERSAL\",\"QT_END_HEADER\",\"QT_END_NAMESPACE\",\"QT_ENSURE_STACK_ALIGNED_FOR_SSE\",\"QT_FASTCALL\",\"QT_FORWARD_DECLARE_CLASS\",\"QT_FORWARD_DECLARE_STRUCT\",\"QT_HAVE_ARMV6\",\"QT_LARGEFILE_SUPPORT\",\"QT_LICENSED_MODULE\",\"QT_LINKED_OPENSSL\",\"QT_LINUXBASE\",\"QT_MAC_USE_COCOA\",\"QT_MOC_COMPAT\",\"QT_MODULE\",\"QT_MODULE_ACTIVEQT\",\"QT_MODULE_CORE\",\"QT_MODULE_DBUS\",\"QT_MODULE_DECLARATIVE\",\"QT_MODULE_GRAPHICSVIEW\",\"QT_MODULE_GUI\",\"QT_MODULE_HELP\",\"QT_MODULE_MULTIMEDIA\",\"QT_MODULE_NETWORK\",\"QT_MODULE_OPENGL\",\"QT_MODULE_OPENVG\",\"QT_MODULE_QT3SUPPORT\",\"QT_MODULE_QT3SUPPORTLIGHT\",\"QT_MODULE_SCRIPT\",\"QT_MODULE_SCRIPTTOOLS\",\"QT_MODULE_SQL\",\"QT_MODULE_SVG\",\"QT_MODULE_TEST\",\"QT_MODULE_XML\",\"QT_MODULE_XMLPATTERNS\",\"QT_NO_ACCESSIBILITY\",\"QT_NO_ANIMATION\",\"QT_NO_ARM_EABI\",\"QT_NO_BEARERMANAGEMENT\",\"QT_NO_BUTTONGROUP\",\"QT_NO_CALENDARWIDGET\",\"QT_NO_CAST_FROM_ASCII\",\"QT_NO_CAST_FROM_BYTEARRAY\",\"QT_NO_CAST_TO_ASCII\",\"QT_NO_CLIPBOARD\",\"QT_NO_CODECS\",\"QT_NO_COLORDIALOG\",\"QT_NO_COLUMNVIEW\",\"QT_NO_COMBOBOX\",\"QT_NO_COMPLETER\",\"QT_NO_CONCURRENT\",\"QT_NO_CONCURRENT_FILTER\",\"QT_NO_CONCURRENT_MAP\",\"QT_NO_CONTEXTMENU\",\"QT_NO_COP\",\"QT_NO_CRASHHANDLER\",\"QT_NO_CUPS\",\"QT_NO_DATAWIDGETMAPPER\",\"QT_NO_DATESTRING\",\"QT_NO_DATETIMEEDIT\",\"QT_NO_DBUS\",\"QT_NO_DEBUG\",\"QT_NO_DEBUG_STREAM\",\"QT_NO_DECLARATIVE\",\"QT_NO_DIAL\",\"QT_NO_DIRMODEL\",\"QT_NO_DOCKWIDGET\",\"QT_NO_DRAGANDDROP\",\"QT_NO_EGL\",\"QT_NO_ERRORMESSAGE\",\"QT_NO_EXCEPTIONS\",\"QT_NO_FILEDIALOG\",\"QT_NO_FILESYSTEMMODEL\",\"QT_NO_FONTCOMBOBOX\",\"QT_NO_FONTCONFIG\",\"QT_NO_FONTDIALOG\",\"QT_NO_FPU\",\"QT_NO_FSCOMPLETER\",\"QT_NO_FTP\",\"QT_NO_GETIFADDRS\",\"QT_NO_GRAPHICSEFFECT\",\"QT_NO_GRAPHICSSVGITEM\",\"QT_NO_GRAPHICSVIEW\",\"QT_NO_GSTREAMER\",\"QT_NO_HOSTINFO\",\"QT_NO_HTTP\",\"QT_NO_ICD\",\"QT_NO_IM\",\"QT_NO_IMAGEFORMAT_JPEG\",\"QT_NO_IMAGEFORMAT_MNG\",\"QT_NO_IMAGEFORMAT_PNG\",\"QT_NO_IMAGEFORMAT_TIFF\",\"QT_NO_IMAGEFORMAT_XPM\",\"QT_NO_INPUTDIALOG\",\"QT_NO_ITEMVIEWS\",\"QT_NO_LIBRARY\",\"QT_NO_LISTVIEW\",\"QT_NO_LISTWIDGET\",\"QT_NO_LPR\",\"QT_NO_MAINWINDOW\",\"QT_NO_MDIAREA\",\"QT_NO_MENU\",\"QT_NO_MENUBAR\",\"QT_NO_MITSHM\",\"QT_NO_MULTIMEDIA\",\"QT_NO_NAS\",\"QT_NO_NETWORKDISKCACHE\",\"QT_NO_OPENGL\",\"QT_NO_OPENVG\",\"QT_NO_PAINT_DEBUG\",\"QT_NO_PHONON\",\"QT_NO_PHONON_EFFECTWIDGET\",\"QT_NO_PHONON_PLATFORMPLUGIN\",\"QT_NO_PHONON_SEEKSLIDER\",\"QT_NO_PHONON_SETTINGSGROUP\",\"QT_NO_PHONON_VIDEOPLAYER\",\"QT_NO_PHONON_VOLUMEFADEREFFECT\",\"QT_NO_PHONON_VOLUMESLIDER\",\"QT_NO_PRINTDIALOG\",\"QT_NO_PRINTER\",\"QT_NO_PRINTPREVIEWDIALOG\",\"QT_NO_PRINTPREVIEWWIDGET\",\"QT_NO_PROCESS\",\"QT_NO_PROGRESSDIALOG\",\"QT_NO_PROXYMODEL\",\"QT_NO_PULSEAUDIO\",\"QT_NO_QDEBUG_MACRO\",\"QT_NO_QFUTURE\",\"QT_NO_QWARNING_MACRO\",\"QT_NO_QWS_CURSOR\",\"QT_NO_QWS_DECORATION_STYLED\",\"QT_NO_QWS_DECORATION_WINDOWS\",\"QT_NO_QWS_DYNAMICSCREENTRANSFORMATION\",\"QT_NO_QWS_INPUTMETHODS\",\"QT_NO_QWS_MANAGER\",\"QT_NO_QWS_MULTIPROCESS\",\"QT_NO_QWS_SOUNDSERVER\",\"QT_NO_QWS_TRANSFORMED\",\"QT_NO_QWS_VNC\",\"QT_NO_RAWFONT\",\"QT_NO_S60\",\"QT_NO_SCRIPT\",\"QT_NO_SCRIPTTOOLS\",\"QT_NO_SCROLLAREA\",\"QT_NO_SCROLLBAR\",\"QT_NO_SESSIONMANAGER\",\"QT_NO_SHAPE\",\"QT_NO_SHAREDMEMORY\",\"QT_NO_SOCKS5\",\"QT_NO_SOFTKEYMANAGER\",\"QT_NO_SORTFILTERPROXYMODEL\",\"QT_NO_SPINBOX\",\"QT_NO_SPLITTER\",\"QT_NO_STANDARDITEMMODEL\",\"QT_NO_STATEMACHINE\",\"QT_NO_STL_WCHAR\",\"QT_NO_STRINGLISTMODEL\",\"QT_NO_STYLE_CDE\",\"QT_NO_STYLE_CLEANLOOKS\",\"QT_NO_STYLE_GTK\",\"QT_NO_STYLE_PLASTIQUE\",\"QT_NO_STYLE_S60\",\"QT_NO_STYLE_STYLESHEET\",\"QT_NO_STYLE_WINDOWSCE\",\"QT_NO_STYLE_WINDOWSMOBILE\",\"QT_NO_STYLE_WINDOWSVISTA\",\"QT_NO_STYLE_WINDOWSXP\",\"QT_NO_SVG\",\"QT_NO_SVGGENERATOR\",\"QT_NO_SVGRENDERER\",\"QT_NO_SVGWIDGET\",\"QT_NO_SXE\",\"QT_NO_SYNTAXHIGHLIGHTER\",\"QT_NO_SYSTEMSEMAPHORE\",\"QT_NO_TABBAR\",\"QT_NO_TABDIALOG\",\"QT_NO_TABLET\",\"QT_NO_TABLEVIEW\",\"QT_NO_TABLEWIDGET\",\"QT_NO_TABWIDGET\",\"QT_NO_TEMPLATE_TEMPLATE_PARAMETERS\",\"QT_NO_TEXTBROWSER\",\"QT_NO_TEXTCODECPLUGIN\",\"QT_NO_TEXTEDIT\",\"QT_NO_TEXTODFWRITER\",\"QT_NO_TOOLBAR\",\"QT_NO_TOOLBOX\",\"QT_NO_TOOLBUTTON\",\"QT_NO_TRANSLATION_UTF8\",\"QT_NO_TREEVIEW\",\"QT_NO_TREEWIDGET\",\"QT_NO_UNDOGROUP\",\"QT_NO_UNDOSTACK\",\"QT_NO_UNDOVIEW\",\"QT_NO_URL_CAST_FROM_STRING\",\"QT_NO_WARNINGS\",\"QT_NO_WEBKIT\",\"QT_NO_WHATSTHIS\",\"QT_NO_WIN_ACTIVEQT\",\"QT_NO_WIZARD\",\"QT_NO_WORKSPACE\",\"QT_NO_XCURSOR\",\"QT_NO_XFIXES\",\"QT_NO_XINERAMA\",\"QT_NO_XINPUT\",\"QT_NO_XKB\",\"QT_NO_XMLPATTERNS\",\"QT_NO_XMLSTREAMREADER\",\"QT_NO_XMLSTREAMWRITER\",\"QT_NO_XRANDR\",\"QT_NO_XRENDER\",\"QT_NO_XSYNC\",\"QT_NO_XVIDEO\",\"QT_NO_ZLIB\",\"QT_PACKAGEDATE_STR\",\"QT_PACKAGE_TAG\",\"QT_POINTER_SIZE\",\"QT_PREPEND_NAMESPACE\",\"QT_PRODUCT_LICENSE\",\"QT_PRODUCT_LICENSEE\",\"QT_RETHROW\",\"QT_STATIC_CONST\",\"QT_STATIC_CONST_IMPL\",\"QT_STRINGIFY\",\"QT_STRINGIFY2\",\"QT_SUPPORTS\",\"QT_SYMBIAN_SUPPORTS_ADVANCED_POINTER\",\"QT_SYMBIAN_SUPPORTS_SGIMAGE\",\"QT_THROW\",\"QT_TRANSLATE_NOOP\",\"QT_TRANSLATE_NOOP3\",\"QT_TRANSLATE_NOOP3_UTF8\",\"QT_TRANSLATE_NOOP_UTF8\",\"QT_TRAP_THROWING\",\"QT_TRID_NOOP\",\"QT_TRY\",\"QT_TRYCATCH_ERROR\",\"QT_TRYCATCH_LEAVING\",\"QT_TR_NOOP\",\"QT_TR_NOOP_UTF8\",\"QT_USE_MATH_H_FLOATS\",\"QT_USE_NAMESPACE\",\"QT_USE_QSTRINGBUILDER\",\"QT_VERSION\",\"QT_VERSION_CHECK\",\"QT_VERSION_STR\",\"QT_VISIBILITY_AVAILABLE\",\"QT_WA\",\"QT_WA_INLINE\",\"QT_WIN_CALLBACK\",\"QVERIFY\",\"QVERIFY2\",\"QWARN\",\"QWIDGETSIZE_MAX\",\"Q_ALIGNOF\",\"Q_ARG\",\"Q_ASSERT\",\"Q_ASSERT_X\",\"Q_ATOMIC_INT_FETCH_AND_ADD_IS_ALWAYS_NATIVE\",\"Q_ATOMIC_INT_FETCH_AND_ADD_IS_NOT_NATIVE\",\"Q_ATOMIC_INT_FETCH_AND_ADD_IS_SOMETIMES_NATIVE\",\"Q_ATOMIC_INT_FETCH_AND_ADD_IS_WAIT_FREE\",\"Q_ATOMIC_INT_FETCH_AND_STORE_IS_ALWAYS_NATIVE\",\"Q_ATOMIC_INT_FETCH_AND_STORE_IS_NOT_NATIVE\",\"Q_ATOMIC_INT_FETCH_AND_STORE_IS_SOMETIMES_NATIVE\",\"Q_ATOMIC_INT_FETCH_AND_STORE_IS_WAIT_FREE\",\"Q_ATOMIC_INT_REFERENCE_COUNTING_IS_ALWAYS_NATIVE\",\"Q_ATOMIC_INT_REFERENCE_COUNTING_IS_NOT_NATIVE\",\"Q_ATOMIC_INT_REFERENCE_COUNTING_IS_SOMETIMES_NATIVE\",\"Q_ATOMIC_INT_REFERENCE_COUNTING_IS_WAIT_FREE\",\"Q_ATOMIC_INT_TEST_AND_SET_IS_ALWAYS_NATIVE\",\"Q_ATOMIC_INT_TEST_AND_SET_IS_NOT_NATIVE\",\"Q_ATOMIC_INT_TEST_AND_SET_IS_SOMETIMES_NATIVE\",\"Q_ATOMIC_INT_TEST_AND_SET_IS_WAIT_FREE\",\"Q_BIG_ENDIAN\",\"Q_BROKEN_DEBUG_STREAM\",\"Q_BROKEN_TEMPLATE_SPECIALIZATION\",\"Q_BYTE_ORDER\",\"Q_CANNOT_DELETE_CONSTANT\",\"Q_CC_BOR\",\"Q_CC_CDS\",\"Q_CC_CLANG\",\"Q_CC_COMEAU\",\"Q_CC_DEC\",\"Q_CC_DIAB\",\"Q_CC_EDG\",\"Q_CC_GCCE\",\"Q_CC_GHS\",\"Q_CC_GNU\",\"Q_CC_HIGHC\",\"Q_CC_HP\",\"Q_CC_HPACC\",\"Q_CC_INTEL\",\"Q_CC_KAI\",\"Q_CC_MINGW\",\"Q_CC_MIPS\",\"Q_CC_MSVC\",\"Q_CC_MSVC_NET\",\"Q_CC_MWERKS\",\"Q_CC_NOKIAX86\",\"Q_CC_OC\",\"Q_CC_PGI\",\"Q_CC_RVCT\",\"Q_CC_SUN\",\"Q_CC_SYM\",\"Q_CC_USLC\",\"Q_CC_WAT\",\"Q_CC_XLC\",\"Q_CHECK_PTR\",\"Q_CLASSINFO\",\"Q_CLEANUP_RESOURCE\",\"Q_COMPILER_AUTO_TYPE\",\"Q_COMPILER_CLASS_ENUM\",\"Q_COMPILER_CONSTEXPR\",\"Q_COMPILER_DECLTYPE\",\"Q_COMPILER_DEFAULT_DELETE_MEMBERS\",\"Q_COMPILER_EXTERN_TEMPLATES\",\"Q_COMPILER_INITIALIZER_LISTS\",\"Q_COMPILER_LAMBDA\",\"Q_COMPILER_MANGLES_RETURN_TYPE\",\"Q_COMPILER_RVALUE_REFS\",\"Q_COMPILER_UNICODE_STRINGS\",\"Q_COMPILER_VARIADIC_TEMPLATES\",\"Q_COMPLEX_TYPE\",\"Q_CONSTRUCTOR_FUNCTION\",\"Q_CONSTRUCTOR_FUNCTION0\",\"Q_C_CALLBACKS\",\"Q_D\",\"Q_DECLARE_EXTENSION_INTERFACE\",\"Q_DECLARE_FLAGS\",\"Q_DECLARE_INCOMPATIBLE_FLAGS\",\"Q_DECLARE_INTERFACE\",\"Q_DECLARE_METATYPE\",\"Q_DECLARE_OPERATORS_FOR_FLAGS\",\"Q_DECLARE_PRIVATE\",\"Q_DECLARE_PRIVATE_D\",\"Q_DECLARE_PUBLIC\",\"Q_DECLARE_SHARED\",\"Q_DECLARE_SHARED_STL\",\"Q_DECLARE_TR_FUNCTIONS\",\"Q_DECLARE_TYPEINFO\",\"Q_DECLARE_TYPEINFO_BODY\",\"Q_DECL_ALIGN\",\"Q_DECL_CONSTEXPR\",\"Q_DECL_CONSTRUCTOR_DEPRECATED\",\"Q_DECL_DEPRECATED\",\"Q_DECL_FINAL\",\"Q_DECL_HIDDEN\",\"Q_DECL_IMPORT\",\"Q_DECL_NOEXCEPT\",\"Q_DECL_NOTHROW\",\"Q_DECL_OVERRIDE\",\"Q_DECL_VARIABLE_DEPRECATED\",\"Q_DESTRUCTOR_FUNCTION\",\"Q_DESTRUCTOR_FUNCTION0\",\"Q_DISABLE_COPY\",\"Q_DUMMY_COMPARISON_OPERATOR\",\"Q_DUMMY_TYPE\",\"Q_EMIT\",\"Q_ENUMS\",\"Q_EXPORT_PLUGIN2\",\"Q_FLAGS\",\"Q_FOREACH\",\"Q_FOREVER\",\"Q_FULL_TEMPLATE_INSTANTIATION\",\"Q_FUNC_INFO\",\"Q_GLOBAL_STATIC\",\"Q_GLOBAL_STATIC_INIT\",\"Q_GLOBAL_STATIC_WITH_ARGS\",\"Q_GLOBAL_STATIC_WITH_INITIALIZER\",\"Q_IMPORT_PLUGIN\",\"Q_INIT_RESOURCE\",\"Q_INIT_RESOURCE_EXTERN\",\"Q_INLINE_TEMPLATE\",\"Q_INT64_C\",\"Q_INTERFACES\",\"Q_INVOKABLE\",\"Q_LIKELY\",\"Q_LITTLE_ENDIAN\",\"Q_MOVABLE_TYPE\",\"Q_NOREPLY\",\"Q_NO_BOOL_TYPE\",\"Q_NO_DATA_RELOCATION\",\"Q_NO_DECLARED_NOT_DEFINED\",\"Q_NO_DEPRECATED_CONSTRUCTORS\",\"Q_NO_EXPLICIT_KEYWORD\",\"Q_NO_PACKED_REFERENCE\",\"Q_NO_POSIX_SIGNALS\",\"Q_NO_TEMPLATE_FRIENDS\",\"Q_NO_USING_KEYWORD\",\"Q_NULLPTR\",\"Q_OBJECT\",\"Q_OF_ELF\",\"Q_OS_AIX\",\"Q_OS_BSD4\",\"Q_OS_BSDI\",\"Q_OS_CYGWIN\",\"Q_OS_DARWIN\",\"Q_OS_DARWIN32\",\"Q_OS_DARWIN64\",\"Q_OS_DGUX\",\"Q_OS_DYNIX\",\"Q_OS_FREEBSD\",\"Q_OS_HPUX\",\"Q_OS_HURD\",\"Q_OS_INTEGRITY\",\"Q_OS_IRIX\",\"Q_OS_LINUX\",\"Q_OS_LYNX\",\"Q_OS_MAC\",\"Q_OS_MAC32\",\"Q_OS_MAC64\",\"Q_OS_MACX\",\"Q_OS_MSDOS\",\"Q_OS_NACL\",\"Q_OS_NETBSD\",\"Q_OS_OPENBSD\",\"Q_OS_OS2\",\"Q_OS_OS2EMX\",\"Q_OS_OSF\",\"Q_OS_QNX\",\"Q_OS_RELIANT\",\"Q_OS_SCO\",\"Q_OS_SOLARIS\",\"Q_OS_SYMBIAN\",\"Q_OS_ULTRIX\",\"Q_OS_UNIX\",\"Q_OS_UNIXWARE\",\"Q_OS_VXWORKS\",\"Q_OS_WIN\",\"Q_OS_WIN32\",\"Q_OS_WIN64\",\"Q_OS_WINCE\",\"Q_OUTOFLINE_TEMPLATE\",\"Q_PACKED\",\"Q_PRIMITIVE_TYPE\",\"Q_PROPERTY\",\"Q_Q\",\"Q_REQUIRED_RESULT\",\"Q_RETURN_ARG\",\"Q_SCRIPT_DECLARE_QMETAOBJECT\",\"Q_SIGNAL\",\"Q_SIGNALS\",\"Q_SLOT\",\"Q_SLOTS\",\"Q_STATIC_TYPE\",\"Q_SYMBIAN_FIXED_POINTER_CURSORS\",\"Q_SYMBIAN_HAS_EXTENDED_BITMAP_TYPE\",\"Q_SYMBIAN_SEMITRANSPARENT_BG_SURFACE\",\"Q_SYMBIAN_SUPPORTS_FIXNATIVEORIENTATION\",\"Q_SYMBIAN_SUPPORTS_MULTIPLE_SCREENS\",\"Q_SYMBIAN_SUPPORTS_SURFACES\",\"Q_SYMBIAN_TRANSITION_EFFECTS\",\"Q_SYMBIAN_WINDOW_SIZE_CACHE\",\"Q_TEMPLATEDLL\",\"Q_TYPENAME\",\"Q_TYPEOF\",\"Q_UINT64_C\",\"Q_UNLIKELY\",\"Q_UNUSED\",\"Q_WRONG_SB_CTYPE_MACROS\",\"Q_WS_MAC\",\"Q_WS_MAC32\",\"Q_WS_MAC64\",\"Q_WS_MACX\",\"Q_WS_PM\",\"Q_WS_S60\",\"Q_WS_WIN\",\"Q_WS_WIN16\",\"Q_WS_WIN32\",\"Q_WS_WIN64\",\"Q_WS_WINCE\",\"Q_WS_WINCE_WM\",\"Q_WS_X11\",\"SIGNAL\",\"SLOT\",\"emit\",\"foreach\",\"forever\",\"qApp\",\"signals\",\"slots\"])), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"C++\", cRules = [Rule {rMatcher = IncludeRules (\"C++\",\"DetectQt4Extensions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"ISO C++\",\"\"), 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}),(\"QtClassMember\",Context {cName = \"QtClassMember\", cSyntax = \"C++\", cRules = [Rule {rMatcher = IncludeRules (\"C++\",\"DetectNSEnd\"), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ExtensionTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Alex Turbov (i.zaufi@gmail.com)\", sVersion = \"3\", sLicense = \"LGPL\", sExtensions = [\"*.c++\",\"*.cxx\",\"*.cpp\",\"*.cc\",\"*.C\",\"*.h\",\"*.hh\",\"*.H\",\"*.h++\",\"*.hxx\",\"*.hpp\",\"*.hcc\",\"*.moc\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Cs.hs b/src/Skylighting/Syntax/Cs.hs
--- a/src/Skylighting/Syntax/Cs.hs
+++ b/src/Skylighting/Syntax/Cs.hs
@@ -2,712 +2,6 @@
 module Skylighting.Syntax.Cs (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "C#"
-  , sFilename = "cs.xml"
-  , sShortname = "Cs"
-  , sContexts =
-      fromList
-        [ ( "Commentar 1"
-          , Context
-              { cName = "Commentar 1"
-              , cSyntax = "C#"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Commentar 2"
-          , Context
-              { cName = "Commentar 2"
-              , cSyntax = "C#"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Member"
-          , Context
-              { cName = "Member"
-              , cSyntax = "C#"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[_\\w][_\\w\\d]*(?=[\\s]*)"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b[_\\w][_\\w\\d]*(?=[\\s]*)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "C#"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "#define"
-                               , "#elif"
-                               , "#else"
-                               , "#endif"
-                               , "#error"
-                               , "#if"
-                               , "#line"
-                               , "#undef"
-                               , "#warning"
-                               , "abstract"
-                               , "as"
-                               , "base"
-                               , "break"
-                               , "case"
-                               , "catch"
-                               , "checked"
-                               , "class"
-                               , "continue"
-                               , "default"
-                               , "delegate"
-                               , "do"
-                               , "else"
-                               , "enum"
-                               , "event"
-                               , "explicit"
-                               , "extern"
-                               , "false"
-                               , "finally"
-                               , "fixed"
-                               , "for"
-                               , "foreach"
-                               , "goto"
-                               , "if"
-                               , "implicit"
-                               , "in"
-                               , "interface"
-                               , "internal"
-                               , "is"
-                               , "lock"
-                               , "namespace"
-                               , "new"
-                               , "null"
-                               , "operator"
-                               , "out"
-                               , "override"
-                               , "params"
-                               , "private"
-                               , "protected"
-                               , "public"
-                               , "readonly"
-                               , "ref"
-                               , "return"
-                               , "sealed"
-                               , "sizeof"
-                               , "stackalloc"
-                               , "static"
-                               , "struct"
-                               , "switch"
-                               , "this"
-                               , "throw"
-                               , "true"
-                               , "try"
-                               , "typeof"
-                               , "unchecked"
-                               , "unsafe"
-                               , "using"
-                               , "virtual"
-                               , "while"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "bool"
-                               , "byte"
-                               , "char"
-                               , "const"
-                               , "decimal"
-                               , "double"
-                               , "float"
-                               , "int"
-                               , "long"
-                               , "object"
-                               , "sbyte"
-                               , "short"
-                               , "string"
-                               , "uint"
-                               , "ulong"
-                               , "ushort"
-                               , "void"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = AnyChar "fF"
-                              , rAttribute = FloatTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = True
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = StringDetect "ULL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LUL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LLU"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "UL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LU"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "U"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "L"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C#" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "" )
-                      , rAttribute = NormalTok
-                      , 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 ( "C#" , "Commentar 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C#" , "Commentar 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bpartial(?=\\s+(class|struct|interface|void))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\bpartial(?=\\s+(class|struct|interface|void))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bvar(?=\\s+\\w+\\s*=\\s*\\w+)"
-                              , reCompiled =
-                                  Just (compileRegex True "\\bvar(?=\\s+\\w+\\s*=\\s*\\w+)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\byield(?=\\s+(return|break))"
-                              , reCompiled =
-                                  Just (compileRegex True "\\byield(?=\\s+(return|break))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(set|get)(?=\\s*[;{])"
-                              , reCompiled = Just (compileRegex True "\\b(set|get)(?=\\s*[;{])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bglobal(?=\\s*::\\s*\\w+)"
-                              , reCompiled =
-                                  Just (compileRegex True "\\bglobal(?=\\s*::\\s*\\w+)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#region.*$"
-                              , reCompiled = Just (compileRegex True "#region.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#endregion.*$"
-                              , reCompiled = Just (compileRegex True "#endregion.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[_\\w][_\\w\\d]*(?=[\\s]*[(])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b[_\\w][_\\w\\d]*(?=[\\s]*[(])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[.]{1,1}"
-                              , reCompiled = Just (compileRegex True "[.]{1,1}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "C#" , "Member" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ":!%&()+,-/.*<=>?[]|~^;"
-                      , 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
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "C#"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = ""
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.cs" ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"C#\", sFilename = \"cs.xml\", sShortname = \"Cs\", sContexts = fromList [(\"Commentar 1\",Context {cName = \"Commentar 1\", cSyntax = \"C#\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Commentar 2\",Context {cName = \"Commentar 2\", cSyntax = \"C#\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Member\",Context {cName = \"Member\", cSyntax = \"C#\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[_\\\\w][_\\\\w\\\\d]*(?=[\\\\s]*)\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"C#\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"#define\",\"#elif\",\"#else\",\"#endif\",\"#error\",\"#if\",\"#line\",\"#undef\",\"#warning\",\"abstract\",\"as\",\"base\",\"break\",\"case\",\"catch\",\"checked\",\"class\",\"continue\",\"default\",\"delegate\",\"do\",\"else\",\"enum\",\"event\",\"explicit\",\"extern\",\"false\",\"finally\",\"fixed\",\"for\",\"foreach\",\"goto\",\"if\",\"implicit\",\"in\",\"interface\",\"internal\",\"is\",\"lock\",\"namespace\",\"new\",\"null\",\"operator\",\"out\",\"override\",\"params\",\"private\",\"protected\",\"public\",\"readonly\",\"ref\",\"return\",\"sealed\",\"sizeof\",\"stackalloc\",\"static\",\"struct\",\"switch\",\"this\",\"throw\",\"true\",\"try\",\"typeof\",\"unchecked\",\"unsafe\",\"using\",\"virtual\",\"while\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"bool\",\"byte\",\"char\",\"const\",\"decimal\",\"double\",\"float\",\"int\",\"long\",\"object\",\"sbyte\",\"short\",\"string\",\"uint\",\"ulong\",\"ushort\",\"void\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [Rule {rMatcher = AnyChar \"fF\", rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [Rule {rMatcher = StringDetect \"ULL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LUL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LLU\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"UL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LU\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"U\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"L\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"C#\",\"String\")]},Rule {rMatcher = IncludeRules (\"Doxygen\",\"\"), rAttribute = NormalTok, 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 (\"C#\",\"Commentar 1\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"C#\",\"Commentar 2\")]},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bpartial(?=\\\\s+(class|struct|interface|void))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bvar(?=\\\\s+\\\\w+\\\\s*=\\\\s*\\\\w+)\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\byield(?=\\\\s+(return|break))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(set|get)(?=\\\\s*[;{])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bglobal(?=\\\\s*::\\\\s*\\\\w+)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#region.*$\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#endregion.*$\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[_\\\\w][_\\\\w\\\\d]*(?=[\\\\s]*[(])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[.]{1,1}\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"C#\",\"Member\")]},Rule {rMatcher = AnyChar \":!%&()+,-/.*<=>?[]|~^;\", 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}),(\"String\",Context {cName = \"String\", cSyntax = \"C#\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = HlCStringChar, rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.cs\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Css.hs b/src/Skylighting/Syntax/Css.hs
--- a/src/Skylighting/Syntax/Css.hs
+++ b/src/Skylighting/Syntax/Css.hs
@@ -2,2699 +2,6 @@
 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"
-  }
+
+syntax :: Syntax
+syntax = read $! "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.*\\\\*/\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"/\\\\*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\", 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\", 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\", 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]))*\", 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})*\", 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_-]+\\\\)\", 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\", 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.]+[%]?\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\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 = fromList \"\\t\\n !&()*+,./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"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 = \"\\\\\\\\[\\\"']\", 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+\\\\(\", 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.]*\", 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\", 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.]+[%]?\", 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)\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \".*\", 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 = fromList \"\\t\\n !&()*+,./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"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 = fromList \"\\t\\n !&()*+,./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"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+\", 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+\\\\(\", 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+\", 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 = fromList \"\\t\\n !&()*+,./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"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+\", 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 = fromList \"\\t\\n !&()*+,./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"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+\", 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\", 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\", 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 = fromList \"\\t\\n !&()*+,./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"-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 = fromList \"\\t\\n !&()*+,./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"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\", 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 = fromList \"\\t\\n !&()*+,./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"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\", 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 = fromList \"\\t\\n !&()*+,./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"-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*:)\", 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\", 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 = fromList \"\\t\\n !&()*+,./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"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\"}"
diff --git a/src/Skylighting/Syntax/Curry.hs b/src/Skylighting/Syntax/Curry.hs
--- a/src/Skylighting/Syntax/Curry.hs
+++ b/src/Skylighting/Syntax/Curry.hs
@@ -2,1410 +2,6 @@
 module Skylighting.Syntax.Curry (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Curry"
-  , sFilename = "curry.xml"
-  , sShortname = "Curry"
-  , sContexts =
-      fromList
-        [ ( "Char"
-          , Context
-              { cName = "Char"
-              , cSyntax = "Curry"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Curry" , "CharEscape" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^'\\\\]"
-                              , reCompiled = Just (compileRegex True "[^'\\\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Curry" , "CharEnd" ) ]
-                      }
-                  ]
-              , cAttribute = CharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "Curry" , "CharSyntaxError" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CharEnd"
-          , Context
-              { cName = "CharEnd"
-              , cSyntax = "Curry"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , 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 = CharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Push ( "Curry" , "CharSyntaxError" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CharEscape"
-          , Context
-              { cName = "CharEscape"
-              , cSyntax = "Curry"
-              , cRules =
-                  [ Rule
-                      { rMatcher = AnyChar "abfnrtv\\\"'"
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Curry" , "CharEnd" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "o[0-7]+"
-                              , reCompiled = Just (compileRegex True "o[0-7]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Curry" , "CharEnd" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[0-9]+"
-                              , reCompiled = Just (compileRegex True "[0-9]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Curry" , "CharEnd" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "x[0-9a-fA-F]+"
-                              , reCompiled = Just (compileRegex True "x[0-9a-fA-F]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Curry" , "CharEnd" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\^[A-Z@\\[\\\\\\]\\^_]"
-                              , reCompiled = Just (compileRegex True "\\^[A-Z@\\[\\\\\\]\\^_]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Curry" , "CharEnd" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Curry" , "CharEnd" ) ]
-                      }
-                  , 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 = [ Pop , Push ( "Curry" , "CharEnd" ) ]
-                      }
-                  ]
-              , cAttribute = CharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Push ( "Curry" , "CharSyntaxError" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CharSyntaxError"
-          , Context
-              { cName = "CharSyntaxError"
-              , cSyntax = "Curry"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "Curry"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Currydoc"
-          , Context
-              { cName = "Currydoc"
-              , cSyntax = "Curry"
-              , cRules = []
-              , cAttribute = DocumentationTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Import"
-          , Context
-              { cName = "Import"
-              , cSyntax = "Curry"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "{-#"
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Curry" , "Pragma" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '{' '-'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Curry" , "Multiline Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "---"
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Curry" , "Currydoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '-' '-'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Curry" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([A-Z][a-zA-Z0-9_']*\\.)*[A-Z][a-zA-Z0-9_']*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "([A-Z][a-zA-Z0-9_']*\\.)*[A-Z][a-zA-Z0-9_']*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars 'a' 's'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "hiding"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , 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 = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Infix"
-          , Context
-              { cName = "Infix"
-              , cSyntax = "Curry"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Multiline Comment"
-          , Context
-              { cName = "Multiline Comment"
-              , cSyntax = "Curry"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '-' '}'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Curry"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "{-#"
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Curry" , "Pragma" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '{' '-'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Curry" , "Multiline Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "---"
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Curry" , "Currydoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '-' '-'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Curry" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "case"
-                               , "data"
-                               , "do"
-                               , "else"
-                               , "external"
-                               , "fcase"
-                               , "free"
-                               , "if"
-                               , "in"
-                               , "infix"
-                               , "infixl"
-                               , "infixr"
-                               , "let"
-                               , "module"
-                               , "of"
-                               , "then"
-                               , "type"
-                               , "where"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "all"
-                               , "and"
-                               , "any"
-                               , "appendFile"
-                               , "best"
-                               , "break"
-                               , "browse"
-                               , "browseList"
-                               , "chr"
-                               , "concat"
-                               , "concatMap"
-                               , "const"
-                               , "curry"
-                               , "div"
-                               , "doSolve"
-                               , "done"
-                               , "drop"
-                               , "dropWhile"
-                               , "either"
-                               , "elem"
-                               , "ensureNotFree"
-                               , "ensureSpine"
-                               , "enumFrom"
-                               , "enumFromThen"
-                               , "enumFromThenTo"
-                               , "enumFromTo"
-                               , "error"
-                               , "failed"
-                               , "filter"
-                               , "findall"
-                               , "flip"
-                               , "foldl"
-                               , "foldl1"
-                               , "foldr"
-                               , "foldr1"
-                               , "fst"
-                               , "getChar"
-                               , "getLine"
-                               , "head"
-                               , "id"
-                               , "if_then_else"
-                               , "iterate"
-                               , "length"
-                               , "lines"
-                               , "lookup"
-                               , "map"
-                               , "mapIO"
-                               , "mapIO_"
-                               , "max"
-                               , "maybe"
-                               , "min"
-                               , "mod"
-                               , "negate"
-                               , "not"
-                               , "notElem"
-                               , "null"
-                               , "once"
-                               , "or"
-                               , "ord"
-                               , "otherwise"
-                               , "print"
-                               , "putChar"
-                               , "putStr"
-                               , "putStrLn"
-                               , "readFile"
-                               , "repeat"
-                               , "replicate"
-                               , "return"
-                               , "reverse"
-                               , "seq"
-                               , "sequenceIO"
-                               , "sequenceIO_"
-                               , "show"
-                               , "snd"
-                               , "solveAll"
-                               , "span"
-                               , "splitAt"
-                               , "success"
-                               , "tail"
-                               , "take"
-                               , "takeWhile"
-                               , "try"
-                               , "uncurry"
-                               , "unknown"
-                               , "unlines"
-                               , "unpack"
-                               , "until"
-                               , "unwords"
-                               , "unzip"
-                               , "unzip3"
-                               , "words"
-                               , "writeFile"
-                               , "zip"
-                               , "zip3"
-                               , "zipWith"
-                               , "zipWith3"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Bool"
-                               , "Char"
-                               , "Either"
-                               , "Float"
-                               , "IO"
-                               , "Int"
-                               , "Maybe"
-                               , "Ordering"
-                               , "String"
-                               , "Success"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "EQ"
-                               , "False"
-                               , "GT"
-                               , "Just"
-                               , "LT"
-                               , "Left"
-                               , "Nothing"
-                               , "Right"
-                               , "True"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "import\\s+(qualified)?"
-                              , reCompiled = Just (compileRegex True "import\\s+(qualified)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Curry" , "Import" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "0(o|O)[0-7]+"
-                              , reCompiled = Just (compileRegex True "0(o|O)[0-7]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Curry" , "Char" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Curry" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(::|:=|:>|\\->|<\\-|\\.\\.)"
-                              , reCompiled =
-                                  Just (compileRegex True "(::|:=|:>|\\->|<\\-|\\.\\.)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\s*([a-z][a-zA-Z0-9_']*|\\([~!@#\\$%\\^&\\*\\+\\-=<>\\?\\./\\|\\\\:]+\\))\\s*(,\\s*([a-z][a-zA-Z0-9_']*|\\([~!@#\\$%\\^&\\*\\+\\-=<>\\?\\./\\|\\\\:]+\\)))*\\s*(?=::[^~!@#\\$%\\^&\\*\\+\\-=<>\\?\\./\\|\\\\:])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\s*([a-z][a-zA-Z0-9_']*|\\([~!@#\\$%\\^&\\*\\+\\-=<>\\?\\./\\|\\\\:]+\\))\\s*(,\\s*([a-z][a-zA-Z0-9_']*|\\([~!@#\\$%\\^&\\*\\+\\-=<>\\?\\./\\|\\\\:]+\\)))*\\s*(?=::[^~!@#\\$%\\^&\\*\\+\\-=<>\\?\\./\\|\\\\:])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([A-Z][a-zA-Z0-9_']*\\.)*[a-z][a-zA-Z0-9_']*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "([A-Z][a-zA-Z0-9_']*\\.)*[a-z][a-zA-Z0-9_']*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "([A-Z][a-zA-Z0-9_']*\\.)*[~!@#\\$%\\^&\\*\\+\\-=<>\\?\\./\\|\\\\:]+"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "([A-Z][a-zA-Z0-9_']*\\.)*[~!@#\\$%\\^&\\*\\+\\-=<>\\?\\./\\|\\\\:]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([A-Z][a-zA-Z0-9_']*\\.)*[A-Z][a-zA-Z0-9_']*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "([A-Z][a-zA-Z0-9_']*\\.)*[A-Z][a-zA-Z0-9_']*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Curry" , "Infix" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , 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
-              }
-          )
-        , ( "Pragma"
-          , Context
-              { cName = "Pragma"
-              , cSyntax = "Curry"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "#-}"
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Curry"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Curry" , "StringEscape" ) ]
-                      }
-                  , 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 = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "Curry" , "StringSyntaxError" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "StringEscape"
-          , Context
-              { cName = "StringEscape"
-              , cSyntax = "Curry"
-              , cRules =
-                  [ Rule
-                      { rMatcher = AnyChar "abfnrtv\\\"'&"
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "o[0-7]+"
-                              , reCompiled = Just (compileRegex True "o[0-7]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , 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 = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "x[0-9a-fA-F]+"
-                              , reCompiled = Just (compileRegex True "x[0-9a-fA-F]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\^[A-Z@\\[\\\\\\]\\^_]"
-                              , reCompiled = Just (compileRegex True "\\^[A-Z@\\[\\\\\\]\\^_]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Curry" , "StringGap" ) ]
-                      }
-                  , 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 = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "Curry" , "StringGap" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "StringGap"
-          , Context
-              { cName = "StringGap"
-              , cSyntax = "Curry"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Pop , Pop , Pop , Push ( "Curry" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , 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 = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "StringSyntaxError"
-          , Context
-              { cName = "StringSyntaxError"
-              , cSyntax = "Curry"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Bj\246rn Peem\246ller (bjp@informatik.uni-kiel.de)"
-  , sVersion = "1"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.curry" ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Curry\", sFilename = \"curry.xml\", sShortname = \"Curry\", sContexts = fromList [(\"Char\",Context {cName = \"Char\", cSyntax = \"Curry\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\\\\', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Curry\",\"CharEscape\")]},Rule {rMatcher = RegExpr (RE {reString = \"[^'\\\\\\\\]\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Curry\",\"CharEnd\")]}], cAttribute = CharTok, cLineEmptyContext = [], cLineEndContext = [Push (\"Curry\",\"CharSyntaxError\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CharEnd\",Context {cName = \"CharEnd\", cSyntax = \"Curry\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CharTok, cLineEmptyContext = [], cLineEndContext = [Pop,Push (\"Curry\",\"CharSyntaxError\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CharEscape\",Context {cName = \"CharEscape\", cSyntax = \"Curry\", cRules = [Rule {rMatcher = AnyChar \"abfnrtv\\\\\\\"'\", rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Curry\",\"CharEnd\")]},Rule {rMatcher = RegExpr (RE {reString = \"o[0-7]+\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Curry\",\"CharEnd\")]},Rule {rMatcher = RegExpr (RE {reString = \"[0-9]+\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Curry\",\"CharEnd\")]},Rule {rMatcher = RegExpr (RE {reString = \"x[0-9a-fA-F]+\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Curry\",\"CharEnd\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\^[A-Z@\\\\[\\\\\\\\\\\\]\\\\^_]\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Curry\",\"CharEnd\")]},Rule {rMatcher = RegExpr (RE {reString = \"NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Curry\",\"CharEnd\")]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Curry\",\"CharEnd\")]}], cAttribute = CharTok, cLineEmptyContext = [], cLineEndContext = [Pop,Push (\"Curry\",\"CharSyntaxError\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CharSyntaxError\",Context {cName = \"CharSyntaxError\", cSyntax = \"Curry\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment\",Context {cName = \"Comment\", cSyntax = \"Curry\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Currydoc\",Context {cName = \"Currydoc\", cSyntax = \"Curry\", cRules = [], cAttribute = DocumentationTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Import\",Context {cName = \"Import\", cSyntax = \"Curry\", cRules = [Rule {rMatcher = StringDetect \"{-#\", rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Curry\",\"Pragma\")]},Rule {rMatcher = Detect2Chars '{' '-', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Curry\",\"Multiline Comment\")]},Rule {rMatcher = StringDetect \"---\", rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Curry\",\"Currydoc\")]},Rule {rMatcher = Detect2Chars '-' '-', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Curry\",\"Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"([A-Z][a-zA-Z0-9_']*\\\\.)*[A-Z][a-zA-Z0-9_']*\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars 'a' 's', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"hiding\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S+\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Infix\",Context {cName = \"Infix\", cSyntax = \"Curry\", cRules = [Rule {rMatcher = DetectChar '`', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Multiline Comment\",Context {cName = \"Multiline Comment\", cSyntax = \"Curry\", cRules = [Rule {rMatcher = Detect2Chars '-' '}', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Curry\", cRules = [Rule {rMatcher = StringDetect \"{-#\", rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Curry\",\"Pragma\")]},Rule {rMatcher = Detect2Chars '{' '-', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Curry\",\"Multiline Comment\")]},Rule {rMatcher = StringDetect \"---\", rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Curry\",\"Currydoc\")]},Rule {rMatcher = Detect2Chars '-' '-', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Curry\",\"Comment\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"case\",\"data\",\"do\",\"else\",\"external\",\"fcase\",\"free\",\"if\",\"in\",\"infix\",\"infixl\",\"infixr\",\"let\",\"module\",\"of\",\"then\",\"type\",\"where\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"all\",\"and\",\"any\",\"appendFile\",\"best\",\"break\",\"browse\",\"browseList\",\"chr\",\"concat\",\"concatMap\",\"const\",\"curry\",\"div\",\"doSolve\",\"done\",\"drop\",\"dropWhile\",\"either\",\"elem\",\"ensureNotFree\",\"ensureSpine\",\"enumFrom\",\"enumFromThen\",\"enumFromThenTo\",\"enumFromTo\",\"error\",\"failed\",\"filter\",\"findall\",\"flip\",\"foldl\",\"foldl1\",\"foldr\",\"foldr1\",\"fst\",\"getChar\",\"getLine\",\"head\",\"id\",\"if_then_else\",\"iterate\",\"length\",\"lines\",\"lookup\",\"map\",\"mapIO\",\"mapIO_\",\"max\",\"maybe\",\"min\",\"mod\",\"negate\",\"not\",\"notElem\",\"null\",\"once\",\"or\",\"ord\",\"otherwise\",\"print\",\"putChar\",\"putStr\",\"putStrLn\",\"readFile\",\"repeat\",\"replicate\",\"return\",\"reverse\",\"seq\",\"sequenceIO\",\"sequenceIO_\",\"show\",\"snd\",\"solveAll\",\"span\",\"splitAt\",\"success\",\"tail\",\"take\",\"takeWhile\",\"try\",\"uncurry\",\"unknown\",\"unlines\",\"unpack\",\"until\",\"unwords\",\"unzip\",\"unzip3\",\"words\",\"writeFile\",\"zip\",\"zip3\",\"zipWith\",\"zipWith3\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"Bool\",\"Char\",\"Either\",\"Float\",\"IO\",\"Int\",\"Maybe\",\"Ordering\",\"String\",\"Success\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"EQ\",\"False\",\"GT\",\"Just\",\"LT\",\"Left\",\"Nothing\",\"Right\",\"True\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"import\\\\s+(qualified)?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Curry\",\"Import\")]},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"0(o|O)[0-7]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Curry\",\"Char\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Curry\",\"String\")]},Rule {rMatcher = RegExpr (RE {reString = \"(::|:=|:>|\\\\->|<\\\\-|\\\\.\\\\.)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*([a-z][a-zA-Z0-9_']*|\\\\([~!@#\\\\$%\\\\^&\\\\*\\\\+\\\\-=<>\\\\?\\\\./\\\\|\\\\\\\\:]+\\\\))\\\\s*(,\\\\s*([a-z][a-zA-Z0-9_']*|\\\\([~!@#\\\\$%\\\\^&\\\\*\\\\+\\\\-=<>\\\\?\\\\./\\\\|\\\\\\\\:]+\\\\)))*\\\\s*(?=::[^~!@#\\\\$%\\\\^&\\\\*\\\\+\\\\-=<>\\\\?\\\\./\\\\|\\\\\\\\:])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([A-Z][a-zA-Z0-9_']*\\\\.)*[a-z][a-zA-Z0-9_']*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([A-Z][a-zA-Z0-9_']*\\\\.)*[~!@#\\\\$%\\\\^&\\\\*\\\\+\\\\-=<>\\\\?\\\\./\\\\|\\\\\\\\:]+\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([A-Z][a-zA-Z0-9_']*\\\\.)*[A-Z][a-zA-Z0-9_']*\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '`', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Curry\",\"Infix\")]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ']', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', 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}),(\"Pragma\",Context {cName = \"Pragma\", cSyntax = \"Curry\", cRules = [Rule {rMatcher = StringDetect \"#-}\", rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Curry\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\\\\', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Curry\",\"StringEscape\")]},Rule {rMatcher = RegExpr (RE {reString = \"[^\\\"\\\\\\\\]*\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Push (\"Curry\",\"StringSyntaxError\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"StringEscape\",Context {cName = \"StringEscape\", cSyntax = \"Curry\", cRules = [Rule {rMatcher = AnyChar \"abfnrtv\\\\\\\"'&\", rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"o[0-7]+\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[0-9]+\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"x[0-9a-fA-F]+\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\^[A-Z@\\\\[\\\\\\\\\\\\]\\\\^_]\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectSpaces, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Curry\",\"StringGap\")]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Push (\"Curry\",\"StringGap\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"StringGap\",Context {cName = \"StringGap\", cSyntax = \"Curry\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\\\', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop,Push (\"Curry\",\"String\")]},Rule {rMatcher = DetectChar '\"', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"StringSyntaxError\",Context {cName = \"StringSyntaxError\", cSyntax = \"Curry\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Bj\\246rn Peem\\246ller (bjp@informatik.uni-kiel.de)\", sVersion = \"1\", sLicense = \"LGPL\", sExtensions = [\"*.curry\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/D.hs b/src/Skylighting/Syntax/D.hs
--- a/src/Skylighting/Syntax/D.hs
+++ b/src/Skylighting/Syntax/D.hs
@@ -2,3580 +2,6 @@
 module Skylighting.Syntax.D (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "D"
-  , sFilename = "d.xml"
-  , sShortname = "D"
-  , sContexts =
-      fromList
-        [ ( "BQString"
-          , Context
-              { cName = "BQString"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CharLiteral"
-          , Context
-              { cName = "CharLiteral"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "CharLiteralClosing" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(u[\\da-fA-F]{4}|U[\\da-fA-F]{8}|&[a-zA-Z]\\w+;)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\\\(u[\\da-fA-F]{4}|U[\\da-fA-F]{8}|&[a-zA-Z]\\w+;)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "CharLiteralClosing" ) ]
-                      }
-                  , 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 = [ Push ( "D" , "CharLiteralClosing" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "."
-                              , reCompiled = Just (compileRegex True ".")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "CharLiteralClosing" ) ]
-                      }
-                  ]
-              , cAttribute = CharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "D" , "CharLiteralClosing" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "CharLiteralClosing"
-          , Context
-              { cName = "CharLiteralClosing"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop , Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "CommentBlock"
-          , Context
-              { cName = "CommentBlock"
-              , cSyntax = "D"
-              , 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 = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CommentLine"
-          , Context
-              { cName = "CommentLine"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CommentNested"
-          , Context
-              { cName = "CommentNested"
-              , cSyntax = "D"
-              , 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 = [ Push ( "D" , "CommentNested" ) ]
-                      }
-                  , 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 = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CommentRules"
-          , Context
-              { cName = "CommentRules"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "D" , "DdocNormal" )
-                      , rAttribute = NormalTok
-                      , 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 ( "D" , "CommentLine" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "CommentBlock" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '+'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "CommentNested" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "DdocBlock"
-          , Context
-              { cName = "DdocBlock"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\*+/"
-                              , reCompiled = Just (compileRegex True "\\*+/")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '('
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "DdocMacro" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\w_]+:($|\\s)"
-                              , reCompiled = Just (compileRegex True "[\\w_]+:($|\\s)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^-]-{3,}"
-                              , reCompiled = Just (compileRegex True "[^-]-{3,}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-{3,}($|\\s)"
-                              , reCompiled = Just (compileRegex True "-{3,}($|\\s)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "DdocBlockCode" ) ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "DdocBlockCode"
-          , Context
-              { cName = "DdocBlockCode"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\*+/"
-                              , reCompiled = Just (compileRegex True "\\*+/")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^-]-{3,}"
-                              , reCompiled = Just (compileRegex True "[^-]-{3,}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-{3,}($|\\s)"
-                              , reCompiled = Just (compileRegex True "-{3,}($|\\s)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "D" , "" )
-                      , 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
-              }
-          )
-        , ( "DdocLine"
-          , Context
-              { cName = "DdocLine"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '('
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "DdocMacro" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\w_]+:($|\\s)"
-                              , reCompiled = Just (compileRegex True "[\\w_]+:($|\\s)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "DdocMacro"
-          , Context
-              { cName = "DdocMacro"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "D" , "MacroRules" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "DdocMacro2" ) ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "DdocMacro2"
-          , Context
-              { cName = "DdocMacro2"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "D" , "MacroRules" )
-                      , 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
-              }
-          )
-        , ( "DdocMacro3"
-          , Context
-              { cName = "DdocMacro3"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "D" , "MacroRules" )
-                      , 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
-              }
-          )
-        , ( "DdocNested"
-          , Context
-              { cName = "DdocNested"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '+'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "DdocNested2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\++/"
-                              , reCompiled = Just (compileRegex True "\\++/")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '+'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '('
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "DdocMacro" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\w_]+:($|\\s)"
-                              , reCompiled = Just (compileRegex True "[\\w_]+:($|\\s)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^-]-{3,}"
-                              , reCompiled = Just (compileRegex True "[^-]-{3,}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-{3,}($|\\s)"
-                              , reCompiled = Just (compileRegex True "-{3,}($|\\s)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "DdocNestedCode" ) ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "DdocNested2"
-          , Context
-              { cName = "DdocNested2"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\++/"
-                              , reCompiled = Just (compileRegex True "\\++/")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "D" , "DdocNested" )
-                      , 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
-              }
-          )
-        , ( "DdocNestedCode"
-          , Context
-              { cName = "DdocNestedCode"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\++/"
-                              , reCompiled = Just (compileRegex True "\\++/")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '+'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^-]-{3,}"
-                              , reCompiled = Just (compileRegex True "[^-]-{3,}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-{3,}($|\\s)"
-                              , reCompiled = Just (compileRegex True "-{3,}($|\\s)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "D" , "" )
-                      , 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
-              }
-          )
-        , ( "DdocNormal"
-          , Context
-              { cName = "DdocNormal"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "/{3,}"
-                              , reCompiled = Just (compileRegex True "/{3,}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "DdocLine" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "/\\*{2,}(?!/)"
-                              , reCompiled = Just (compileRegex True "/\\*{2,}(?!/)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "DdocBlock" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "/\\+{2,}(?!/)"
-                              , reCompiled = Just (compileRegex True "/\\+{2,}(?!/)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "DdocNested" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "HTMLEntity"
-          , Context
-              { cName = "HTMLEntity"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z]\\w+;"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z]\\w+;")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = SpecialCharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "HexString"
-          , Context
-              { cName = "HexString"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^\\sa-fA-F\\d\"]+"
-                              , reCompiled = Just (compileRegex True "[^\\sa-fA-F\\d\"]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "LinePragma"
-          , Context
-              { cName = "LinePragma"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "((0([0-7_]+|[bB]_*[01][01_]*|[xX]_*[\\da-fA-F][\\da-fA-F_]*))|\\d+[\\d_]*)(L[uU]?|[uU]L?)?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "((0([0-7_]+|[bB]_*[01][01_]*|[xX]_*[\\da-fA-F][\\da-fA-F_]*))|\\d+[\\d_]*)(L[uU]?|[uU]L?)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "__DATE__"
-                               , "__EOF__"
-                               , "__FILE__"
-                               , "__LINE__"
-                               , "__TIMESTAMP__"
-                               , "__TIME__"
-                               , "__VENDOR__"
-                               , "__VERSION__"
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "D" , "CommentRules" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = [ Pop ]
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Linkage"
-          , Context
-              { cName = "Linkage"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "Linkage2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "D" , "CommentRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "Linkage2"
-          , Context
-              { cName = "Linkage2"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "C++"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "C" , "D" , "Pascal" , "System" , "Windows" ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "D" , "CommentRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^)\\s\\n]+"
-                              , reCompiled = Just (compileRegex True "[^)\\s\\n]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "MacroRules"
-          , Context
-              { cName = "MacroRules"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '$' '('
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "DdocMacro" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "DdocMacro3" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ModuleName"
-          , Context
-              { cName = "ModuleName"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "D" , "CommentRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^\\s\\w.:,=]"
-                              , reCompiled = Just (compileRegex True "[^\\s\\w.:,=]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "NumberLiteral"
-          , Context
-              { cName = "NumberLiteral"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "0[xX][\\da-fA-F_]*(\\.[\\da-fA-F_]*)?[pP][-+]?\\d[\\d_]*[fFL]?i?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "0[xX][\\da-fA-F_]*(\\.[\\da-fA-F_]*)?[pP][-+]?\\d[\\d_]*[fFL]?i?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\d[_\\d]*(\\.(?!\\.)[_\\d]*([eE][-+]?\\d[_\\d]*)?[fFL]?i?|[eE][-+]?\\d[_\\d]*[fFL]?i?|[fF]i?|[fFL]?i)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\d[_\\d]*(\\.(?!\\.)[_\\d]*([eE][-+]?\\d[_\\d]*)?[fFL]?i?|[eE][-+]?\\d[_\\d]*[fFL]?i?|[fF]i?|[fFL]?i)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "0[bB]_*[01][01_]*(L[uU]?|[uU]L?)?"
-                              , reCompiled =
-                                  Just (compileRegex True "0[bB]_*[01][01_]*(L[uU]?|[uU]L?)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "0[0-7_]+(L[uU]?|[uU]L?)?"
-                              , reCompiled = Just (compileRegex True "0[0-7_]+(L[uU]?|[uU]L?)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "0[xX]_*[\\da-fA-F][\\da-fA-F_]*(L[uU]?|[uU]L?)?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "0[xX]_*[\\da-fA-F][\\da-fA-F_]*(L[uU]?|[uU]L?)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\d+[\\d_]*(L[uU]?|[uU]L?)?"
-                              , reCompiled =
-                                  Just (compileRegex True "\\d+[\\d_]*(L[uU]?|[uU]L?)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "Pragma"
-          , Context
-              { cName = "Pragma"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "Pragma2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "D" , "CommentRules" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^\\s\\n]+"
-                              , reCompiled = Just (compileRegex True "[^\\s\\n]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Pragma2"
-          , Context
-              { cName = "Pragma2"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "lib" , "msg" ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "D" , "CommentRules" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^)\\s\\n]+"
-                              , reCompiled = Just (compileRegex True "[^)\\s\\n]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Properties"
-          , Context
-              { cName = "Properties"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "alignof"
-                               , "dig"
-                               , "dup"
-                               , "epsilon"
-                               , "idup"
-                               , "im"
-                               , "infinity"
-                               , "init"
-                               , "keys"
-                               , "length"
-                               , "mangleof"
-                               , "mant_dig"
-                               , "max"
-                               , "max_10_exp"
-                               , "max_exp"
-                               , "min"
-                               , "min_10_exp"
-                               , "min_exp"
-                               , "nan"
-                               , "offsetof"
-                               , "ptr"
-                               , "re"
-                               , "rehash"
-                               , "reverse"
-                               , "sizeof"
-                               , "sort"
-                               , "stringof"
-                               , "tupleof"
-                               , "values"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "RawString"
-          , Context
-              { cName = "RawString"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = VerbatimStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Region Marker"
-          , Context
-              { cName = "Region Marker"
-              , cSyntax = "D"
-              , cRules = []
-              , cAttribute = RegionMarkerTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Scope"
-          , Context
-              { cName = "Scope"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "Scope2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "D" , "CommentRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "Scope2"
-          , Context
-              { cName = "Scope2"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "exit" , "failure" , "success" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "D" , "CommentRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^)\\s\\n]+"
-                              , reCompiled = Just (compileRegex True "[^)\\s\\n]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "StartingLetter"
-          , Context
-              { cName = "StartingLetter"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^a-zA-Z_]"
-                              , reCompiled = Just (compileRegex True "[^a-zA-Z_]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "in\\s*(?=\\{)"
-                              , reCompiled = Just (compileRegex True "in\\s*(?=\\{)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "out\\s*(?=(\\(([a-zA-Z_][\\w_]*)?\\)\\s*)?\\{)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "out\\s*(?=(\\(([a-zA-Z_][\\w_]*)?\\)\\s*)?\\{)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "scope\\s*(?=\\()"
-                              , reCompiled = Just (compileRegex True "scope\\s*(?=\\()")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "Scope" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "import\\s*(?=\\()"
-                              , reCompiled = Just (compileRegex True "import\\s*(?=\\()")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "function\\s*(?=\\()"
-                              , reCompiled = Just (compileRegex True "function\\s*(?=\\()")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "delegate\\s*(?=\\()"
-                              , reCompiled = Just (compileRegex True "delegate\\s*(?=\\()")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "asm"
-                               , "body"
-                               , "break"
-                               , "case"
-                               , "catch"
-                               , "continue"
-                               , "default"
-                               , "do"
-                               , "else"
-                               , "finally"
-                               , "for"
-                               , "foreach"
-                               , "foreach_reverse"
-                               , "goto"
-                               , "if"
-                               , "mixin"
-                               , "return"
-                               , "switch"
-                               , "synchronized"
-                               , "throw"
-                               , "try"
-                               , "while"
-                               , "with"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "abstract"
-                               , "align"
-                               , "auto"
-                               , "const"
-                               , "export"
-                               , "final"
-                               , "immutable"
-                               , "inout"
-                               , "invariant"
-                               , "lazy"
-                               , "nothrow"
-                               , "out"
-                               , "override"
-                               , "package"
-                               , "private"
-                               , "protected"
-                               , "public"
-                               , "pure"
-                               , "ref"
-                               , "scope"
-                               , "static"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "assert"
-                               , "cast"
-                               , "delegate"
-                               , "delete"
-                               , "false"
-                               , "function"
-                               , "in"
-                               , "is"
-                               , "new"
-                               , "null"
-                               , "super"
-                               , "this"
-                               , "true"
-                               , "typeid"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "alias"
-                               , "class"
-                               , "enum"
-                               , "interface"
-                               , "struct"
-                               , "typedef"
-                               , "union"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "macro" , "template" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "import" , "module" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "ModuleName" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "bool"
-                               , "byte"
-                               , "cdouble"
-                               , "cent"
-                               , "cfloat"
-                               , "char"
-                               , "creal"
-                               , "dchar"
-                               , "double"
-                               , "float"
-                               , "idouble"
-                               , "ifloat"
-                               , "int"
-                               , "ireal"
-                               , "long"
-                               , "real"
-                               , "short"
-                               , "typeof"
-                               , "ubyte"
-                               , "ucent"
-                               , "uint"
-                               , "ulong"
-                               , "ushort"
-                               , "void"
-                               , "wchar"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ClassInfo"
-                               , "Error"
-                               , "Exception"
-                               , "Interface"
-                               , "ModuleInfo"
-                               , "Object"
-                               , "OffsetTypeInfo"
-                               , "TypeInfo"
-                               , "TypeInfo_Array"
-                               , "TypeInfo_AssociativeArray"
-                               , "TypeInfo_Class"
-                               , "TypeInfo_Const"
-                               , "TypeInfo_Delegate"
-                               , "TypeInfo_Enum"
-                               , "TypeInfo_Function"
-                               , "TypeInfo_Interface"
-                               , "TypeInfo_Invariant"
-                               , "TypeInfo_Pointer"
-                               , "TypeInfo_StaticArray"
-                               , "TypeInfo_Struct"
-                               , "TypeInfo_Tuple"
-                               , "TypeInfo_Typedef"
-                               , "bit"
-                               , "dstring"
-                               , "hash_t"
-                               , "ptrdiff_t"
-                               , "size_t"
-                               , "string"
-                               , "wstring"
-                               ])
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "extern" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "Linkage" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "__DATE__"
-                               , "__EOF__"
-                               , "__FILE__"
-                               , "__LINE__"
-                               , "__TIMESTAMP__"
-                               , "__TIME__"
-                               , "__VENDOR__"
-                               , "__VERSION__"
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "debug" , "unittest" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "pragma" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "Pragma" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "version" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "Version" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "deprecated" , "volatile" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars 'r' '"'
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "RawString" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars 'x' '"'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "HexString" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '"' 'c'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '"' 'w'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '"' 'd'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' 'u'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "UnicodeShort" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' 'U'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "UnicodeLong" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '&'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "HTMLEntity" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "UnicodeLong"
-          , Context
-              { cName = "UnicodeLong"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\da-fA-F]{8}"
-                              , reCompiled = Just (compileRegex True "[\\da-fA-F]{8}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = SpecialCharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "UnicodeShort"
-          , Context
-              { cName = "UnicodeShort"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\da-fA-F]{4}"
-                              , reCompiled = Just (compileRegex True "[\\da-fA-F]{4}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = SpecialCharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Version"
-          , Context
-              { cName = "Version"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "Version2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "Version2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "D" , "CommentRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^\\s\\n]+"
-                              , reCompiled = Just (compileRegex True "[^\\s\\n]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Version2"
-          , Context
-              { cName = "Version2"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "BigEndian"
-                               , "D_Coverage"
-                               , "D_InlineAsm_X86"
-                               , "D_Version2"
-                               , "DigitalMars"
-                               , "LittleEndian"
-                               , "Win32"
-                               , "Win64"
-                               , "Windows"
-                               , "X86"
-                               , "X86_64"
-                               , "all"
-                               , "linux"
-                               , "none"
-                               , "unittest"
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\d+[\\d_]*(L[uU]?|[uU]L?)?"
-                              , reCompiled =
-                                  Just (compileRegex True "\\d+[\\d_]*(L[uU]?|[uU]L?)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "D" , "CommentRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^)\\s\\n]+"
-                              , reCompiled = Just (compileRegex True "[^)\\s\\n]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "normal"
-          , Context
-              { cName = "normal"
-              , cSyntax = "D"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z_]"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z_]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "StartingLetter" ) ]
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' 'u'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "UnicodeShort" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' 'U'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "UnicodeLong" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '&'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "HTMLEntity" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "CharLiteral" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "BQString" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "//BEGIN"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "Region Marker" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "//END"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "Region Marker" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "D" , "CommentRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "..."
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '.' '.'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.\\d[\\d_]*([eE][-+]?\\d[\\d_]*)?[fFL]?i?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\.\\d[\\d_]*([eE][-+]?\\d[\\d_]*)?[fFL]?i?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '.'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "Properties" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\d"
-                              , reCompiled = Just (compileRegex True "\\d")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "NumberLiteral" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "#line"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "D" , "LinePragma" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ":!%&()+,-/.*<=>?[]|~^;"
-                      , 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
-              }
-          )
-        ]
-  , sAuthor =
-      "Diggory Hardy (diggory.hardy@gmail.com), Aziz K\246ksal (aziz.koeksal@gmail.com), Jari-Matti M\228kel\228 (jmjm@iki.fi), Simon J Mackenzie (project.katedxml@smackoz.fastmail.fm)"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.d" , "*.D" , "*.di" , "*.DI" ]
-  , sStartingContext = "normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"D\", sFilename = \"d.xml\", sShortname = \"D\", sContexts = fromList [(\"BQString\",Context {cName = \"BQString\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectChar '`', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CharLiteral\",Context {cName = \"CharLiteral\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = HlCStringChar, rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"CharLiteralClosing\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(u[\\\\da-fA-F]{4}|U[\\\\da-fA-F]{8}|&[a-zA-Z]\\\\w+;)\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"CharLiteralClosing\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"CharLiteralClosing\")]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"CharLiteralClosing\")]}], cAttribute = CharTok, cLineEmptyContext = [], cLineEndContext = [Push (\"D\",\"CharLiteralClosing\")], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"CharLiteralClosing\",Context {cName = \"CharLiteralClosing\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop,Pop], cDynamic = False}),(\"CommentBlock\",Context {cName = \"CommentBlock\", cSyntax = \"D\", 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 = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CommentLine\",Context {cName = \"CommentLine\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CommentNested\",Context {cName = \"CommentNested\", cSyntax = \"D\", 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 = [Push (\"D\",\"CommentNested\")]},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 = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CommentRules\",Context {cName = \"CommentRules\", cSyntax = \"D\", cRules = [Rule {rMatcher = IncludeRules (\"D\",\"DdocNormal\"), rAttribute = NormalTok, 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 (\"D\",\"CommentLine\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"CommentBlock\")]},Rule {rMatcher = Detect2Chars '/' '+', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"CommentNested\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"DdocBlock\",Context {cName = \"DdocBlock\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectSpaces, 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 = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\*+/\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '$' '(', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"DdocMacro\")]},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\w_]+:($|\\\\s)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[^-]-{3,}\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-{3,}($|\\\\s)\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"DdocBlockCode\")]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"DdocBlockCode\",Context {cName = \"DdocBlockCode\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\*+/\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[^-]-{3,}\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-{3,}($|\\\\s)\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"D\",\"\"), 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}),(\"DdocLine\",Context {cName = \"DdocLine\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectSpaces, 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 = []},Rule {rMatcher = Detect2Chars '$' '(', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"DdocMacro\")]},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\w_]+:($|\\\\s)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"DdocMacro\",Context {cName = \"DdocMacro\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ')', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"D\",\"MacroRules\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"DdocMacro2\")]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"DdocMacro2\",Context {cName = \"DdocMacro2\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"D\",\"MacroRules\"), 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}),(\"DdocMacro3\",Context {cName = \"DdocMacro3\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"D\",\"MacroRules\"), 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}),(\"DdocNested\",Context {cName = \"DdocNested\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectSpaces, 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 = []},Rule {rMatcher = Detect2Chars '/' '+', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"DdocNested2\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\++/\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '+', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '$' '(', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"DdocMacro\")]},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\w_]+:($|\\\\s)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[^-]-{3,}\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-{3,}($|\\\\s)\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"DdocNestedCode\")]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"DdocNested2\",Context {cName = \"DdocNested2\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectSpaces, 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 = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\++/\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"D\",\"DdocNested\"), 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}),(\"DdocNestedCode\",Context {cName = \"DdocNestedCode\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\++/\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar '+', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[^-]-{3,}\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-{3,}($|\\\\s)\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"D\",\"\"), 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}),(\"DdocNormal\",Context {cName = \"DdocNormal\", cSyntax = \"D\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"/{3,}\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"DdocLine\")]},Rule {rMatcher = RegExpr (RE {reString = \"/\\\\*{2,}(?!/)\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"DdocBlock\")]},Rule {rMatcher = RegExpr (RE {reString = \"/\\\\+{2,}(?!/)\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"DdocNested\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"HTMLEntity\",Context {cName = \"HTMLEntity\", cSyntax = \"D\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z]\\\\w+;\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = SpecialCharTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"HexString\",Context {cName = \"HexString\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[^\\\\sa-fA-F\\\\d\\\"]+\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"LinePragma\",Context {cName = \"LinePragma\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"((0([0-7_]+|[bB]_*[01][01_]*|[xX]_*[\\\\da-fA-F][\\\\da-fA-F_]*))|\\\\d+[\\\\d_]*)(L[uU]?|[uU]L?)?\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\"[^\\\"]*\\\"\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"__DATE__\",\"__EOF__\",\"__FILE__\",\"__LINE__\",\"__TIMESTAMP__\",\"__TIME__\",\"__VENDOR__\",\"__VERSION__\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"D\",\"CommentRules\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \".+\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Linkage\",Context {cName = \"Linkage\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"Linkage2\")]},Rule {rMatcher = IncludeRules (\"D\",\"CommentRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"Linkage2\",Context {cName = \"Linkage2\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"C++\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"C\",\"D\",\"Pascal\",\"System\",\"Windows\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"D\",\"CommentRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[^)\\\\s\\\\n]+\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"MacroRules\",Context {cName = \"MacroRules\", cSyntax = \"D\", cRules = [Rule {rMatcher = Detect2Chars '$' '(', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"DdocMacro\")]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"DdocMacro3\")]},Rule {rMatcher = DetectChar '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ModuleName\",Context {cName = \"ModuleName\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"D\",\"CommentRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[^\\\\s\\\\w.:,=]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"NumberLiteral\",Context {cName = \"NumberLiteral\", cSyntax = \"D\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"0[xX][\\\\da-fA-F_]*(\\\\.[\\\\da-fA-F_]*)?[pP][-+]?\\\\d[\\\\d_]*[fFL]?i?\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\d[_\\\\d]*(\\\\.(?!\\\\.)[_\\\\d]*([eE][-+]?\\\\d[_\\\\d]*)?[fFL]?i?|[eE][-+]?\\\\d[_\\\\d]*[fFL]?i?|[fF]i?|[fFL]?i)\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"0[bB]_*[01][01_]*(L[uU]?|[uU]L?)?\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"0[0-7_]+(L[uU]?|[uU]L?)?\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"0[xX]_*[\\\\da-fA-F][\\\\da-fA-F_]*(L[uU]?|[uU]L?)?\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\d+[\\\\d_]*(L[uU]?|[uU]L?)?\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"Pragma\",Context {cName = \"Pragma\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"Pragma2\")]},Rule {rMatcher = IncludeRules (\"D\",\"CommentRules\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[^\\\\s\\\\n]+\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Pragma2\",Context {cName = \"Pragma2\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"lib\",\"msg\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"D\",\"CommentRules\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[^)\\\\s\\\\n]+\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Properties\",Context {cName = \"Properties\", cSyntax = \"D\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"alignof\",\"dig\",\"dup\",\"epsilon\",\"idup\",\"im\",\"infinity\",\"init\",\"keys\",\"length\",\"mangleof\",\"mant_dig\",\"max\",\"max_10_exp\",\"max_exp\",\"min\",\"min_10_exp\",\"min_exp\",\"nan\",\"offsetof\",\"ptr\",\"re\",\"rehash\",\"reverse\",\"sizeof\",\"sort\",\"stringof\",\"tupleof\",\"values\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"RawString\",Context {cName = \"RawString\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = VerbatimStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Region Marker\",Context {cName = \"Region Marker\", cSyntax = \"D\", cRules = [], cAttribute = RegionMarkerTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Scope\",Context {cName = \"Scope\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"Scope2\")]},Rule {rMatcher = IncludeRules (\"D\",\"CommentRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"Scope2\",Context {cName = \"Scope2\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"exit\",\"failure\",\"success\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"D\",\"CommentRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[^)\\\\s\\\\n]+\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"StartingLetter\",Context {cName = \"StartingLetter\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[^a-zA-Z_]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"in\\\\s*(?=\\\\{)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"out\\\\s*(?=(\\\\(([a-zA-Z_][\\\\w_]*)?\\\\)\\\\s*)?\\\\{)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"scope\\\\s*(?=\\\\()\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"Scope\")]},Rule {rMatcher = RegExpr (RE {reString = \"import\\\\s*(?=\\\\()\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"function\\\\s*(?=\\\\()\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"delegate\\\\s*(?=\\\\()\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"asm\",\"body\",\"break\",\"case\",\"catch\",\"continue\",\"default\",\"do\",\"else\",\"finally\",\"for\",\"foreach\",\"foreach_reverse\",\"goto\",\"if\",\"mixin\",\"return\",\"switch\",\"synchronized\",\"throw\",\"try\",\"while\",\"with\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"abstract\",\"align\",\"auto\",\"const\",\"export\",\"final\",\"immutable\",\"inout\",\"invariant\",\"lazy\",\"nothrow\",\"out\",\"override\",\"package\",\"private\",\"protected\",\"public\",\"pure\",\"ref\",\"scope\",\"static\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"assert\",\"cast\",\"delegate\",\"delete\",\"false\",\"function\",\"in\",\"is\",\"new\",\"null\",\"super\",\"this\",\"true\",\"typeid\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"alias\",\"class\",\"enum\",\"interface\",\"struct\",\"typedef\",\"union\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"macro\",\"template\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"import\",\"module\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"ModuleName\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"bool\",\"byte\",\"cdouble\",\"cent\",\"cfloat\",\"char\",\"creal\",\"dchar\",\"double\",\"float\",\"idouble\",\"ifloat\",\"int\",\"ireal\",\"long\",\"real\",\"short\",\"typeof\",\"ubyte\",\"ucent\",\"uint\",\"ulong\",\"ushort\",\"void\",\"wchar\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"ClassInfo\",\"Error\",\"Exception\",\"Interface\",\"ModuleInfo\",\"Object\",\"OffsetTypeInfo\",\"TypeInfo\",\"TypeInfo_Array\",\"TypeInfo_AssociativeArray\",\"TypeInfo_Class\",\"TypeInfo_Const\",\"TypeInfo_Delegate\",\"TypeInfo_Enum\",\"TypeInfo_Function\",\"TypeInfo_Interface\",\"TypeInfo_Invariant\",\"TypeInfo_Pointer\",\"TypeInfo_StaticArray\",\"TypeInfo_Struct\",\"TypeInfo_Tuple\",\"TypeInfo_Typedef\",\"bit\",\"dstring\",\"hash_t\",\"ptrdiff_t\",\"size_t\",\"string\",\"wstring\"])), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"extern\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"Linkage\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"__DATE__\",\"__EOF__\",\"__FILE__\",\"__LINE__\",\"__TIMESTAMP__\",\"__TIME__\",\"__VENDOR__\",\"__VERSION__\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"debug\",\"unittest\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"pragma\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"Pragma\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"version\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"Version\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"deprecated\",\"volatile\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars 'r' '\"', rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"RawString\")]},Rule {rMatcher = Detect2Chars 'x' '\"', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"HexString\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"D\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\"' 'c', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '\"' 'w', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '\"' 'd', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '\\\\' 'u', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"UnicodeShort\")]},Rule {rMatcher = Detect2Chars '\\\\' 'U', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"UnicodeLong\")]},Rule {rMatcher = Detect2Chars '\\\\' '&', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"HTMLEntity\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"UnicodeLong\",Context {cName = \"UnicodeLong\", cSyntax = \"D\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[\\\\da-fA-F]{8}\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = SpecialCharTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"UnicodeShort\",Context {cName = \"UnicodeShort\", cSyntax = \"D\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[\\\\da-fA-F]{4}\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = SpecialCharTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Version\",Context {cName = \"Version\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '=', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"Version2\")]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"Version2\")]},Rule {rMatcher = IncludeRules (\"D\",\"CommentRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[^\\\\s\\\\n]+\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Version2\",Context {cName = \"Version2\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"BigEndian\",\"D_Coverage\",\"D_InlineAsm_X86\",\"D_Version2\",\"DigitalMars\",\"LittleEndian\",\"Win32\",\"Win64\",\"Windows\",\"X86\",\"X86_64\",\"all\",\"linux\",\"none\",\"unittest\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\d+[\\\\d_]*(L[uU]?|[uU]L?)?\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"D\",\"CommentRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[^)\\\\s\\\\n]+\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"normal\",Context {cName = \"normal\", cSyntax = \"D\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z_]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"StartingLetter\")]},Rule {rMatcher = HlCStringChar, rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' 'u', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"UnicodeShort\")]},Rule {rMatcher = Detect2Chars '\\\\' 'U', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"UnicodeLong\")]},Rule {rMatcher = Detect2Chars '\\\\' '&', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"HTMLEntity\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"CharLiteral\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"String\")]},Rule {rMatcher = DetectChar '`', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"BQString\")]},Rule {rMatcher = StringDetect \"//BEGIN\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"Region Marker\")]},Rule {rMatcher = StringDetect \"//END\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"Region Marker\")]},Rule {rMatcher = IncludeRules (\"D\",\"CommentRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"...\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '.' '.', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.\\\\d[\\\\d_]*([eE][-+]?\\\\d[\\\\d_]*)?[fFL]?i?\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '.', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"Properties\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\d\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"NumberLiteral\")]},Rule {rMatcher = StringDetect \"#line\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"D\",\"LinePragma\")]},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \":!%&()+,-/.*<=>?[]|~^;\", 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})], sAuthor = \"Diggory Hardy (diggory.hardy@gmail.com), Aziz K\\246ksal (aziz.koeksal@gmail.com), Jari-Matti M\\228kel\\228 (jmjm@iki.fi), Simon J Mackenzie (project.katedxml@smackoz.fastmail.fm)\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [\"*.d\",\"*.D\",\"*.di\",\"*.DI\"], sStartingContext = \"normal\"}"
diff --git a/src/Skylighting/Syntax/Diff.hs b/src/Skylighting/Syntax/Diff.hs
--- a/src/Skylighting/Syntax/Diff.hs
+++ b/src/Skylighting/Syntax/Diff.hs
@@ -2,814 +2,6 @@
 module Skylighting.Syntax.Diff (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Diff"
-  , sFilename = "diff.xml"
-  , sShortname = "Diff"
-  , sContexts =
-      fromList
-        [ ( "Added"
-          , Context
-              { cName = "Added"
-              , cSyntax = "Diff"
-              , cRules = []
-              , cAttribute = VariableTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ChangedNew"
-          , Context
-              { cName = "ChangedNew"
-              , cSyntax = "Diff"
-              , cRules = []
-              , cAttribute = VariableTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ChangedOld"
-          , Context
-              { cName = "ChangedOld"
-              , cSyntax = "Diff"
-              , cRules = []
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Chunk"
-          , Context
-              { cName = "Chunk"
-              , cSyntax = "Diff"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Diff" , "FindDiff" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\@\\@|\\d).*$"
-                              , reCompiled = Just (compileRegex True "(\\@\\@|\\d).*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '!'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Diff" , "ChangedOld" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ChunkInFile"
-          , Context
-              { cName = "ChunkInFile"
-              , cSyntax = "Diff"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Diff" , "FindDiff" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\@\\@|\\d).*$"
-                              , reCompiled = Just (compileRegex True "(\\@\\@|\\d).*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "Index:.*"
-                              , reCompiled = Just (compileRegex True "Index:.*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(====|\\*\\*\\*|\\-\\-\\-|diff|Only in .*:).*$"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(====|\\*\\*\\*|\\-\\-\\-|diff|Only in .*:).*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '!'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Diff" , "ChangedOld" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "File"
-          , Context
-              { cName = "File"
-              , cSyntax = "Diff"
-              , cRules = []
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindDiff"
-          , Context
-              { cName = "FindDiff"
-              , cSyntax = "Diff"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\-\\-\\-.*$"
-                              , reCompiled = Just (compileRegex True "\\-\\-\\-.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\+\\+\\+|\\-\\-\\-).*$"
-                              , reCompiled = Just (compileRegex True "(\\+\\+\\+|\\-\\-\\-).*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "+>"
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Diff" , "Added" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "-<"
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Diff" , "Removed" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Diff"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\@\\@|\\d).*$"
-                              , reCompiled = Just (compileRegex True "(\\@\\@|\\d).*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Diff" , "Chunk" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\*+$"
-                              , reCompiled = Just (compileRegex True "\\*+$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Diff" , "RChunk" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "Only in .*:.*$"
-                              , reCompiled = Just (compileRegex True "Only in .*:.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "diff.*$"
-                              , reCompiled = Just (compileRegex True "diff.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Diff" , "RFile" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "====.*$"
-                              , reCompiled = Just (compileRegex True "====.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\*\\*\\*|\\-\\-\\-).*$"
-                              , reCompiled = Just (compileRegex True "(\\*\\*\\*|\\-\\-\\-).*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Diff" , "File" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Diff" , "FindDiff" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '!'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Diff" , "ChangedOld" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "RChunk"
-          , Context
-              { cName = "RChunk"
-              , cSyntax = "Diff"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\*\\*\\* .* \\*\\*\\*\\*$"
-                              , reCompiled =
-                                  Just (compileRegex True "\\*\\*\\* .* \\*\\*\\*\\*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\-\\-\\- .* \\-\\-\\-\\-$"
-                              , reCompiled =
-                                  Just (compileRegex True "\\-\\-\\- .* \\-\\-\\-\\-$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Diff" , "RChunkNew" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Diff" , "Chunk" )
-                      , 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
-              }
-          )
-        , ( "RChunkInFile"
-          , Context
-              { cName = "RChunkInFile"
-              , cSyntax = "Diff"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\*\\*\\* .* \\*\\*\\*\\*$"
-                              , reCompiled =
-                                  Just (compileRegex True "\\*\\*\\* .* \\*\\*\\*\\*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\-\\-\\- .* \\-\\-\\-\\-$"
-                              , reCompiled =
-                                  Just (compileRegex True "\\-\\-\\- .* \\-\\-\\-\\-$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Diff" , "RChunkInFileNew" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Diff" , "ChunkInFile" )
-                      , 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
-              }
-          )
-        , ( "RChunkInFileNew"
-          , Context
-              { cName = "RChunkInFileNew"
-              , cSyntax = "Diff"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\@\\@|\\d).*$"
-                              , reCompiled = Just (compileRegex True "(\\@\\@|\\d).*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(====|\\*\\*\\*|\\-\\-\\-|diff|Only in .*:).*$"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(====|\\*\\*\\*|\\-\\-\\-|diff|Only in .*:).*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '!'
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Diff" , "ChangedNew" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Diff" , "FindDiff" )
-                      , 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
-              }
-          )
-        , ( "RChunkNew"
-          , Context
-              { cName = "RChunkNew"
-              , cSyntax = "Diff"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\@\\@|\\d).*$"
-                              , reCompiled = Just (compileRegex True "(\\@\\@|\\d).*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '!'
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Diff" , "ChangedNew" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Diff" , "FindDiff" )
-                      , 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
-              }
-          )
-        , ( "RFile"
-          , Context
-              { cName = "RFile"
-              , cSyntax = "Diff"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(diff|Only in .*:).*$"
-                              , reCompiled = Just (compileRegex True "(diff|Only in .*:).*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(====|\\*\\*\\*|\\-\\-\\-|diff|Only in .*:).*$"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(====|\\*\\*\\*|\\-\\-\\-|diff|Only in .*:).*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\*+$"
-                              , reCompiled = Just (compileRegex True "\\*+$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Diff" , "RChunkInFile" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Diff" , "File" )
-                      , 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
-              }
-          )
-        , ( "Removed"
-          , Context
-              { cName = "Removed"
-              , cSyntax = "Diff"
-              , cRules = []
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = ""
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.diff" , "*patch" ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"Diff\", sFilename = \"diff.xml\", sShortname = \"Diff\", sContexts = fromList [(\"Added\",Context {cName = \"Added\", cSyntax = \"Diff\", cRules = [], cAttribute = VariableTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ChangedNew\",Context {cName = \"ChangedNew\", cSyntax = \"Diff\", cRules = [], cAttribute = VariableTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ChangedOld\",Context {cName = \"ChangedOld\", cSyntax = \"Diff\", cRules = [], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Chunk\",Context {cName = \"Chunk\", cSyntax = \"Diff\", cRules = [Rule {rMatcher = IncludeRules (\"Diff\",\"FindDiff\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\@\\\\@|\\\\d).*$\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '!', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Diff\",\"ChangedOld\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ChunkInFile\",Context {cName = \"ChunkInFile\", cSyntax = \"Diff\", cRules = [Rule {rMatcher = IncludeRules (\"Diff\",\"FindDiff\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\@\\\\@|\\\\d).*$\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"Index:.*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(====|\\\\*\\\\*\\\\*|\\\\-\\\\-\\\\-|diff|Only in .*:).*$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '!', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Diff\",\"ChangedOld\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"File\",Context {cName = \"File\", cSyntax = \"Diff\", cRules = [], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindDiff\",Context {cName = \"FindDiff\", cSyntax = \"Diff\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\-\\\\-\\\\-.*$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\+\\\\+\\\\+|\\\\-\\\\-\\\\-).*$\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = AnyChar \"+>\", rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Diff\",\"Added\")]},Rule {rMatcher = AnyChar \"-<\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Diff\",\"Removed\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Diff\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(\\\\@\\\\@|\\\\d).*$\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Diff\",\"Chunk\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\*+$\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Diff\",\"RChunk\")]},Rule {rMatcher = RegExpr (RE {reString = \"Only in .*:.*$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"diff.*$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Diff\",\"RFile\")]},Rule {rMatcher = RegExpr (RE {reString = \"====.*$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\*\\\\*\\\\*|\\\\-\\\\-\\\\-).*$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Diff\",\"File\")]},Rule {rMatcher = IncludeRules (\"Diff\",\"FindDiff\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '!', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Diff\",\"ChangedOld\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"RChunk\",Context {cName = \"RChunk\", cSyntax = \"Diff\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\*\\\\*\\\\* .* \\\\*\\\\*\\\\*\\\\*$\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\-\\\\-\\\\- .* \\\\-\\\\-\\\\-\\\\-$\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Diff\",\"RChunkNew\")]},Rule {rMatcher = IncludeRules (\"Diff\",\"Chunk\"), 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}),(\"RChunkInFile\",Context {cName = \"RChunkInFile\", cSyntax = \"Diff\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\*\\\\*\\\\* .* \\\\*\\\\*\\\\*\\\\*$\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\-\\\\-\\\\- .* \\\\-\\\\-\\\\-\\\\-$\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Diff\",\"RChunkInFileNew\")]},Rule {rMatcher = IncludeRules (\"Diff\",\"ChunkInFile\"), 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}),(\"RChunkInFileNew\",Context {cName = \"RChunkInFileNew\", cSyntax = \"Diff\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(\\\\@\\\\@|\\\\d).*$\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(====|\\\\*\\\\*\\\\*|\\\\-\\\\-\\\\-|diff|Only in .*:).*$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar '!', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Diff\",\"ChangedNew\")]},Rule {rMatcher = IncludeRules (\"Diff\",\"FindDiff\"), 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}),(\"RChunkNew\",Context {cName = \"RChunkNew\", cSyntax = \"Diff\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(\\\\@\\\\@|\\\\d).*$\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar '!', rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Diff\",\"ChangedNew\")]},Rule {rMatcher = IncludeRules (\"Diff\",\"FindDiff\"), 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}),(\"RFile\",Context {cName = \"RFile\", cSyntax = \"Diff\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(diff|Only in .*:).*$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(====|\\\\*\\\\*\\\\*|\\\\-\\\\-\\\\-|diff|Only in .*:).*$\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\*+$\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Diff\",\"RChunkInFile\")]},Rule {rMatcher = IncludeRules (\"Diff\",\"File\"), 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}),(\"Removed\",Context {cName = \"Removed\", cSyntax = \"Diff\", cRules = [], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.diff\",\"*patch\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Djangotemplate.hs b/src/Skylighting/Syntax/Djangotemplate.hs
--- a/src/Skylighting/Syntax/Djangotemplate.hs
+++ b/src/Skylighting/Syntax/Djangotemplate.hs
@@ -2,2564 +2,6 @@
 module Skylighting.Syntax.Djangotemplate (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Django HTML Template"
-  , sFilename = "djangotemplate.xml"
-  , sShortname = "Djangotemplate"
-  , sContexts =
-      fromList
-        [ ( "CDATA"
-          , Context
-              { cName = "CDATA"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "]]>"
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "]]&gt;"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CSS"
-          , Context
-              { cName = "CSS"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Django HTML Template" , "CSS content" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindAttributes" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindTemplate" )
-                      , 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
-              }
-          )
-        , ( "CSS content"
-          , Context
-              { cName = "CSS content"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</style\\b"
-                              , reCompiled = Just (compileRegex False "</style\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Django HTML Template" , "El Close 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "CSS" , "" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = True
-                      , 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 = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindTemplate" )
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "-->"
-                      , rAttribute = CommentTok
-                      , 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 = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Doctype"
-          , Context
-              { cName = "Doctype"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Django HTML Template" , "Doctype Internal Subset" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Doctype Internal Subset"
-          , Context
-              { cName = "Doctype Internal Subset"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindDTDRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Django HTML Template" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\?[\\w:-]*"
-                              , reCompiled = Just (compileRegex True "<\\?[\\w:-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Django HTML Template" , "PI" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindPEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "Doctype Markupdecl"
-          , Context
-              { cName = "Doctype Markupdecl"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Django HTML Template" , "Doctype Markupdecl DQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Django HTML Template" , "Doctype Markupdecl SQ" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Doctype Markupdecl DQ"
-          , Context
-              { cName = "Doctype Markupdecl DQ"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindPEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "Doctype Markupdecl SQ"
-          , Context
-              { cName = "Doctype Markupdecl SQ"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindPEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "El Close"
-          , Context
-              { cName = "El Close"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , 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
-              }
-          )
-        , ( "El Close 2"
-          , Context
-              { cName = "El Close 2"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , 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
-              }
-          )
-        , ( "El Close 3"
-          , Context
-              { cName = "El Close 3"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop , Pop ]
-                      }
-                  , 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
-              }
-          )
-        , ( "El Open"
-          , Context
-              { cName = "El Open"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindAttributes" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindTemplate" )
-                      , 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
-              }
-          )
-        , ( "FindAttributes"
-          , Context
-              { cName = "FindAttributes"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Za-z_:][\\w.:_-]*"
-                              , reCompiled = Just (compileRegex True "[A-Za-z_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s+[A-Za-z_:][\\w.:_-]*"
-                              , reCompiled = Just (compileRegex True "\\s+[A-Za-z_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Django HTML Template" , "Value" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindDTDRules"
-          , Context
-              { cName = "FindDTDRules"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<!(ELEMENT|ENTITY|ATTLIST|NOTATION)\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "<!(ELEMENT|ENTITY|ATTLIST|NOTATION)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Django HTML Template" , "Doctype Markupdecl" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindEntityRefs"
-          , Context
-              { cName = "FindEntityRefs"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "&<"
-                      , 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
-              }
-          )
-        , ( "FindHTML"
-          , Context
-              { cName = "FindHTML"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Django HTML Template" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<![CDATA["
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Django HTML Template" , "CDATA" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<!DOCTYPE\\s+"
-                              , reCompiled = Just (compileRegex True "<!DOCTYPE\\s+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Django HTML Template" , "Doctype" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\?[\\w:-]*"
-                              , reCompiled = Just (compileRegex True "<\\?[\\w:-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Django HTML Template" , "PI" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<style\\b"
-                              , reCompiled = Just (compileRegex False "<style\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Django HTML Template" , "CSS" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<script\\b"
-                              , reCompiled = Just (compileRegex False "<script\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Django HTML Template" , "JS" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<pre\\b"
-                              , reCompiled = Just (compileRegex False "<pre\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Django HTML Template" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<div\\b"
-                              , reCompiled = Just (compileRegex False "<div\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Django HTML Template" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<table\\b"
-                              , reCompiled = Just (compileRegex False "<table\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Django HTML Template" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<[A-Za-z_:][\\w.:_-]*"
-                              , reCompiled = Just (compileRegex True "<[A-Za-z_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Django HTML Template" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</pre\\b"
-                              , reCompiled = Just (compileRegex False "</pre\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Django HTML Template" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</div\\b"
-                              , reCompiled = Just (compileRegex False "</div\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Django HTML Template" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</table\\b"
-                              , reCompiled = Just (compileRegex False "</table\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Django HTML Template" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</[A-Za-z_:][\\w.:_-]*"
-                              , reCompiled = Just (compileRegex True "</[A-Za-z_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Django HTML Template" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindDTDRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "FindPEntityRefs"
-          , Context
-              { cName = "FindPEntityRefs"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%[A-Za-z_:][\\w.:_-]*;"
-                              , reCompiled = Just (compileRegex True "%[A-Za-z_:][\\w.:_-]*;")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "&%"
-                      , 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
-              }
-          )
-        , ( "FindTemplate"
-          , Context
-              { cName = "FindTemplate"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\{%\\s*comment\\s*%\\}"
-                              , reCompiled = Just (compileRegex True "\\{%\\s*comment\\s*%\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Django HTML Template" , "Template Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '{' '{'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Django HTML Template" , "Template Var" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '{' '%'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Django HTML Template" , "Template Tag" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Found Block Tag"
-          , Context
-              { cName = "Found Block Tag"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([A-Za-z_:][\\w.:_-]*)"
-                              , reCompiled = Just (compileRegex True "([A-Za-z_:][\\w.:_-]*)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Django HTML Template" , "In Block Tag" ) ]
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "In Block"
-          , Context
-              { cName = "In Block"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\{%\\s*end[a-z]+\\s*%\\}"
-                              , reCompiled = Just (compileRegex True "\\{%\\s*end[a-z]+\\s*%\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Django HTML Template" , "FindHTML" )
-                      , 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
-              }
-          )
-        , ( "In Block Tag"
-          , Context
-              { cName = "In Block Tag"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\{%\\s*end%1\\s*%\\}"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\{%\\s*end[a-z]+\\s*%\\}"
-                              , reCompiled = Just (compileRegex True "\\{%\\s*end[a-z]+\\s*%\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Django HTML Template" , "Non Matching Tag" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '%' '}'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Django HTML Template" , "In Block" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "In Template Tag" )
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "In Template Tag"
-          , Context
-              { cName = "In Template Tag"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '%' '}'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Django HTML Template" , "Single A-string" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Django HTML Template" , "Single Q-string" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '{' '{'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '{' '%'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '}' '}'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "JS"
-          , Context
-              { cName = "JS"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Django HTML Template" , "JS content" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindAttributes" )
-                      , 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
-              }
-          )
-        , ( "JS comment close"
-          , Context
-              { cName = "JS comment close"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</script\\b"
-                              , reCompiled = Just (compileRegex False "</script\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Django HTML Template" , "El Close 3" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindTemplate" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "JS content"
-          , Context
-              { cName = "JS content"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</script\\b"
-                              , reCompiled = Just (compileRegex False "</script\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Django HTML Template" , "El Close 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "//(?=.*</script\\b)"
-                              , reCompiled = Just (compileRegex False "//(?=.*</script\\b)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Django HTML Template" , "JS comment close" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "JavaScript" , "Normal" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = True
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Non Matching Tag"
-          , Context
-              { cName = "Non Matching Tag"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "endautoescape"
-                               , "endblock"
-                               , "endblocktrans"
-                               , "endfor"
-                               , "endif"
-                               , "endifchanged"
-                               , "endifequal"
-                               , "endifnotequal"
-                               , "endspaceless"
-                               ])
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "PI"
-          , Context
-              { cName = "PI"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '?' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Single A-string"
-          , Context
-              { cName = "Single A-string"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Single Q-string"
-          , Context
-              { cName = "Single Q-string"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Start"
-          , Context
-              { cName = "Start"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\{%\\s*end[a-z]+\\s*%\\}"
-                              , reCompiled = Just (compileRegex True "\\{%\\s*end[a-z]+\\s*%\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Django HTML Template" , "FindHTML" )
-                      , 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
-              }
-          )
-        , ( "Template Comment"
-          , Context
-              { cName = "Template Comment"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\{%\\s*endcomment\\s*%\\}"
-                              , reCompiled =
-                                  Just (compileRegex True "\\{%\\s*endcomment\\s*%\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Template Filter"
-          , Context
-              { cName = "Template Filter"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '}' '}'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Django HTML Template" , "Single A-string" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Django HTML Template" , "Single Q-string" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '{' '{'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '{' '%'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '%' '}'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Template Tag"
-          , Context
-              { cName = "Template Tag"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "autoescape"
-                               , "block"
-                               , "blocktrans"
-                               , "for"
-                               , "if"
-                               , "ifchanged"
-                               , "ifequal"
-                               , "ifnotequal"
-                               , "spaceless"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Django HTML Template" , "Found Block Tag" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Django HTML Template" , "In Template Tag" ) ]
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Template Var"
-          , Context
-              { cName = "Template Var"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '}' '}'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '|'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Django HTML Template" , "Template Filter" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '{' '{'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '{' '%'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '%' '}'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Value"
-          , Context
-              { cName = "Value"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Django HTML Template" , "Value DQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Django HTML Template" , "Value SQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext =
-                  [ Push ( "Django HTML Template" , "Value NQ" ) ]
-              , cDynamic = False
-              }
-          )
-        , ( "Value DQ"
-          , Context
-              { cName = "Value DQ"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindTemplate" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "Value NQ"
-          , Context
-              { cName = "Value NQ"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindEntityRefs" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 =
-                          RegExpr
-                            RE
-                              { reString = "[^/><\"'\\s]"
-                              , reCompiled = Just (compileRegex True "[^/><\"'\\s]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop , Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "Value SQ"
-          , Context
-              { cName = "Value SQ"
-              , cSyntax = "Django HTML Template"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindTemplate" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Django HTML Template" , "FindEntityRefs" )
-                      , 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 = "Matthew Marshall (matthew@matthewmarshall.org)"
-  , sVersion = "3"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.htm" , "*.html" ]
-  , sStartingContext = "Start"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Django HTML Template\", sFilename = \"djangotemplate.xml\", sShortname = \"Djangotemplate\", sContexts = fromList [(\"CDATA\",Context {cName = \"CDATA\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"]]>\", rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"]]&gt;\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CSS\",Context {cName = \"CSS\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = Detect2Chars '/' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"CSS content\")]},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindAttributes\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"CSS content\",Context {cName = \"CSS content\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"</style\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"El Close 2\")]},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"CSS\",\"\"), rAttribute = NormalTok, rIncludeAttribute = True, 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 = \"Django HTML Template\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindTemplate\"), 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 = []},Rule {rMatcher = StringDetect \"-->\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"-(-(?!->))+\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Doctype\",Context {cName = \"Doctype\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '[', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"Doctype Internal Subset\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Doctype Internal Subset\",Context {cName = \"Doctype Internal Subset\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = DetectChar ']', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindDTDRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\?[\\\\w:-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"PI\")]},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindPEntityRefs\"), 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}),(\"Doctype Markupdecl\",Context {cName = \"Doctype Markupdecl\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"Doctype Markupdecl DQ\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"Doctype Markupdecl SQ\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Doctype Markupdecl DQ\",Context {cName = \"Doctype Markupdecl DQ\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindPEntityRefs\"), 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}),(\"Doctype Markupdecl SQ\",Context {cName = \"Doctype Markupdecl SQ\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindPEntityRefs\"), 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}),(\"El Close\",Context {cName = \"El Close\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"El Close 2\",Context {cName = \"El Close 2\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"El Close 3\",Context {cName = \"El Close 3\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"El Open\",Context {cName = \"El Open\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = Detect2Chars '/' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindAttributes\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"FindAttributes\",Context {cName = \"FindAttributes\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[A-Za-z_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+[A-Za-z_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '=', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"Value\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindDTDRules\",Context {cName = \"FindDTDRules\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<!(ELEMENT|ENTITY|ATTLIST|NOTATION)\\\\b\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"Doctype Markupdecl\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindEntityRefs\",Context {cName = \"FindEntityRefs\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\\\w.:_-]*);\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"&<\", 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}),(\"FindHTML\",Context {cName = \"FindHTML\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"Comment\")]},Rule {rMatcher = StringDetect \"<![CDATA[\", rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"CDATA\")]},Rule {rMatcher = RegExpr (RE {reString = \"<!DOCTYPE\\\\s+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"Doctype\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\?[\\\\w:-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"PI\")]},Rule {rMatcher = RegExpr (RE {reString = \"<style\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"CSS\")]},Rule {rMatcher = RegExpr (RE {reString = \"<script\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"JS\")]},Rule {rMatcher = RegExpr (RE {reString = \"<pre\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"<div\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"<table\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"<[A-Za-z_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"</pre\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"El Close\")]},Rule {rMatcher = RegExpr (RE {reString = \"</div\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"El Close\")]},Rule {rMatcher = RegExpr (RE {reString = \"</table\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"El Close\")]},Rule {rMatcher = RegExpr (RE {reString = \"</[A-Za-z_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"El Close\")]},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindDTDRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindEntityRefs\"), 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}),(\"FindPEntityRefs\",Context {cName = \"FindPEntityRefs\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\\\w.:_-]*);\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%[A-Za-z_:][\\\\w.:_-]*;\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"&%\", 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}),(\"FindTemplate\",Context {cName = \"FindTemplate\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\{%\\\\s*comment\\\\s*%\\\\}\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"Template Comment\")]},Rule {rMatcher = Detect2Chars '{' '{', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"Template Var\")]},Rule {rMatcher = Detect2Chars '{' '%', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"Template Tag\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Found Block Tag\",Context {cName = \"Found Block Tag\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"([A-Za-z_:][\\\\w.:_-]*)\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"In Block Tag\")]}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"In Block\",Context {cName = \"In Block\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\{%\\\\s*end[a-z]+\\\\s*%\\\\}\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindHTML\"), 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}),(\"In Block Tag\",Context {cName = \"In Block Tag\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\{%\\\\s*end%1\\\\s*%\\\\}\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\{%\\\\s*end[a-z]+\\\\s*%\\\\}\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"Non Matching Tag\")]},Rule {rMatcher = Detect2Chars '%' '}', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"In Block\")]},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"In Template Tag\"), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"In Template Tag\",Context {cName = \"In Template Tag\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = Detect2Chars '%' '}', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"Single A-string\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"Single Q-string\")]},Rule {rMatcher = Detect2Chars '{' '{', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '{' '%', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '}' '}', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"JS\",Context {cName = \"JS\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = Detect2Chars '/' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"JS content\")]},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindAttributes\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"JS comment close\",Context {cName = \"JS comment close\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"</script\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"El Close 3\")]},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindTemplate\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"JS content\",Context {cName = \"JS content\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"</script\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"El Close 2\")]},Rule {rMatcher = RegExpr (RE {reString = \"//(?=.*</script\\\\b)\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"JS comment close\")]},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"JavaScript\",\"Normal\"), rAttribute = NormalTok, rIncludeAttribute = True, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Non Matching Tag\",Context {cName = \"Non Matching Tag\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"endautoescape\",\"endblock\",\"endblocktrans\",\"endfor\",\"endif\",\"endifchanged\",\"endifequal\",\"endifnotequal\",\"endspaceless\"])), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectIdentifier, rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"PI\",Context {cName = \"PI\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = Detect2Chars '?' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Single A-string\",Context {cName = \"Single A-string\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Single Q-string\",Context {cName = \"Single Q-string\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Start\",Context {cName = \"Start\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\{%\\\\s*end[a-z]+\\\\s*%\\\\}\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindHTML\"), 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}),(\"Template Comment\",Context {cName = \"Template Comment\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\{%\\\\s*endcomment\\\\s*%\\\\}\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Template Filter\",Context {cName = \"Template Filter\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = Detect2Chars '}' '}', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"Single A-string\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"Single Q-string\")]},Rule {rMatcher = Detect2Chars '{' '{', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '{' '%', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '%' '}', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Template Tag\",Context {cName = \"Template Tag\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"autoescape\",\"block\",\"blocktrans\",\"for\",\"if\",\"ifchanged\",\"ifequal\",\"ifnotequal\",\"spaceless\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"Found Block Tag\")]},Rule {rMatcher = DetectIdentifier, rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"In Template Tag\")]}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Template Var\",Context {cName = \"Template Var\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = Detect2Chars '}' '}', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '|', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"Template Filter\")]},Rule {rMatcher = Detect2Chars '{' '{', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '{' '%', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '%' '}', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Value\",Context {cName = \"Value\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"Value DQ\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Django HTML Template\",\"Value SQ\")]},Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Push (\"Django HTML Template\",\"Value NQ\")], cDynamic = False}),(\"Value DQ\",Context {cName = \"Value DQ\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindTemplate\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindEntityRefs\"), 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}),(\"Value NQ\",Context {cName = \"Value NQ\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindEntityRefs\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"/(?!>)\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[^/><\\\"'\\\\s]\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop,Pop], cDynamic = False}),(\"Value SQ\",Context {cName = \"Value SQ\", cSyntax = \"Django HTML Template\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindTemplate\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Django HTML Template\",\"FindEntityRefs\"), 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 = \"Matthew Marshall (matthew@matthewmarshall.org)\", sVersion = \"3\", sLicense = \"LGPL\", sExtensions = [\"*.htm\",\"*.html\"], sStartingContext = \"Start\"}"
diff --git a/src/Skylighting/Syntax/Dockerfile.hs b/src/Skylighting/Syntax/Dockerfile.hs
--- a/src/Skylighting/Syntax/Dockerfile.hs
+++ b/src/Skylighting/Syntax/Dockerfile.hs
@@ -2,251 +2,6 @@
 module Skylighting.Syntax.Dockerfile (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Dockerfile"
-  , sFilename = "dockerfile.xml"
-  , sShortname = "Dockerfile"
-  , sContexts =
-      fromList
-        [ ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "Dockerfile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "normal"
-          , Context
-              { cName = "normal"
-              , cSyntax = "Dockerfile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Dockerfile" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ADD"
-                               , "ARG"
-                               , "CMD"
-                               , "COPY"
-                               , "ENTRYPOINT"
-                               , "ENV"
-                               , "EXPOSE"
-                               , "FROM"
-                               , "HEALTHCHECK"
-                               , "LABEL"
-                               , "MAINTAINER"
-                               , "ONBUILD"
-                               , "RUN"
-                               , "SHELL"
-                               , "STOPSIGNAL"
-                               , "USER"
-                               , "VOLUME"
-                               , "WORKDIR"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Dockerfile" , "string\"" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Dockerfile" , "string'" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "string\""
-          , Context
-              { cName = "string\""
-              , cSyntax = "Dockerfile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "string'"
-          , Context
-              { cName = "string'"
-              , cSyntax = "Dockerfile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "James Turnbull (james@lovedthanlost.net)"
-  , sVersion = "5"
-  , sLicense = "LGPLv2+"
-  , sExtensions = [ "Dockerfile" ]
-  , sStartingContext = "normal"
-  }
+syntax = read $! "Syntax {sName = \"Dockerfile\", sFilename = \"dockerfile.xml\", sShortname = \"Dockerfile\", sContexts = fromList [(\"Comment\",Context {cName = \"Comment\", cSyntax = \"Dockerfile\", cRules = [Rule {rMatcher = LineContinue, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"normal\",Context {cName = \"normal\", cSyntax = \"Dockerfile\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Dockerfile\",\"Comment\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"ADD\",\"ARG\",\"CMD\",\"COPY\",\"ENTRYPOINT\",\"ENV\",\"EXPOSE\",\"FROM\",\"HEALTHCHECK\",\"LABEL\",\"MAINTAINER\",\"ONBUILD\",\"RUN\",\"SHELL\",\"STOPSIGNAL\",\"USER\",\"VOLUME\",\"WORKDIR\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Dockerfile\",\"string\\\"\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Dockerfile\",\"string'\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"string\\\"\",Context {cName = \"string\\\"\", cSyntax = \"Dockerfile\", cRules = [Rule {rMatcher = LineContinue, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"string'\",Context {cName = \"string'\", cSyntax = \"Dockerfile\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"James Turnbull (james@lovedthanlost.net)\", sVersion = \"5\", sLicense = \"LGPLv2+\", sExtensions = [\"Dockerfile\"], sStartingContext = \"normal\"}"
diff --git a/src/Skylighting/Syntax/Dot.hs b/src/Skylighting/Syntax/Dot.hs
--- a/src/Skylighting/Syntax/Dot.hs
+++ b/src/Skylighting/Syntax/Dot.hs
@@ -2,570 +2,6 @@
 module Skylighting.Syntax.Dot (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "dot"
-  , sFilename = "dot.xml"
-  , sShortname = "Dot"
-  , sContexts =
-      fromList
-        [ ( "CommentML"
-          , Context
-              { cName = "CommentML"
-              , cSyntax = "dot"
-              , cRules =
-                  [ 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 = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CommentSL"
-          , Context
-              { cName = "CommentSL"
-              , cSyntax = "dot"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "DetectAll"
-          , Context
-              { cName = "DetectAll"
-              , cSyntax = "dot"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "digraph" , "edge" , "node" , "subgraph" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "URL"
-                               , "arrowhead"
-                               , "arrowsize"
-                               , "arrowtail"
-                               , "bgcolor"
-                               , "center"
-                               , "color"
-                               , "constraint"
-                               , "decorateP"
-                               , "dir"
-                               , "distortion"
-                               , "fillcolor"
-                               , "fontcolor"
-                               , "fontname"
-                               , "fontsize"
-                               , "headclip"
-                               , "headlabel"
-                               , "height"
-                               , "label"
-                               , "labelangle"
-                               , "labeldistance"
-                               , "labelfontcolor"
-                               , "labelfontname"
-                               , "labelfontsize"
-                               , "layer"
-                               , "layers"
-                               , "margin"
-                               , "mclimit"
-                               , "minlen"
-                               , "name"
-                               , "nodesep"
-                               , "nslimit"
-                               , "ordering"
-                               , "orientation"
-                               , "page"
-                               , "pagedir"
-                               , "peripheries"
-                               , "port_label_distance"
-                               , "rank"
-                               , "rankdir"
-                               , "ranksep"
-                               , "ratio"
-                               , "regular"
-                               , "rotate"
-                               , "samehead"
-                               , "sametail"
-                               , "shape"
-                               , "shapefile"
-                               , "sides"
-                               , "size"
-                               , "skew"
-                               , "style"
-                               , "tailclip"
-                               , "taillabel"
-                               , "weight"
-                               , "width"
-                               ])
-                      , rAttribute = AttributeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "dot" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ";="
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '-' '>'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b\\w+\\b"
-                              , reCompiled = Just (compileRegex True "\\b\\w+\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "dot" , "DetectComments" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "dot" , "RegionCurly" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "dot" , "RegionSquare" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "dot" , "RegionParen" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ")]}"
-                      , 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
-              }
-          )
-        , ( "DetectComments"
-          , Context
-              { cName = "DetectComments"
-              , cSyntax = "dot"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "dot" , "CommentSL" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "dot" , "CommentML" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "dot"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "dot" , "DetectAll" )
-                      , 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
-              }
-          )
-        , ( "RegionCurly"
-          , Context
-              { cName = "RegionCurly"
-              , cSyntax = "dot"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "dot" , "DetectAll" )
-                      , 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
-              }
-          )
-        , ( "RegionParen"
-          , Context
-              { cName = "RegionParen"
-              , cSyntax = "dot"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "dot" , "DetectAll" )
-                      , 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
-              }
-          )
-        , ( "RegionSquare"
-          , Context
-              { cName = "RegionSquare"
-              , cSyntax = "dot"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "dot" , "DetectAll" )
-                      , 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
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "dot"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '"'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Postula Lo\239s (lois.postula@live.be)"
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.dot" ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"dot\", sFilename = \"dot.xml\", sShortname = \"Dot\", sContexts = fromList [(\"CommentML\",Context {cName = \"CommentML\", cSyntax = \"dot\", cRules = [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 = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CommentSL\",Context {cName = \"CommentSL\", cSyntax = \"dot\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"DetectAll\",Context {cName = \"DetectAll\", cSyntax = \"dot\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"digraph\",\"edge\",\"node\",\"subgraph\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"URL\",\"arrowhead\",\"arrowsize\",\"arrowtail\",\"bgcolor\",\"center\",\"color\",\"constraint\",\"decorateP\",\"dir\",\"distortion\",\"fillcolor\",\"fontcolor\",\"fontname\",\"fontsize\",\"headclip\",\"headlabel\",\"height\",\"label\",\"labelangle\",\"labeldistance\",\"labelfontcolor\",\"labelfontname\",\"labelfontsize\",\"layer\",\"layers\",\"margin\",\"mclimit\",\"minlen\",\"name\",\"nodesep\",\"nslimit\",\"ordering\",\"orientation\",\"page\",\"pagedir\",\"peripheries\",\"port_label_distance\",\"rank\",\"rankdir\",\"ranksep\",\"ratio\",\"regular\",\"rotate\",\"samehead\",\"sametail\",\"shape\",\"shapefile\",\"sides\",\"size\",\"skew\",\"style\",\"tailclip\",\"taillabel\",\"weight\",\"width\"])), rAttribute = AttributeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"dot\",\"String\")]},Rule {rMatcher = AnyChar \";=\", rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '-' '>', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b\\\\w+\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"dot\",\"DetectComments\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"dot\",\"RegionCurly\")]},Rule {rMatcher = DetectChar '[', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"dot\",\"RegionSquare\")]},Rule {rMatcher = DetectChar '(', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"dot\",\"RegionParen\")]},Rule {rMatcher = AnyChar \")]}\", 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}),(\"DetectComments\",Context {cName = \"DetectComments\", cSyntax = \"dot\", cRules = [Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"dot\",\"CommentSL\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"dot\",\"CommentML\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"dot\", cRules = [Rule {rMatcher = IncludeRules (\"dot\",\"DetectAll\"), 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}),(\"RegionCurly\",Context {cName = \"RegionCurly\", cSyntax = \"dot\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"dot\",\"DetectAll\"), 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}),(\"RegionParen\",Context {cName = \"RegionParen\", cSyntax = \"dot\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"dot\",\"DetectAll\"), 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}),(\"RegionSquare\",Context {cName = \"RegionSquare\", cSyntax = \"dot\", cRules = [Rule {rMatcher = DetectChar ']', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"dot\",\"DetectAll\"), 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}),(\"String\",Context {cName = \"String\", cSyntax = \"dot\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\"', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Postula Lo\\239s (lois.postula@live.be)\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.dot\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Doxygen.hs b/src/Skylighting/Syntax/Doxygen.hs
--- a/src/Skylighting/Syntax/Doxygen.hs
+++ b/src/Skylighting/Syntax/Doxygen.hs
@@ -2,3227 +2,6 @@
 module Skylighting.Syntax.Doxygen (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Doxygen"
-  , sFilename = "doxygen.xml"
-  , sShortname = "Doxygen"
-  , sContexts =
-      fromList
-        [ ( "BlockComment"
-          , Context
-              { cName = "BlockComment"
-              , cSyntax = "Doxygen"
-              , 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 = Detect2Chars '@' '{'
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '@' '}'
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "SL_DetectEnv" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet
-                               True
-                               [ "@\""
-                               , "@#"
-                               , "@$"
-                               , "@%"
-                               , "@&"
-                               , "@--"
-                               , "@---"
-                               , "@."
-                               , "@::"
-                               , "@<"
-                               , "@>"
-                               , "@@"
-                               , "@\\"
-                               , "@arg"
-                               , "@author"
-                               , "@authors"
-                               , "@brief"
-                               , "@callergraph"
-                               , "@callgraph"
-                               , "@date"
-                               , "@deprecated"
-                               , "@details"
-                               , "@docbookonly"
-                               , "@else"
-                               , "@endcond"
-                               , "@enddocbookonly"
-                               , "@endhtmlonly"
-                               , "@endif"
-                               , "@endinternal"
-                               , "@endlatexonly"
-                               , "@endlink"
-                               , "@endmanonly"
-                               , "@endparblock"
-                               , "@endrtfonly"
-                               , "@endsecreflist"
-                               , "@endxmlonly"
-                               , "@f$"
-                               , "@f["
-                               , "@f]"
-                               , "@hideinitializer"
-                               , "@htmlonly"
-                               , "@internal"
-                               , "@invariant"
-                               , "@latexonly"
-                               , "@li"
-                               , "@manonly"
-                               , "@n"
-                               , "@nosubgrouping"
-                               , "@only"
-                               , "@parblock"
-                               , "@pivate"
-                               , "@pivatesection"
-                               , "@post"
-                               , "@pre"
-                               , "@protected"
-                               , "@protectedsection"
-                               , "@public"
-                               , "@publicsection"
-                               , "@pure"
-                               , "@remark"
-                               , "@remarks"
-                               , "@result"
-                               , "@return"
-                               , "@returns"
-                               , "@rtfonly"
-                               , "@sa"
-                               , "@secreflist"
-                               , "@see"
-                               , "@short"
-                               , "@showinitializer"
-                               , "@since"
-                               , "@static"
-                               , "@tableofcontents"
-                               , "@test"
-                               , "@version"
-                               , "@xmlonly"
-                               , "@~"
-                               , "\\\""
-                               , "\\#"
-                               , "\\$"
-                               , "\\%"
-                               , "\\&"
-                               , "\\--"
-                               , "\\---"
-                               , "\\."
-                               , "\\::"
-                               , "\\<"
-                               , "\\>"
-                               , "\\@"
-                               , "\\\\"
-                               , "\\arg"
-                               , "\\author"
-                               , "\\authors"
-                               , "\\brief"
-                               , "\\callergraph"
-                               , "\\callgraph"
-                               , "\\date"
-                               , "\\deprecated"
-                               , "\\details"
-                               , "\\docbookonly"
-                               , "\\else"
-                               , "\\endcond"
-                               , "\\enddocbookonly"
-                               , "\\endhtmlonly"
-                               , "\\endif"
-                               , "\\endinternal"
-                               , "\\endlatexonly"
-                               , "\\endlink"
-                               , "\\endmanonly"
-                               , "\\endparblock"
-                               , "\\endrtfonly"
-                               , "\\endsecreflist"
-                               , "\\endxmlonly"
-                               , "\\f$"
-                               , "\\f["
-                               , "\\f]"
-                               , "\\hideinitializer"
-                               , "\\htmlonly"
-                               , "\\internal"
-                               , "\\invariant"
-                               , "\\latexonly"
-                               , "\\li"
-                               , "\\manonly"
-                               , "\\n"
-                               , "\\nosubgrouping"
-                               , "\\only"
-                               , "\\parblock"
-                               , "\\post"
-                               , "\\pre"
-                               , "\\private"
-                               , "\\privatesection"
-                               , "\\protected"
-                               , "\\protectedsection"
-                               , "\\public"
-                               , "\\publicsection"
-                               , "\\pure"
-                               , "\\remark"
-                               , "\\remarks"
-                               , "\\result"
-                               , "\\return"
-                               , "\\returns"
-                               , "\\rtfonly"
-                               , "\\sa"
-                               , "\\secreflist"
-                               , "\\see"
-                               , "\\short"
-                               , "\\showinitializer"
-                               , "\\since"
-                               , "\\static"
-                               , "\\tableofcontents"
-                               , "\\test"
-                               , "\\version"
-                               , "\\xmlonly"
-                               , "\\~"
-                               ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet
-                               True
-                               [ "@a"
-                               , "@anchor"
-                               , "@b"
-                               , "@c"
-                               , "@cite"
-                               , "@cond"
-                               , "@copybrief"
-                               , "@copydetails"
-                               , "@copydoc"
-                               , "@def"
-                               , "@dir"
-                               , "@dontinclude"
-                               , "@e"
-                               , "@elseif"
-                               , "@em"
-                               , "@enum"
-                               , "@example"
-                               , "@exception"
-                               , "@exceptions"
-                               , "@extends"
-                               , "@file"
-                               , "@htmlinclude"
-                               , "@idlexcept"
-                               , "@if"
-                               , "@ifnot"
-                               , "@implements"
-                               , "@include"
-                               , "@includelineno"
-                               , "@latexinclude"
-                               , "@link"
-                               , "@memberof"
-                               , "@namespace"
-                               , "@p"
-                               , "@package"
-                               , "@property"
-                               , "@related"
-                               , "@relatedalso"
-                               , "@relates"
-                               , "@relatesalso"
-                               , "@retval"
-                               , "@throw"
-                               , "@throws"
-                               , "@verbinclude"
-                               , "@version"
-                               , "@xrefitem"
-                               , "\\a"
-                               , "\\anchor"
-                               , "\\b"
-                               , "\\c"
-                               , "\\cite"
-                               , "\\cond"
-                               , "\\copybrief"
-                               , "\\copydetails"
-                               , "\\copydoc"
-                               , "\\def"
-                               , "\\dir"
-                               , "\\dontinclude"
-                               , "\\e"
-                               , "\\elseif"
-                               , "\\em"
-                               , "\\enum"
-                               , "\\example"
-                               , "\\exception"
-                               , "\\exceptions"
-                               , "\\extends"
-                               , "\\file"
-                               , "\\htmlinclude"
-                               , "\\idlexcept"
-                               , "\\if"
-                               , "\\ifnot"
-                               , "\\implements"
-                               , "\\include"
-                               , "\\includelineno"
-                               , "\\latexinclude"
-                               , "\\link"
-                               , "\\memberof"
-                               , "\\namespace"
-                               , "\\p"
-                               , "\\package"
-                               , "\\property"
-                               , "\\related"
-                               , "\\relatedalso"
-                               , "\\relates"
-                               , "\\relatesalso"
-                               , "\\retval"
-                               , "\\throw"
-                               , "\\throws"
-                               , "\\verbinclude"
-                               , "\\version"
-                               , "\\xrefitem"
-                               ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "ML_TagWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet
-                               True [ "@param" , "@tparam" , "\\param" , "\\tparam" ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "ML_TagParam" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet True [ "@image" , "\\image" ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "ML_TagWordWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet
-                               True
-                               [ "@addindex"
-                               , "@copyright"
-                               , "@fn"
-                               , "@ingroup"
-                               , "@line"
-                               , "@mainpage"
-                               , "@name"
-                               , "@overload"
-                               , "@par"
-                               , "@skip"
-                               , "@skipline"
-                               , "@typedef"
-                               , "@until"
-                               , "@var"
-                               , "@vhdlflow"
-                               , "\\addindex"
-                               , "\\copyright"
-                               , "\\fn"
-                               , "\\ingroup"
-                               , "\\line"
-                               , "\\mainpage"
-                               , "\\name"
-                               , "\\overload"
-                               , "\\par"
-                               , "\\skip"
-                               , "\\skipline"
-                               , "\\typedef"
-                               , "\\until"
-                               , "\\var"
-                               , "\\vhdlflow"
-                               ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "ML_TagString" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet
-                               True
-                               [ "@addtogroup"
-                               , "@category"
-                               , "@class"
-                               , "@defgroup"
-                               , "@diafile"
-                               , "@dotfile"
-                               , "@headerfile"
-                               , "@interface"
-                               , "@mscfile"
-                               , "@page"
-                               , "@paragraph"
-                               , "@prtocol"
-                               , "@ref"
-                               , "@section"
-                               , "@snippet"
-                               , "@struct"
-                               , "@subpage"
-                               , "@subsection"
-                               , "@subsubsection"
-                               , "@union"
-                               , "@weakgroup"
-                               , "\\addtogroup"
-                               , "\\category"
-                               , "\\class"
-                               , "\\defgroup"
-                               , "\\diafile"
-                               , "\\dotfile"
-                               , "\\headerfile"
-                               , "\\interface"
-                               , "\\mscfile"
-                               , "\\page"
-                               , "\\paragraph"
-                               , "\\protocol"
-                               , "\\ref"
-                               , "\\section"
-                               , "\\snippet"
-                               , "\\struct"
-                               , "\\subpage"
-                               , "\\subsection"
-                               , "\\subsubsection"
-                               , "\\union"
-                               , "\\weakgroup"
-                               ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "ML_TagWordString" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[@\\\\]([^@\\\\ \\t\\*]|\\*(?!/))+"
-                              , reCompiled =
-                                  Just (compileRegex True "[@\\\\]([^@\\\\ \\t\\*]|\\*(?!/))+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AnnotationTok
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(<|>)"
-                              , reCompiled = Just (compileRegex True "\\\\(<|>)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AnnotationTok
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\/?[\\w0-9._:-@]+"
-                              , reCompiled = Just (compileRegex True "<\\/?[\\w0-9._:-@]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "ML_htmltag" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "ML_htmlcomment" ) ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Code"
-          , Context
-              { cName = "Code"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "SL_DetectComment" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[@\\\\]endcode\\b"
-                              , reCompiled = Just (compileRegex True "[@\\\\]endcode\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Dot"
-          , Context
-              { cName = "Dot"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "SL_DetectComment" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[@\\\\]enddot\\b"
-                              , reCompiled = Just (compileRegex True "[@\\\\]enddot\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Formula"
-          , Context
-              { cName = "Formula"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "SL_DetectComment" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[@\\\\]f\\]"
-                              , reCompiled = Just (compileRegex True "[@\\\\]f\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "LineComment"
-          , Context
-              { cName = "LineComment"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "SL_DetectEnv" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet
-                               True
-                               [ "@\""
-                               , "@#"
-                               , "@$"
-                               , "@%"
-                               , "@&"
-                               , "@--"
-                               , "@---"
-                               , "@."
-                               , "@::"
-                               , "@<"
-                               , "@>"
-                               , "@@"
-                               , "@\\"
-                               , "@arg"
-                               , "@author"
-                               , "@authors"
-                               , "@brief"
-                               , "@callergraph"
-                               , "@callgraph"
-                               , "@date"
-                               , "@deprecated"
-                               , "@details"
-                               , "@docbookonly"
-                               , "@else"
-                               , "@endcond"
-                               , "@enddocbookonly"
-                               , "@endhtmlonly"
-                               , "@endif"
-                               , "@endinternal"
-                               , "@endlatexonly"
-                               , "@endlink"
-                               , "@endmanonly"
-                               , "@endparblock"
-                               , "@endrtfonly"
-                               , "@endsecreflist"
-                               , "@endxmlonly"
-                               , "@f$"
-                               , "@f["
-                               , "@f]"
-                               , "@hideinitializer"
-                               , "@htmlonly"
-                               , "@internal"
-                               , "@invariant"
-                               , "@latexonly"
-                               , "@li"
-                               , "@manonly"
-                               , "@n"
-                               , "@nosubgrouping"
-                               , "@only"
-                               , "@parblock"
-                               , "@pivate"
-                               , "@pivatesection"
-                               , "@post"
-                               , "@pre"
-                               , "@protected"
-                               , "@protectedsection"
-                               , "@public"
-                               , "@publicsection"
-                               , "@pure"
-                               , "@remark"
-                               , "@remarks"
-                               , "@result"
-                               , "@return"
-                               , "@returns"
-                               , "@rtfonly"
-                               , "@sa"
-                               , "@secreflist"
-                               , "@see"
-                               , "@short"
-                               , "@showinitializer"
-                               , "@since"
-                               , "@static"
-                               , "@tableofcontents"
-                               , "@test"
-                               , "@version"
-                               , "@xmlonly"
-                               , "@~"
-                               , "\\\""
-                               , "\\#"
-                               , "\\$"
-                               , "\\%"
-                               , "\\&"
-                               , "\\--"
-                               , "\\---"
-                               , "\\."
-                               , "\\::"
-                               , "\\<"
-                               , "\\>"
-                               , "\\@"
-                               , "\\\\"
-                               , "\\arg"
-                               , "\\author"
-                               , "\\authors"
-                               , "\\brief"
-                               , "\\callergraph"
-                               , "\\callgraph"
-                               , "\\date"
-                               , "\\deprecated"
-                               , "\\details"
-                               , "\\docbookonly"
-                               , "\\else"
-                               , "\\endcond"
-                               , "\\enddocbookonly"
-                               , "\\endhtmlonly"
-                               , "\\endif"
-                               , "\\endinternal"
-                               , "\\endlatexonly"
-                               , "\\endlink"
-                               , "\\endmanonly"
-                               , "\\endparblock"
-                               , "\\endrtfonly"
-                               , "\\endsecreflist"
-                               , "\\endxmlonly"
-                               , "\\f$"
-                               , "\\f["
-                               , "\\f]"
-                               , "\\hideinitializer"
-                               , "\\htmlonly"
-                               , "\\internal"
-                               , "\\invariant"
-                               , "\\latexonly"
-                               , "\\li"
-                               , "\\manonly"
-                               , "\\n"
-                               , "\\nosubgrouping"
-                               , "\\only"
-                               , "\\parblock"
-                               , "\\post"
-                               , "\\pre"
-                               , "\\private"
-                               , "\\privatesection"
-                               , "\\protected"
-                               , "\\protectedsection"
-                               , "\\public"
-                               , "\\publicsection"
-                               , "\\pure"
-                               , "\\remark"
-                               , "\\remarks"
-                               , "\\result"
-                               , "\\return"
-                               , "\\returns"
-                               , "\\rtfonly"
-                               , "\\sa"
-                               , "\\secreflist"
-                               , "\\see"
-                               , "\\short"
-                               , "\\showinitializer"
-                               , "\\since"
-                               , "\\static"
-                               , "\\tableofcontents"
-                               , "\\test"
-                               , "\\version"
-                               , "\\xmlonly"
-                               , "\\~"
-                               ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet
-                               True
-                               [ "@a"
-                               , "@anchor"
-                               , "@b"
-                               , "@c"
-                               , "@cite"
-                               , "@cond"
-                               , "@copybrief"
-                               , "@copydetails"
-                               , "@copydoc"
-                               , "@def"
-                               , "@dir"
-                               , "@dontinclude"
-                               , "@e"
-                               , "@elseif"
-                               , "@em"
-                               , "@enum"
-                               , "@example"
-                               , "@exception"
-                               , "@exceptions"
-                               , "@extends"
-                               , "@file"
-                               , "@htmlinclude"
-                               , "@idlexcept"
-                               , "@if"
-                               , "@ifnot"
-                               , "@implements"
-                               , "@include"
-                               , "@includelineno"
-                               , "@latexinclude"
-                               , "@link"
-                               , "@memberof"
-                               , "@namespace"
-                               , "@p"
-                               , "@package"
-                               , "@property"
-                               , "@related"
-                               , "@relatedalso"
-                               , "@relates"
-                               , "@relatesalso"
-                               , "@retval"
-                               , "@throw"
-                               , "@throws"
-                               , "@verbinclude"
-                               , "@version"
-                               , "@xrefitem"
-                               , "\\a"
-                               , "\\anchor"
-                               , "\\b"
-                               , "\\c"
-                               , "\\cite"
-                               , "\\cond"
-                               , "\\copybrief"
-                               , "\\copydetails"
-                               , "\\copydoc"
-                               , "\\def"
-                               , "\\dir"
-                               , "\\dontinclude"
-                               , "\\e"
-                               , "\\elseif"
-                               , "\\em"
-                               , "\\enum"
-                               , "\\example"
-                               , "\\exception"
-                               , "\\exceptions"
-                               , "\\extends"
-                               , "\\file"
-                               , "\\htmlinclude"
-                               , "\\idlexcept"
-                               , "\\if"
-                               , "\\ifnot"
-                               , "\\implements"
-                               , "\\include"
-                               , "\\includelineno"
-                               , "\\latexinclude"
-                               , "\\link"
-                               , "\\memberof"
-                               , "\\namespace"
-                               , "\\p"
-                               , "\\package"
-                               , "\\property"
-                               , "\\related"
-                               , "\\relatedalso"
-                               , "\\relates"
-                               , "\\relatesalso"
-                               , "\\retval"
-                               , "\\throw"
-                               , "\\throws"
-                               , "\\verbinclude"
-                               , "\\version"
-                               , "\\xrefitem"
-                               ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "SL_TagWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet
-                               True [ "@param" , "@tparam" , "\\param" , "\\tparam" ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "SL_TagParam" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet True [ "@image" , "\\image" ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "SL_TagWordWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet
-                               True
-                               [ "@addindex"
-                               , "@copyright"
-                               , "@fn"
-                               , "@ingroup"
-                               , "@line"
-                               , "@mainpage"
-                               , "@name"
-                               , "@overload"
-                               , "@par"
-                               , "@skip"
-                               , "@skipline"
-                               , "@typedef"
-                               , "@until"
-                               , "@var"
-                               , "@vhdlflow"
-                               , "\\addindex"
-                               , "\\copyright"
-                               , "\\fn"
-                               , "\\ingroup"
-                               , "\\line"
-                               , "\\mainpage"
-                               , "\\name"
-                               , "\\overload"
-                               , "\\par"
-                               , "\\skip"
-                               , "\\skipline"
-                               , "\\typedef"
-                               , "\\until"
-                               , "\\var"
-                               , "\\vhdlflow"
-                               ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "SL_TagString" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet
-                               True
-                               [ "@addtogroup"
-                               , "@category"
-                               , "@class"
-                               , "@defgroup"
-                               , "@diafile"
-                               , "@dotfile"
-                               , "@headerfile"
-                               , "@interface"
-                               , "@mscfile"
-                               , "@page"
-                               , "@paragraph"
-                               , "@prtocol"
-                               , "@ref"
-                               , "@section"
-                               , "@snippet"
-                               , "@struct"
-                               , "@subpage"
-                               , "@subsection"
-                               , "@subsubsection"
-                               , "@union"
-                               , "@weakgroup"
-                               , "\\addtogroup"
-                               , "\\category"
-                               , "\\class"
-                               , "\\defgroup"
-                               , "\\diafile"
-                               , "\\dotfile"
-                               , "\\headerfile"
-                               , "\\interface"
-                               , "\\mscfile"
-                               , "\\page"
-                               , "\\paragraph"
-                               , "\\protocol"
-                               , "\\ref"
-                               , "\\section"
-                               , "\\snippet"
-                               , "\\struct"
-                               , "\\subpage"
-                               , "\\subsection"
-                               , "\\subsubsection"
-                               , "\\union"
-                               , "\\weakgroup"
-                               ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "SL_TagWordString" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[@\\\\][^@\\\\ \\t]+"
-                              , reCompiled = Just (compileRegex True "[@\\\\][^@\\\\ \\t]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AnnotationTok
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "SL_htmlcomment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '<' '<'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\/?[\\w0-9._:-@]+"
-                              , reCompiled = Just (compileRegex True "<\\/?[\\w0-9._:-@]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "SL_htmltag" ) ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ML_Tag2ndWord"
-          , Context
-              { cName = "ML_Tag2ndWord"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "SL_Tag2ndWord" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ML_TagParam"
-          , Context
-              { cName = "ML_TagParam"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "[in]"
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "ML_Tag2ndWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "[out]"
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "ML_Tag2ndWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "[in,out]"
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "ML_Tag2ndWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S(?=([][,?;()]|\\.$|\\.?\\s))"
-                              , reCompiled =
-                                  Just (compileRegex True "\\S(?=([][,?;()]|\\.$|\\.?\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S"
-                              , reCompiled = Just (compileRegex True "\\S")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ML_TagString"
-          , Context
-              { cName = "ML_TagString"
-              , cSyntax = "Doxygen"
-              , 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 = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "ML_htmlcomment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '<' '<'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\/?[\\w0-9._:-@]+"
-                              , reCompiled = Just (compileRegex True "<\\/?[\\w0-9._:-@]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "ML_htmltag" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "."
-                              , reCompiled = Just (compileRegex True ".")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ML_TagWord"
-          , Context
-              { cName = "ML_TagWord"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "SL_TagWord" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ML_TagWordString"
-          , Context
-              { cName = "ML_TagWordString"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "SL_TagWordString" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ML_TagWordWord"
-          , Context
-              { cName = "ML_TagWordWord"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S(?=([][,?;()]|\\.$|\\.?\\s))"
-                              , reCompiled =
-                                  Just (compileRegex True "\\S(?=([][,?;()]|\\.$|\\.?\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "ML_Tag2ndWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S"
-                              , reCompiled = Just (compileRegex True "\\S")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ML_htmlcomment"
-          , Context
-              { cName = "ML_htmlcomment"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , 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 = StringDetect "-->"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ML_htmltag"
-          , Context
-              { cName = "ML_htmltag"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*=\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*=\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "ML_identifiers" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ML_identifiers"
-          , Context
-              { cName = "ML_identifiers"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*#?[a-zA-Z0-9]*"
-                              , reCompiled = Just (compileRegex True "\\s*#?[a-zA-Z0-9]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "ML_types1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "ML_types2" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ML_types1"
-          , Context
-              { cName = "ML_types1"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ML_types2"
-          , Context
-              { cName = "ML_types2"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Msc"
-          , Context
-              { cName = "Msc"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "SL_DetectComment" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[@\\\\]endmsc\\b"
-                              , reCompiled = Just (compileRegex True "[@\\\\]endmsc\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "//(!|(/(?=[^/]|$)))<?"
-                              , reCompiled = Just (compileRegex True "//(!|(/(?=[^/]|$)))<?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "LineComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "/\\*(\\*[^*/]|!|[*!]<|\\*$)"
-                              , reCompiled =
-                                  Just (compileRegex True "/\\*(\\*[^*/]|!|[*!]<|\\*$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "BlockComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "//\\s*@\\{\\s*$"
-                              , reCompiled = Just (compileRegex True "//\\s*@\\{\\s*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "//\\s*@\\}\\s*$"
-                              , reCompiled = Just (compileRegex True "//\\s*@\\}\\s*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "/\\*\\s*@\\{\\s*\\*/"
-                              , reCompiled = Just (compileRegex True "/\\*\\s*@\\{\\s*\\*/")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "/\\*\\s*@\\}\\s*\\*/"
-                              , reCompiled = Just (compileRegex True "/\\*\\s*@\\}\\s*\\*/")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_DetectComment"
-          , Context
-              { cName = "SL_DetectComment"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "///"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_DetectEnv"
-          , Context
-              { cName = "SL_DetectEnv"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[@\\\\]code\\b"
-                              , reCompiled = Just (compileRegex True "[@\\\\]code\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "Code" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[@\\\\]verbatim\\b"
-                              , reCompiled = Just (compileRegex True "[@\\\\]verbatim\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "Verbatim" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[@\\\\]f\\["
-                              , reCompiled = Just (compileRegex True "[@\\\\]f\\[")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "Formula" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[@\\\\]msc\\b"
-                              , reCompiled = Just (compileRegex True "[@\\\\]msc\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "Msc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[@\\\\]dot\\b"
-                              , reCompiled = Just (compileRegex True "[@\\\\]dot\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "Dot" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet True [ "@note" , "\\note" ])
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet True [ "@warning" , "\\warning" ])
-                      , rAttribute = WarningTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet
-                               True [ "@attention" , "@bug" , "\\attention" , "\\bug" ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet True [ "@todo" , "\\todo" ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "&[A-Za-z]+;"
-                              , reCompiled = Just (compileRegex True "&[A-Za-z]+;")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_Tag2ndWord"
-          , Context
-              { cName = "SL_Tag2ndWord"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S(?=([][,?;()]|\\.$|\\.?\\s))"
-                              , reCompiled =
-                                  Just (compileRegex True "\\S(?=([][,?;()]|\\.$|\\.?\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S"
-                              , reCompiled = Just (compileRegex True "\\S")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_TagParam"
-          , Context
-              { cName = "SL_TagParam"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "[in]"
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "SL_Tag2ndWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "[out]"
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "SL_Tag2ndWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "[in,out]"
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "SL_Tag2ndWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S(?=([][,?;()]|\\.$|\\.?\\s))"
-                              , reCompiled =
-                                  Just (compileRegex True "\\S(?=([][,?;()]|\\.$|\\.?\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S"
-                              , reCompiled = Just (compileRegex True "\\S")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_TagString"
-          , Context
-              { cName = "SL_TagString"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "SL_htmlcomment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '<' '<'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\/?[\\w0-9._:-@]+"
-                              , reCompiled = Just (compileRegex True "<\\/?[\\w0-9._:-@]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "SL_htmltag" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "."
-                              , reCompiled = Just (compileRegex True ".")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_TagWord"
-          , Context
-              { cName = "SL_TagWord"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet
-                               True
-                               [ "@a"
-                               , "@anchor"
-                               , "@b"
-                               , "@c"
-                               , "@cite"
-                               , "@cond"
-                               , "@copybrief"
-                               , "@copydetails"
-                               , "@copydoc"
-                               , "@def"
-                               , "@dir"
-                               , "@dontinclude"
-                               , "@e"
-                               , "@elseif"
-                               , "@em"
-                               , "@enum"
-                               , "@example"
-                               , "@exception"
-                               , "@exceptions"
-                               , "@extends"
-                               , "@file"
-                               , "@htmlinclude"
-                               , "@idlexcept"
-                               , "@if"
-                               , "@ifnot"
-                               , "@implements"
-                               , "@include"
-                               , "@includelineno"
-                               , "@latexinclude"
-                               , "@link"
-                               , "@memberof"
-                               , "@namespace"
-                               , "@p"
-                               , "@package"
-                               , "@property"
-                               , "@related"
-                               , "@relatedalso"
-                               , "@relates"
-                               , "@relatesalso"
-                               , "@retval"
-                               , "@throw"
-                               , "@throws"
-                               , "@verbinclude"
-                               , "@version"
-                               , "@xrefitem"
-                               , "\\a"
-                               , "\\anchor"
-                               , "\\b"
-                               , "\\c"
-                               , "\\cite"
-                               , "\\cond"
-                               , "\\copybrief"
-                               , "\\copydetails"
-                               , "\\copydoc"
-                               , "\\def"
-                               , "\\dir"
-                               , "\\dontinclude"
-                               , "\\e"
-                               , "\\elseif"
-                               , "\\em"
-                               , "\\enum"
-                               , "\\example"
-                               , "\\exception"
-                               , "\\exceptions"
-                               , "\\extends"
-                               , "\\file"
-                               , "\\htmlinclude"
-                               , "\\idlexcept"
-                               , "\\if"
-                               , "\\ifnot"
-                               , "\\implements"
-                               , "\\include"
-                               , "\\includelineno"
-                               , "\\latexinclude"
-                               , "\\link"
-                               , "\\memberof"
-                               , "\\namespace"
-                               , "\\p"
-                               , "\\package"
-                               , "\\property"
-                               , "\\related"
-                               , "\\relatedalso"
-                               , "\\relates"
-                               , "\\relatesalso"
-                               , "\\retval"
-                               , "\\throw"
-                               , "\\throws"
-                               , "\\verbinclude"
-                               , "\\version"
-                               , "\\xrefitem"
-                               ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S(?=([][,?;()]|\\.$|\\.?\\s))"
-                              , reCompiled =
-                                  Just (compileRegex True "\\S(?=([][,?;()]|\\.$|\\.?\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S"
-                              , reCompiled = Just (compileRegex True "\\S")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_TagWordString"
-          , Context
-              { cName = "SL_TagWordString"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S(?=([][,?;()]|\\.$|\\.?\\s))"
-                              , reCompiled =
-                                  Just (compileRegex True "\\S(?=([][,?;()]|\\.$|\\.?\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S"
-                              , reCompiled = Just (compileRegex True "\\S")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_TagWordWord"
-          , Context
-              { cName = "SL_TagWordWord"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S(?=([][,?;()]|\\.$|\\.?\\s))"
-                              , reCompiled =
-                                  Just (compileRegex True "\\S(?=([][,?;()]|\\.$|\\.?\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "SL_Tag2ndWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S"
-                              , reCompiled = Just (compileRegex True "\\S")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_htmlcomment"
-          , Context
-              { cName = "SL_htmlcomment"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "-->"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_htmltag"
-          , Context
-              { cName = "SL_htmltag"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*=\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*=\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "SL_identifiers" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_identifiers"
-          , Context
-              { cName = "SL_identifiers"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*#?[a-zA-Z0-9]*"
-                              , reCompiled = Just (compileRegex True "\\s*#?[a-zA-Z0-9]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "SL_types1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Doxygen" , "SL_types2" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_types1"
-          , Context
-              { cName = "SL_types1"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_types2"
-          , Context
-              { cName = "SL_types2"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Verbatim"
-          , Context
-              { cName = "Verbatim"
-              , cSyntax = "Doxygen"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "SL_DetectComment" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[@\\\\]endverbatim\\b"
-                              , reCompiled = Just (compileRegex True "[@\\\\]endverbatim\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Dominik Haumann (dhdev@gmx.de)"
-  , sVersion = "3"
-  , sLicense = "LGPLv2+"
-  , sExtensions = [ "*.dox" , "*.doxygen" ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Doxygen\", sFilename = \"doxygen.xml\", sShortname = \"Doxygen\", sContexts = fromList [(\"BlockComment\",Context {cName = \"BlockComment\", cSyntax = \"Doxygen\", 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 = Detect2Chars '@' '{', rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '@' '}', rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Doxygen\",\"SL_DetectEnv\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseSensitiveWords (fromList [\"@\\\"\",\"@#\",\"@$\",\"@%\",\"@&\",\"@--\",\"@---\",\"@.\",\"@::\",\"@<\",\"@>\",\"@@\",\"@\\\\\",\"@arg\",\"@author\",\"@authors\",\"@brief\",\"@callergraph\",\"@callgraph\",\"@date\",\"@deprecated\",\"@details\",\"@docbookonly\",\"@else\",\"@endcond\",\"@enddocbookonly\",\"@endhtmlonly\",\"@endif\",\"@endinternal\",\"@endlatexonly\",\"@endlink\",\"@endmanonly\",\"@endparblock\",\"@endrtfonly\",\"@endsecreflist\",\"@endxmlonly\",\"@f$\",\"@f[\",\"@f]\",\"@hideinitializer\",\"@htmlonly\",\"@internal\",\"@invariant\",\"@latexonly\",\"@li\",\"@manonly\",\"@n\",\"@nosubgrouping\",\"@only\",\"@parblock\",\"@pivate\",\"@pivatesection\",\"@post\",\"@pre\",\"@protected\",\"@protectedsection\",\"@public\",\"@publicsection\",\"@pure\",\"@remark\",\"@remarks\",\"@result\",\"@return\",\"@returns\",\"@rtfonly\",\"@sa\",\"@secreflist\",\"@see\",\"@short\",\"@showinitializer\",\"@since\",\"@static\",\"@tableofcontents\",\"@test\",\"@version\",\"@xmlonly\",\"@~\",\"\\\\\\\"\",\"\\\\#\",\"\\\\$\",\"\\\\%\",\"\\\\&\",\"\\\\--\",\"\\\\---\",\"\\\\.\",\"\\\\::\",\"\\\\<\",\"\\\\>\",\"\\\\@\",\"\\\\\\\\\",\"\\\\arg\",\"\\\\author\",\"\\\\authors\",\"\\\\brief\",\"\\\\callergraph\",\"\\\\callgraph\",\"\\\\date\",\"\\\\deprecated\",\"\\\\details\",\"\\\\docbookonly\",\"\\\\else\",\"\\\\endcond\",\"\\\\enddocbookonly\",\"\\\\endhtmlonly\",\"\\\\endif\",\"\\\\endinternal\",\"\\\\endlatexonly\",\"\\\\endlink\",\"\\\\endmanonly\",\"\\\\endparblock\",\"\\\\endrtfonly\",\"\\\\endsecreflist\",\"\\\\endxmlonly\",\"\\\\f$\",\"\\\\f[\",\"\\\\f]\",\"\\\\hideinitializer\",\"\\\\htmlonly\",\"\\\\internal\",\"\\\\invariant\",\"\\\\latexonly\",\"\\\\li\",\"\\\\manonly\",\"\\\\n\",\"\\\\nosubgrouping\",\"\\\\only\",\"\\\\parblock\",\"\\\\post\",\"\\\\pre\",\"\\\\private\",\"\\\\privatesection\",\"\\\\protected\",\"\\\\protectedsection\",\"\\\\public\",\"\\\\publicsection\",\"\\\\pure\",\"\\\\remark\",\"\\\\remarks\",\"\\\\result\",\"\\\\return\",\"\\\\returns\",\"\\\\rtfonly\",\"\\\\sa\",\"\\\\secreflist\",\"\\\\see\",\"\\\\short\",\"\\\\showinitializer\",\"\\\\since\",\"\\\\static\",\"\\\\tableofcontents\",\"\\\\test\",\"\\\\version\",\"\\\\xmlonly\",\"\\\\~\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseSensitiveWords (fromList [\"@a\",\"@anchor\",\"@b\",\"@c\",\"@cite\",\"@cond\",\"@copybrief\",\"@copydetails\",\"@copydoc\",\"@def\",\"@dir\",\"@dontinclude\",\"@e\",\"@elseif\",\"@em\",\"@enum\",\"@example\",\"@exception\",\"@exceptions\",\"@extends\",\"@file\",\"@htmlinclude\",\"@idlexcept\",\"@if\",\"@ifnot\",\"@implements\",\"@include\",\"@includelineno\",\"@latexinclude\",\"@link\",\"@memberof\",\"@namespace\",\"@p\",\"@package\",\"@property\",\"@related\",\"@relatedalso\",\"@relates\",\"@relatesalso\",\"@retval\",\"@throw\",\"@throws\",\"@verbinclude\",\"@version\",\"@xrefitem\",\"\\\\a\",\"\\\\anchor\",\"\\\\b\",\"\\\\c\",\"\\\\cite\",\"\\\\cond\",\"\\\\copybrief\",\"\\\\copydetails\",\"\\\\copydoc\",\"\\\\def\",\"\\\\dir\",\"\\\\dontinclude\",\"\\\\e\",\"\\\\elseif\",\"\\\\em\",\"\\\\enum\",\"\\\\example\",\"\\\\exception\",\"\\\\exceptions\",\"\\\\extends\",\"\\\\file\",\"\\\\htmlinclude\",\"\\\\idlexcept\",\"\\\\if\",\"\\\\ifnot\",\"\\\\implements\",\"\\\\include\",\"\\\\includelineno\",\"\\\\latexinclude\",\"\\\\link\",\"\\\\memberof\",\"\\\\namespace\",\"\\\\p\",\"\\\\package\",\"\\\\property\",\"\\\\related\",\"\\\\relatedalso\",\"\\\\relates\",\"\\\\relatesalso\",\"\\\\retval\",\"\\\\throw\",\"\\\\throws\",\"\\\\verbinclude\",\"\\\\version\",\"\\\\xrefitem\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"ML_TagWord\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseSensitiveWords (fromList [\"@param\",\"@tparam\",\"\\\\param\",\"\\\\tparam\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"ML_TagParam\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseSensitiveWords (fromList [\"@image\",\"\\\\image\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"ML_TagWordWord\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseSensitiveWords (fromList [\"@addindex\",\"@copyright\",\"@fn\",\"@ingroup\",\"@line\",\"@mainpage\",\"@name\",\"@overload\",\"@par\",\"@skip\",\"@skipline\",\"@typedef\",\"@until\",\"@var\",\"@vhdlflow\",\"\\\\addindex\",\"\\\\copyright\",\"\\\\fn\",\"\\\\ingroup\",\"\\\\line\",\"\\\\mainpage\",\"\\\\name\",\"\\\\overload\",\"\\\\par\",\"\\\\skip\",\"\\\\skipline\",\"\\\\typedef\",\"\\\\until\",\"\\\\var\",\"\\\\vhdlflow\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"ML_TagString\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseSensitiveWords (fromList [\"@addtogroup\",\"@category\",\"@class\",\"@defgroup\",\"@diafile\",\"@dotfile\",\"@headerfile\",\"@interface\",\"@mscfile\",\"@page\",\"@paragraph\",\"@prtocol\",\"@ref\",\"@section\",\"@snippet\",\"@struct\",\"@subpage\",\"@subsection\",\"@subsubsection\",\"@union\",\"@weakgroup\",\"\\\\addtogroup\",\"\\\\category\",\"\\\\class\",\"\\\\defgroup\",\"\\\\diafile\",\"\\\\dotfile\",\"\\\\headerfile\",\"\\\\interface\",\"\\\\mscfile\",\"\\\\page\",\"\\\\paragraph\",\"\\\\protocol\",\"\\\\ref\",\"\\\\section\",\"\\\\snippet\",\"\\\\struct\",\"\\\\subpage\",\"\\\\subsection\",\"\\\\subsubsection\",\"\\\\union\",\"\\\\weakgroup\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"ML_TagWordString\")]},Rule {rMatcher = RegExpr (RE {reString = \"[@\\\\\\\\]([^@\\\\\\\\ \\\\t\\\\*]|\\\\*(?!/))+\", reCaseSensitive = True}), rAttribute = AnnotationTok, 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 = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(<|>)\", reCaseSensitive = True}), rAttribute = AnnotationTok, 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 = []},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\/?[\\\\w0-9._:-@]+\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"ML_htmltag\")]},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"ML_htmlcomment\")]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Code\",Context {cName = \"Code\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = IncludeRules (\"Doxygen\",\"SL_DetectComment\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[@\\\\\\\\]endcode\\\\b\", reCaseSensitive = True}), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Dot\",Context {cName = \"Dot\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = IncludeRules (\"Doxygen\",\"SL_DetectComment\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[@\\\\\\\\]enddot\\\\b\", reCaseSensitive = True}), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Formula\",Context {cName = \"Formula\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = IncludeRules (\"Doxygen\",\"SL_DetectComment\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[@\\\\\\\\]f\\\\]\", reCaseSensitive = True}), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"LineComment\",Context {cName = \"LineComment\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = LineContinue, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Doxygen\",\"SL_DetectEnv\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseSensitiveWords (fromList [\"@\\\"\",\"@#\",\"@$\",\"@%\",\"@&\",\"@--\",\"@---\",\"@.\",\"@::\",\"@<\",\"@>\",\"@@\",\"@\\\\\",\"@arg\",\"@author\",\"@authors\",\"@brief\",\"@callergraph\",\"@callgraph\",\"@date\",\"@deprecated\",\"@details\",\"@docbookonly\",\"@else\",\"@endcond\",\"@enddocbookonly\",\"@endhtmlonly\",\"@endif\",\"@endinternal\",\"@endlatexonly\",\"@endlink\",\"@endmanonly\",\"@endparblock\",\"@endrtfonly\",\"@endsecreflist\",\"@endxmlonly\",\"@f$\",\"@f[\",\"@f]\",\"@hideinitializer\",\"@htmlonly\",\"@internal\",\"@invariant\",\"@latexonly\",\"@li\",\"@manonly\",\"@n\",\"@nosubgrouping\",\"@only\",\"@parblock\",\"@pivate\",\"@pivatesection\",\"@post\",\"@pre\",\"@protected\",\"@protectedsection\",\"@public\",\"@publicsection\",\"@pure\",\"@remark\",\"@remarks\",\"@result\",\"@return\",\"@returns\",\"@rtfonly\",\"@sa\",\"@secreflist\",\"@see\",\"@short\",\"@showinitializer\",\"@since\",\"@static\",\"@tableofcontents\",\"@test\",\"@version\",\"@xmlonly\",\"@~\",\"\\\\\\\"\",\"\\\\#\",\"\\\\$\",\"\\\\%\",\"\\\\&\",\"\\\\--\",\"\\\\---\",\"\\\\.\",\"\\\\::\",\"\\\\<\",\"\\\\>\",\"\\\\@\",\"\\\\\\\\\",\"\\\\arg\",\"\\\\author\",\"\\\\authors\",\"\\\\brief\",\"\\\\callergraph\",\"\\\\callgraph\",\"\\\\date\",\"\\\\deprecated\",\"\\\\details\",\"\\\\docbookonly\",\"\\\\else\",\"\\\\endcond\",\"\\\\enddocbookonly\",\"\\\\endhtmlonly\",\"\\\\endif\",\"\\\\endinternal\",\"\\\\endlatexonly\",\"\\\\endlink\",\"\\\\endmanonly\",\"\\\\endparblock\",\"\\\\endrtfonly\",\"\\\\endsecreflist\",\"\\\\endxmlonly\",\"\\\\f$\",\"\\\\f[\",\"\\\\f]\",\"\\\\hideinitializer\",\"\\\\htmlonly\",\"\\\\internal\",\"\\\\invariant\",\"\\\\latexonly\",\"\\\\li\",\"\\\\manonly\",\"\\\\n\",\"\\\\nosubgrouping\",\"\\\\only\",\"\\\\parblock\",\"\\\\post\",\"\\\\pre\",\"\\\\private\",\"\\\\privatesection\",\"\\\\protected\",\"\\\\protectedsection\",\"\\\\public\",\"\\\\publicsection\",\"\\\\pure\",\"\\\\remark\",\"\\\\remarks\",\"\\\\result\",\"\\\\return\",\"\\\\returns\",\"\\\\rtfonly\",\"\\\\sa\",\"\\\\secreflist\",\"\\\\see\",\"\\\\short\",\"\\\\showinitializer\",\"\\\\since\",\"\\\\static\",\"\\\\tableofcontents\",\"\\\\test\",\"\\\\version\",\"\\\\xmlonly\",\"\\\\~\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseSensitiveWords (fromList [\"@a\",\"@anchor\",\"@b\",\"@c\",\"@cite\",\"@cond\",\"@copybrief\",\"@copydetails\",\"@copydoc\",\"@def\",\"@dir\",\"@dontinclude\",\"@e\",\"@elseif\",\"@em\",\"@enum\",\"@example\",\"@exception\",\"@exceptions\",\"@extends\",\"@file\",\"@htmlinclude\",\"@idlexcept\",\"@if\",\"@ifnot\",\"@implements\",\"@include\",\"@includelineno\",\"@latexinclude\",\"@link\",\"@memberof\",\"@namespace\",\"@p\",\"@package\",\"@property\",\"@related\",\"@relatedalso\",\"@relates\",\"@relatesalso\",\"@retval\",\"@throw\",\"@throws\",\"@verbinclude\",\"@version\",\"@xrefitem\",\"\\\\a\",\"\\\\anchor\",\"\\\\b\",\"\\\\c\",\"\\\\cite\",\"\\\\cond\",\"\\\\copybrief\",\"\\\\copydetails\",\"\\\\copydoc\",\"\\\\def\",\"\\\\dir\",\"\\\\dontinclude\",\"\\\\e\",\"\\\\elseif\",\"\\\\em\",\"\\\\enum\",\"\\\\example\",\"\\\\exception\",\"\\\\exceptions\",\"\\\\extends\",\"\\\\file\",\"\\\\htmlinclude\",\"\\\\idlexcept\",\"\\\\if\",\"\\\\ifnot\",\"\\\\implements\",\"\\\\include\",\"\\\\includelineno\",\"\\\\latexinclude\",\"\\\\link\",\"\\\\memberof\",\"\\\\namespace\",\"\\\\p\",\"\\\\package\",\"\\\\property\",\"\\\\related\",\"\\\\relatedalso\",\"\\\\relates\",\"\\\\relatesalso\",\"\\\\retval\",\"\\\\throw\",\"\\\\throws\",\"\\\\verbinclude\",\"\\\\version\",\"\\\\xrefitem\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"SL_TagWord\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseSensitiveWords (fromList [\"@param\",\"@tparam\",\"\\\\param\",\"\\\\tparam\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"SL_TagParam\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseSensitiveWords (fromList [\"@image\",\"\\\\image\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"SL_TagWordWord\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseSensitiveWords (fromList [\"@addindex\",\"@copyright\",\"@fn\",\"@ingroup\",\"@line\",\"@mainpage\",\"@name\",\"@overload\",\"@par\",\"@skip\",\"@skipline\",\"@typedef\",\"@until\",\"@var\",\"@vhdlflow\",\"\\\\addindex\",\"\\\\copyright\",\"\\\\fn\",\"\\\\ingroup\",\"\\\\line\",\"\\\\mainpage\",\"\\\\name\",\"\\\\overload\",\"\\\\par\",\"\\\\skip\",\"\\\\skipline\",\"\\\\typedef\",\"\\\\until\",\"\\\\var\",\"\\\\vhdlflow\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"SL_TagString\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseSensitiveWords (fromList [\"@addtogroup\",\"@category\",\"@class\",\"@defgroup\",\"@diafile\",\"@dotfile\",\"@headerfile\",\"@interface\",\"@mscfile\",\"@page\",\"@paragraph\",\"@prtocol\",\"@ref\",\"@section\",\"@snippet\",\"@struct\",\"@subpage\",\"@subsection\",\"@subsubsection\",\"@union\",\"@weakgroup\",\"\\\\addtogroup\",\"\\\\category\",\"\\\\class\",\"\\\\defgroup\",\"\\\\diafile\",\"\\\\dotfile\",\"\\\\headerfile\",\"\\\\interface\",\"\\\\mscfile\",\"\\\\page\",\"\\\\paragraph\",\"\\\\protocol\",\"\\\\ref\",\"\\\\section\",\"\\\\snippet\",\"\\\\struct\",\"\\\\subpage\",\"\\\\subsection\",\"\\\\subsubsection\",\"\\\\union\",\"\\\\weakgroup\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"SL_TagWordString\")]},Rule {rMatcher = RegExpr (RE {reString = \"[@\\\\\\\\][^@\\\\\\\\ \\\\t]+\", reCaseSensitive = True}), rAttribute = AnnotationTok, 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 = []},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"SL_htmlcomment\")]},Rule {rMatcher = Detect2Chars '<' '<', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\/?[\\\\w0-9._:-@]+\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"SL_htmltag\")]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ML_Tag2ndWord\",Context {cName = \"ML_Tag2ndWord\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Doxygen\",\"SL_Tag2ndWord\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ML_TagParam\",Context {cName = \"ML_TagParam\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"[in]\", rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"ML_Tag2ndWord\")]},Rule {rMatcher = StringDetect \"[out]\", rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"ML_Tag2ndWord\")]},Rule {rMatcher = StringDetect \"[in,out]\", rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"ML_Tag2ndWord\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S(?=([][,?;()]|\\\\.$|\\\\.?\\\\s))\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ML_TagString\",Context {cName = \"ML_TagString\", cSyntax = \"Doxygen\", 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 = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"ML_htmlcomment\")]},Rule {rMatcher = Detect2Chars '<' '<', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\/?[\\\\w0-9._:-@]+\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"ML_htmltag\")]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ML_TagWord\",Context {cName = \"ML_TagWord\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Doxygen\",\"SL_TagWord\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ML_TagWordString\",Context {cName = \"ML_TagWordString\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Doxygen\",\"SL_TagWordString\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ML_TagWordWord\",Context {cName = \"ML_TagWordWord\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S(?=([][,?;()]|\\\\.$|\\\\.?\\\\s))\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"ML_Tag2ndWord\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ML_htmlcomment\",Context {cName = \"ML_htmlcomment\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, 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 = StringDetect \"-->\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ML_htmltag\",Context {cName = \"ML_htmltag\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '/' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*=\\\\s*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"ML_identifiers\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ML_identifiers\",Context {cName = \"ML_identifiers\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*#?[a-zA-Z0-9]*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\\'', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"ML_types1\")]},Rule {rMatcher = DetectChar '\"', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"ML_types2\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ML_types1\",Context {cName = \"ML_types1\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\\'', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ML_types2\",Context {cName = \"ML_types2\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\"', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Msc\",Context {cName = \"Msc\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = IncludeRules (\"Doxygen\",\"SL_DetectComment\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[@\\\\\\\\]endmsc\\\\b\", reCaseSensitive = True}), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"//(!|(/(?=[^/]|$)))<?\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"LineComment\")]},Rule {rMatcher = RegExpr (RE {reString = \"/\\\\*(\\\\*[^*/]|!|[*!]<|\\\\*$)\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"BlockComment\")]},Rule {rMatcher = RegExpr (RE {reString = \"//\\\\s*@\\\\{\\\\s*$\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"//\\\\s*@\\\\}\\\\s*$\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"/\\\\*\\\\s*@\\\\{\\\\s*\\\\*/\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"/\\\\*\\\\s*@\\\\}\\\\s*\\\\*/\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_DetectComment\",Context {cName = \"SL_DetectComment\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"///\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_DetectEnv\",Context {cName = \"SL_DetectEnv\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[@\\\\\\\\]code\\\\b\", reCaseSensitive = True}), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"Code\")]},Rule {rMatcher = RegExpr (RE {reString = \"[@\\\\\\\\]verbatim\\\\b\", reCaseSensitive = True}), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"Verbatim\")]},Rule {rMatcher = RegExpr (RE {reString = \"[@\\\\\\\\]f\\\\[\", reCaseSensitive = True}), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"Formula\")]},Rule {rMatcher = RegExpr (RE {reString = \"[@\\\\\\\\]msc\\\\b\", reCaseSensitive = True}), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"Msc\")]},Rule {rMatcher = RegExpr (RE {reString = \"[@\\\\\\\\]dot\\\\b\", reCaseSensitive = True}), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"Dot\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseSensitiveWords (fromList [\"@note\",\"\\\\note\"])), rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseSensitiveWords (fromList [\"@warning\",\"\\\\warning\"])), rAttribute = WarningTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseSensitiveWords (fromList [\"@attention\",\"@bug\",\"\\\\attention\",\"\\\\bug\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseSensitiveWords (fromList [\"@todo\",\"\\\\todo\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"&[A-Za-z]+;\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_Tag2ndWord\",Context {cName = \"SL_Tag2ndWord\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S(?=([][,?;()]|\\\\.$|\\\\.?\\\\s))\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_TagParam\",Context {cName = \"SL_TagParam\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"[in]\", rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"SL_Tag2ndWord\")]},Rule {rMatcher = StringDetect \"[out]\", rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"SL_Tag2ndWord\")]},Rule {rMatcher = StringDetect \"[in,out]\", rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"SL_Tag2ndWord\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S(?=([][,?;()]|\\\\.$|\\\\.?\\\\s))\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_TagString\",Context {cName = \"SL_TagString\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"SL_htmlcomment\")]},Rule {rMatcher = Detect2Chars '<' '<', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\/?[\\\\w0-9._:-@]+\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"SL_htmltag\")]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_TagWord\",Context {cName = \"SL_TagWord\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseSensitiveWords (fromList [\"@a\",\"@anchor\",\"@b\",\"@c\",\"@cite\",\"@cond\",\"@copybrief\",\"@copydetails\",\"@copydoc\",\"@def\",\"@dir\",\"@dontinclude\",\"@e\",\"@elseif\",\"@em\",\"@enum\",\"@example\",\"@exception\",\"@exceptions\",\"@extends\",\"@file\",\"@htmlinclude\",\"@idlexcept\",\"@if\",\"@ifnot\",\"@implements\",\"@include\",\"@includelineno\",\"@latexinclude\",\"@link\",\"@memberof\",\"@namespace\",\"@p\",\"@package\",\"@property\",\"@related\",\"@relatedalso\",\"@relates\",\"@relatesalso\",\"@retval\",\"@throw\",\"@throws\",\"@verbinclude\",\"@version\",\"@xrefitem\",\"\\\\a\",\"\\\\anchor\",\"\\\\b\",\"\\\\c\",\"\\\\cite\",\"\\\\cond\",\"\\\\copybrief\",\"\\\\copydetails\",\"\\\\copydoc\",\"\\\\def\",\"\\\\dir\",\"\\\\dontinclude\",\"\\\\e\",\"\\\\elseif\",\"\\\\em\",\"\\\\enum\",\"\\\\example\",\"\\\\exception\",\"\\\\exceptions\",\"\\\\extends\",\"\\\\file\",\"\\\\htmlinclude\",\"\\\\idlexcept\",\"\\\\if\",\"\\\\ifnot\",\"\\\\implements\",\"\\\\include\",\"\\\\includelineno\",\"\\\\latexinclude\",\"\\\\link\",\"\\\\memberof\",\"\\\\namespace\",\"\\\\p\",\"\\\\package\",\"\\\\property\",\"\\\\related\",\"\\\\relatedalso\",\"\\\\relates\",\"\\\\relatesalso\",\"\\\\retval\",\"\\\\throw\",\"\\\\throws\",\"\\\\verbinclude\",\"\\\\version\",\"\\\\xrefitem\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S(?=([][,?;()]|\\\\.$|\\\\.?\\\\s))\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_TagWordString\",Context {cName = \"SL_TagWordString\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S(?=([][,?;()]|\\\\.$|\\\\.?\\\\s))\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_TagWordWord\",Context {cName = \"SL_TagWordWord\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S(?=([][,?;()]|\\\\.$|\\\\.?\\\\s))\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"SL_Tag2ndWord\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_htmlcomment\",Context {cName = \"SL_htmlcomment\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"-->\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_htmltag\",Context {cName = \"SL_htmltag\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = Detect2Chars '/' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*=\\\\s*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"SL_identifiers\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_identifiers\",Context {cName = \"SL_identifiers\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*#?[a-zA-Z0-9]*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\\'', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"SL_types1\")]},Rule {rMatcher = DetectChar '\"', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Doxygen\",\"SL_types2\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_types1\",Context {cName = \"SL_types1\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_types2\",Context {cName = \"SL_types2\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Verbatim\",Context {cName = \"Verbatim\", cSyntax = \"Doxygen\", cRules = [Rule {rMatcher = IncludeRules (\"Doxygen\",\"SL_DetectComment\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[@\\\\\\\\]endverbatim\\\\b\", reCaseSensitive = True}), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Dominik Haumann (dhdev@gmx.de)\", sVersion = \"3\", sLicense = \"LGPLv2+\", sExtensions = [\"*.dox\",\"*.doxygen\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Doxygenlua.hs b/src/Skylighting/Syntax/Doxygenlua.hs
--- a/src/Skylighting/Syntax/Doxygenlua.hs
+++ b/src/Skylighting/Syntax/Doxygenlua.hs
@@ -2,2417 +2,6 @@
 module Skylighting.Syntax.Doxygenlua (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "DoxygenLua"
-  , sFilename = "doxygenlua.xml"
-  , sShortname = "Doxygenlua"
-  , sContexts =
-      fromList
-        [ ( "BlockComment"
-          , Context
-              { cName = "BlockComment"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\]%1\\]"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '@' '{'
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '@' '}'
-                      , rAttribute = RegionMarkerTok
-                      , 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
-                               [ "@#"
-                               , "@$"
-                               , "@@"
-                               , "@\\"
-                               , "@arg"
-                               , "@attention"
-                               , "@author"
-                               , "@callgraph"
-                               , "@code"
-                               , "@dot"
-                               , "@else"
-                               , "@endcode"
-                               , "@endcond"
-                               , "@enddot"
-                               , "@endhtmlonly"
-                               , "@endif"
-                               , "@endlatexonly"
-                               , "@endlink"
-                               , "@endmanonly"
-                               , "@endverbatim"
-                               , "@endxmlonly"
-                               , "@f$"
-                               , "@f["
-                               , "@f]"
-                               , "@hideinitializer"
-                               , "@htmlonly"
-                               , "@interface"
-                               , "@internal"
-                               , "@invariant"
-                               , "@latexonly"
-                               , "@li"
-                               , "@manonly"
-                               , "@n"
-                               , "@nosubgrouping"
-                               , "@note"
-                               , "@only"
-                               , "@post"
-                               , "@pre"
-                               , "@remarks"
-                               , "@return"
-                               , "@returns"
-                               , "@sa"
-                               , "@see"
-                               , "@showinitializer"
-                               , "@since"
-                               , "@test"
-                               , "@todo"
-                               , "@verbatim"
-                               , "@warning"
-                               , "@xmlonly"
-                               , "@~"
-                               , "\\#"
-                               , "\\$"
-                               , "\\@"
-                               , "\\\\"
-                               , "\\arg"
-                               , "\\attention"
-                               , "\\author"
-                               , "\\callgraph"
-                               , "\\code"
-                               , "\\dot"
-                               , "\\else"
-                               , "\\endcode"
-                               , "\\endcond"
-                               , "\\enddot"
-                               , "\\endhtmlonly"
-                               , "\\endif"
-                               , "\\endlatexonly"
-                               , "\\endlink"
-                               , "\\endmanonly"
-                               , "\\endverbatim"
-                               , "\\endxmlonly"
-                               , "\\f$"
-                               , "\\f["
-                               , "\\f]"
-                               , "\\hideinitializer"
-                               , "\\htmlonly"
-                               , "\\interface"
-                               , "\\internal"
-                               , "\\invariant"
-                               , "\\latexonly"
-                               , "\\li"
-                               , "\\manonly"
-                               , "\\n"
-                               , "\\nosubgrouping"
-                               , "\\note"
-                               , "\\only"
-                               , "\\post"
-                               , "\\pre"
-                               , "\\remarks"
-                               , "\\return"
-                               , "\\returns"
-                               , "\\sa"
-                               , "\\see"
-                               , "\\showinitializer"
-                               , "\\since"
-                               , "\\test"
-                               , "\\todo"
-                               , "\\verbatim"
-                               , "\\warning"
-                               , "\\xmlonly"
-                               , "\\~"
-                               ])
-                      , rAttribute = AnnotationTok
-                      , 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
-                               [ "@a"
-                               , "@addtogroup"
-                               , "@anchor"
-                               , "@b"
-                               , "@c"
-                               , "@class"
-                               , "@cond"
-                               , "@copydoc"
-                               , "@def"
-                               , "@dontinclude"
-                               , "@dotfile"
-                               , "@e"
-                               , "@elseif"
-                               , "@em"
-                               , "@enum"
-                               , "@example"
-                               , "@exception"
-                               , "@exceptions"
-                               , "@file"
-                               , "@htmlinclude"
-                               , "@if"
-                               , "@ifnot"
-                               , "@include"
-                               , "@link"
-                               , "@namespace"
-                               , "@p"
-                               , "@package"
-                               , "@ref"
-                               , "@relates"
-                               , "@relatesalso"
-                               , "@retval"
-                               , "@throw"
-                               , "@throws"
-                               , "@verbinclude"
-                               , "@version"
-                               , "@xrefitem"
-                               , "\\a"
-                               , "\\addtogroup"
-                               , "\\anchor"
-                               , "\\b"
-                               , "\\c"
-                               , "\\class"
-                               , "\\cond"
-                               , "\\copydoc"
-                               , "\\def"
-                               , "\\dontinclude"
-                               , "\\dotfile"
-                               , "\\e"
-                               , "\\elseif"
-                               , "\\em"
-                               , "\\enum"
-                               , "\\example"
-                               , "\\exception"
-                               , "\\exceptions"
-                               , "\\file"
-                               , "\\htmlinclude"
-                               , "\\if"
-                               , "\\ifnot"
-                               , "\\include"
-                               , "\\link"
-                               , "\\namespace"
-                               , "\\p"
-                               , "\\package"
-                               , "\\ref"
-                               , "\\relates"
-                               , "\\relatesalso"
-                               , "\\retval"
-                               , "\\throw"
-                               , "\\throws"
-                               , "\\verbinclude"
-                               , "\\version"
-                               , "\\xrefitem"
-                               ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "ML_TagWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet False [ "@param" , "\\param" ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "ML_TagParam" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet False [ "@image" , "\\image" ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "ML_TagWordWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet
-                               False
-                               [ "@addindex"
-                               , "@brief"
-                               , "@bug"
-                               , "@date"
-                               , "@deprecated"
-                               , "@fn"
-                               , "@ingroup"
-                               , "@line"
-                               , "@mainpage"
-                               , "@name"
-                               , "@overload"
-                               , "@par"
-                               , "@short"
-                               , "@skip"
-                               , "@skipline"
-                               , "@typedef"
-                               , "@until"
-                               , "@var"
-                               , "\\addindex"
-                               , "\\brief"
-                               , "\\bug"
-                               , "\\date"
-                               , "\\deprecated"
-                               , "\\fn"
-                               , "\\ingroup"
-                               , "\\line"
-                               , "\\mainpage"
-                               , "\\name"
-                               , "\\overload"
-                               , "\\par"
-                               , "\\short"
-                               , "\\skip"
-                               , "\\skipline"
-                               , "\\typedef"
-                               , "\\until"
-                               , "\\var"
-                               ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "ML_TagString" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet
-                               False
-                               [ "@defgroup"
-                               , "@page"
-                               , "@paragraph"
-                               , "@section"
-                               , "@struct"
-                               , "@subsection"
-                               , "@subsubsection"
-                               , "@union"
-                               , "@weakgroup"
-                               , "\\defgroup"
-                               , "\\page"
-                               , "\\paragraph"
-                               , "\\section"
-                               , "\\struct"
-                               , "\\subsection"
-                               , "\\subsubsection"
-                               , "\\union"
-                               , "\\weakgroup"
-                               ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "ML_TagWordString" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(<|>)"
-                              , reCompiled = Just (compileRegex True "\\\\(<|>)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '<' '<'
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\s*\\/?\\s*[a-zA-Z_:][a-zA-Z0-9._:-]*"
-                              , reCompiled =
-                                  Just (compileRegex True "<\\s*\\/?\\s*[a-zA-Z_:][a-zA-Z0-9._:-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "ML_htmltag" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "ML_htmlcomment" ) ]
-                      }
-                  ]
-              , cAttribute = DocumentationTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "LineComment"
-          , Context
-              { cName = "LineComment"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = DocumentationTok
-                      , 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
-                               [ "@#"
-                               , "@$"
-                               , "@@"
-                               , "@\\"
-                               , "@arg"
-                               , "@attention"
-                               , "@author"
-                               , "@callgraph"
-                               , "@code"
-                               , "@dot"
-                               , "@else"
-                               , "@endcode"
-                               , "@endcond"
-                               , "@enddot"
-                               , "@endhtmlonly"
-                               , "@endif"
-                               , "@endlatexonly"
-                               , "@endlink"
-                               , "@endmanonly"
-                               , "@endverbatim"
-                               , "@endxmlonly"
-                               , "@f$"
-                               , "@f["
-                               , "@f]"
-                               , "@hideinitializer"
-                               , "@htmlonly"
-                               , "@interface"
-                               , "@internal"
-                               , "@invariant"
-                               , "@latexonly"
-                               , "@li"
-                               , "@manonly"
-                               , "@n"
-                               , "@nosubgrouping"
-                               , "@note"
-                               , "@only"
-                               , "@post"
-                               , "@pre"
-                               , "@remarks"
-                               , "@return"
-                               , "@returns"
-                               , "@sa"
-                               , "@see"
-                               , "@showinitializer"
-                               , "@since"
-                               , "@test"
-                               , "@todo"
-                               , "@verbatim"
-                               , "@warning"
-                               , "@xmlonly"
-                               , "@~"
-                               , "\\#"
-                               , "\\$"
-                               , "\\@"
-                               , "\\\\"
-                               , "\\arg"
-                               , "\\attention"
-                               , "\\author"
-                               , "\\callgraph"
-                               , "\\code"
-                               , "\\dot"
-                               , "\\else"
-                               , "\\endcode"
-                               , "\\endcond"
-                               , "\\enddot"
-                               , "\\endhtmlonly"
-                               , "\\endif"
-                               , "\\endlatexonly"
-                               , "\\endlink"
-                               , "\\endmanonly"
-                               , "\\endverbatim"
-                               , "\\endxmlonly"
-                               , "\\f$"
-                               , "\\f["
-                               , "\\f]"
-                               , "\\hideinitializer"
-                               , "\\htmlonly"
-                               , "\\interface"
-                               , "\\internal"
-                               , "\\invariant"
-                               , "\\latexonly"
-                               , "\\li"
-                               , "\\manonly"
-                               , "\\n"
-                               , "\\nosubgrouping"
-                               , "\\note"
-                               , "\\only"
-                               , "\\post"
-                               , "\\pre"
-                               , "\\remarks"
-                               , "\\return"
-                               , "\\returns"
-                               , "\\sa"
-                               , "\\see"
-                               , "\\showinitializer"
-                               , "\\since"
-                               , "\\test"
-                               , "\\todo"
-                               , "\\verbatim"
-                               , "\\warning"
-                               , "\\xmlonly"
-                               , "\\~"
-                               ])
-                      , rAttribute = AnnotationTok
-                      , 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
-                               [ "@a"
-                               , "@addtogroup"
-                               , "@anchor"
-                               , "@b"
-                               , "@c"
-                               , "@class"
-                               , "@cond"
-                               , "@copydoc"
-                               , "@def"
-                               , "@dontinclude"
-                               , "@dotfile"
-                               , "@e"
-                               , "@elseif"
-                               , "@em"
-                               , "@enum"
-                               , "@example"
-                               , "@exception"
-                               , "@exceptions"
-                               , "@file"
-                               , "@htmlinclude"
-                               , "@if"
-                               , "@ifnot"
-                               , "@include"
-                               , "@link"
-                               , "@namespace"
-                               , "@p"
-                               , "@package"
-                               , "@ref"
-                               , "@relates"
-                               , "@relatesalso"
-                               , "@retval"
-                               , "@throw"
-                               , "@throws"
-                               , "@verbinclude"
-                               , "@version"
-                               , "@xrefitem"
-                               , "\\a"
-                               , "\\addtogroup"
-                               , "\\anchor"
-                               , "\\b"
-                               , "\\c"
-                               , "\\class"
-                               , "\\cond"
-                               , "\\copydoc"
-                               , "\\def"
-                               , "\\dontinclude"
-                               , "\\dotfile"
-                               , "\\e"
-                               , "\\elseif"
-                               , "\\em"
-                               , "\\enum"
-                               , "\\example"
-                               , "\\exception"
-                               , "\\exceptions"
-                               , "\\file"
-                               , "\\htmlinclude"
-                               , "\\if"
-                               , "\\ifnot"
-                               , "\\include"
-                               , "\\link"
-                               , "\\namespace"
-                               , "\\p"
-                               , "\\package"
-                               , "\\ref"
-                               , "\\relates"
-                               , "\\relatesalso"
-                               , "\\retval"
-                               , "\\throw"
-                               , "\\throws"
-                               , "\\verbinclude"
-                               , "\\version"
-                               , "\\xrefitem"
-                               ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "SL_TagWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet False [ "@param" , "\\param" ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "SL_TagParam" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet False [ "@image" , "\\image" ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "SL_TagWordWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet
-                               False
-                               [ "@addindex"
-                               , "@brief"
-                               , "@bug"
-                               , "@date"
-                               , "@deprecated"
-                               , "@fn"
-                               , "@ingroup"
-                               , "@line"
-                               , "@mainpage"
-                               , "@name"
-                               , "@overload"
-                               , "@par"
-                               , "@short"
-                               , "@skip"
-                               , "@skipline"
-                               , "@typedef"
-                               , "@until"
-                               , "@var"
-                               , "\\addindex"
-                               , "\\brief"
-                               , "\\bug"
-                               , "\\date"
-                               , "\\deprecated"
-                               , "\\fn"
-                               , "\\ingroup"
-                               , "\\line"
-                               , "\\mainpage"
-                               , "\\name"
-                               , "\\overload"
-                               , "\\par"
-                               , "\\short"
-                               , "\\skip"
-                               , "\\skipline"
-                               , "\\typedef"
-                               , "\\until"
-                               , "\\var"
-                               ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "SL_TagString" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[]^{|}"
-                              }
-                            (makeWordSet
-                               False
-                               [ "@defgroup"
-                               , "@page"
-                               , "@paragraph"
-                               , "@section"
-                               , "@struct"
-                               , "@subsection"
-                               , "@subsubsection"
-                               , "@union"
-                               , "@weakgroup"
-                               , "\\defgroup"
-                               , "\\page"
-                               , "\\paragraph"
-                               , "\\section"
-                               , "\\struct"
-                               , "\\subsection"
-                               , "\\subsubsection"
-                               , "\\union"
-                               , "\\weakgroup"
-                               ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "SL_TagWordString" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "SL_htmlcomment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '<' '<'
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\s*\\/?\\s*[a-zA-Z_:][a-zA-Z0-9._:-]*"
-                              , reCompiled =
-                                  Just (compileRegex True "<\\s*\\/?\\s*[a-zA-Z_:][a-zA-Z0-9._:-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "SL_htmltag" ) ]
-                      }
-                  ]
-              , cAttribute = DocumentationTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ML_Tag2ndWord"
-          , Context
-              { cName = "ML_Tag2ndWord"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "DoxygenLua" , "SL_Tag2ndWord" )
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = DocumentationTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ML_TagParam"
-          , Context
-              { cName = "ML_TagParam"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "[in]"
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "ML_Tag2ndWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "[out]"
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "ML_Tag2ndWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "[in,out]"
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "ML_Tag2ndWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S(?=([][,?;()]|\\.$|\\.?\\s))"
-                              , reCompiled =
-                                  Just (compileRegex True "\\S(?=([][,?;()]|\\.$|\\.?\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S"
-                              , reCompiled = Just (compileRegex True "\\S")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = DocumentationTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ML_TagString"
-          , Context
-              { cName = "ML_TagString"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "ML_htmlcomment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '<' '<'
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\s*\\/?\\s*[a-zA-Z_:][a-zA-Z0-9._:-]*"
-                              , reCompiled =
-                                  Just (compileRegex True "<\\s*\\/?\\s*[a-zA-Z_:][a-zA-Z0-9._:-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "ML_htmltag" ) ]
-                      }
-                  , 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 = []
-                      }
-                  ]
-              , cAttribute = DocumentationTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ML_TagWord"
-          , Context
-              { cName = "ML_TagWord"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "DoxygenLua" , "SL_TagWord" )
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = DocumentationTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ML_TagWordString"
-          , Context
-              { cName = "ML_TagWordString"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "DoxygenLua" , "SL_TagWordString" )
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = DocumentationTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ML_TagWordWord"
-          , Context
-              { cName = "ML_TagWordWord"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S(?=([][,?;()]|\\.$|\\.?\\s))"
-                              , reCompiled =
-                                  Just (compileRegex True "\\S(?=([][,?;()]|\\.$|\\.?\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "ML_Tag2ndWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S"
-                              , reCompiled = Just (compileRegex True "\\S")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = DocumentationTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ML_htmlcomment"
-          , Context
-              { cName = "ML_htmlcomment"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , 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 = StringDetect "-->"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ML_htmltag"
-          , Context
-              { cName = "ML_htmltag"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*=\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*=\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "ML_identifiers" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ML_identifiers"
-          , Context
-              { cName = "ML_identifiers"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*#?[a-zA-Z0-9]*"
-                              , reCompiled = Just (compileRegex True "\\s*#?[a-zA-Z0-9]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "ML_types1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "ML_types2" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ML_types1"
-          , Context
-              { cName = "ML_types1"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ML_types2"
-          , Context
-              { cName = "ML_types2"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "--\\[(=*)\\["
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "BlockComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "--"
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "LineComment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_Tag2ndWord"
-          , Context
-              { cName = "SL_Tag2ndWord"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S(?=([][,?;()]|\\.$|\\.?\\s))"
-                              , reCompiled =
-                                  Just (compileRegex True "\\S(?=([][,?;()]|\\.$|\\.?\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S"
-                              , reCompiled = Just (compileRegex True "\\S")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = DocumentationTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_TagParam"
-          , Context
-              { cName = "SL_TagParam"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "[in]"
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "SL_Tag2ndWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "[out]"
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "SL_Tag2ndWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "[in,out]"
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "SL_Tag2ndWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S(?=([][,?;()]|\\.$|\\.?\\s))"
-                              , reCompiled =
-                                  Just (compileRegex True "\\S(?=([][,?;()]|\\.$|\\.?\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S"
-                              , reCompiled = Just (compileRegex True "\\S")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = DocumentationTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_TagString"
-          , Context
-              { cName = "SL_TagString"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "SL_htmlcomment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '<' '<'
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\s*\\/?\\s*[a-zA-Z_:][a-zA-Z0-9._:-]*"
-                              , reCompiled =
-                                  Just (compileRegex True "<\\s*\\/?\\s*[a-zA-Z_:][a-zA-Z0-9._:-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "SL_htmltag" ) ]
-                      }
-                  , 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 = []
-                      }
-                  ]
-              , cAttribute = DocumentationTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_TagWord"
-          , Context
-              { cName = "SL_TagWord"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = DocumentationTok
-                      , 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
-                               [ "@a"
-                               , "@addtogroup"
-                               , "@anchor"
-                               , "@b"
-                               , "@c"
-                               , "@class"
-                               , "@cond"
-                               , "@copydoc"
-                               , "@def"
-                               , "@dontinclude"
-                               , "@dotfile"
-                               , "@e"
-                               , "@elseif"
-                               , "@em"
-                               , "@enum"
-                               , "@example"
-                               , "@exception"
-                               , "@exceptions"
-                               , "@file"
-                               , "@htmlinclude"
-                               , "@if"
-                               , "@ifnot"
-                               , "@include"
-                               , "@link"
-                               , "@namespace"
-                               , "@p"
-                               , "@package"
-                               , "@ref"
-                               , "@relates"
-                               , "@relatesalso"
-                               , "@retval"
-                               , "@throw"
-                               , "@throws"
-                               , "@verbinclude"
-                               , "@version"
-                               , "@xrefitem"
-                               , "\\a"
-                               , "\\addtogroup"
-                               , "\\anchor"
-                               , "\\b"
-                               , "\\c"
-                               , "\\class"
-                               , "\\cond"
-                               , "\\copydoc"
-                               , "\\def"
-                               , "\\dontinclude"
-                               , "\\dotfile"
-                               , "\\e"
-                               , "\\elseif"
-                               , "\\em"
-                               , "\\enum"
-                               , "\\example"
-                               , "\\exception"
-                               , "\\exceptions"
-                               , "\\file"
-                               , "\\htmlinclude"
-                               , "\\if"
-                               , "\\ifnot"
-                               , "\\include"
-                               , "\\link"
-                               , "\\namespace"
-                               , "\\p"
-                               , "\\package"
-                               , "\\ref"
-                               , "\\relates"
-                               , "\\relatesalso"
-                               , "\\retval"
-                               , "\\throw"
-                               , "\\throws"
-                               , "\\verbinclude"
-                               , "\\version"
-                               , "\\xrefitem"
-                               ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S(?=([][,?;()]|\\.$|\\.?\\s))"
-                              , reCompiled =
-                                  Just (compileRegex True "\\S(?=([][,?;()]|\\.$|\\.?\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S"
-                              , reCompiled = Just (compileRegex True "\\S")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = DocumentationTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_TagWordString"
-          , Context
-              { cName = "SL_TagWordString"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S(?=([][,?;()]|\\.$|\\.?\\s))"
-                              , reCompiled =
-                                  Just (compileRegex True "\\S(?=([][,?;()]|\\.$|\\.?\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S"
-                              , reCompiled = Just (compileRegex True "\\S")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = DocumentationTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_TagWordWord"
-          , Context
-              { cName = "SL_TagWordWord"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S(?=([][,?;()]|\\.$|\\.?\\s))"
-                              , reCompiled =
-                                  Just (compileRegex True "\\S(?=([][,?;()]|\\.$|\\.?\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "SL_Tag2ndWord" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S"
-                              , reCompiled = Just (compileRegex True "\\S")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = DocumentationTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_htmlcomment"
-          , Context
-              { cName = "SL_htmlcomment"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "-->"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_htmltag"
-          , Context
-              { cName = "SL_htmltag"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*=\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*=\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "SL_identifiers" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_identifiers"
-          , Context
-              { cName = "SL_identifiers"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*#?[a-zA-Z0-9]*"
-                              , reCompiled = Just (compileRegex True "\\s*#?[a-zA-Z0-9]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "SL_types1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DoxygenLua" , "SL_types2" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_types1"
-          , Context
-              { cName = "SL_types1"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SL_types2"
-          , Context
-              { cName = "SL_types2"
-              , cSyntax = "DoxygenLua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Bruno Massa (brmassa@gmail.com)"
-  , sVersion = "3"
-  , sLicense = "LGPLv2+"
-  , sExtensions = [ "*.dox" , "*.doxygen" ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"DoxygenLua\", sFilename = \"doxygenlua.xml\", sShortname = \"Doxygenlua\", sContexts = fromList [(\"BlockComment\",Context {cName = \"BlockComment\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\]%1\\\\]\", reCaseSensitive = True}), rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '@' '{', rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '@' '}', rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseInsensitiveWords (fromList [\"@#\",\"@$\",\"@@\",\"@\\\\\",\"@arg\",\"@attention\",\"@author\",\"@callgraph\",\"@code\",\"@dot\",\"@else\",\"@endcode\",\"@endcond\",\"@enddot\",\"@endhtmlonly\",\"@endif\",\"@endlatexonly\",\"@endlink\",\"@endmanonly\",\"@endverbatim\",\"@endxmlonly\",\"@f$\",\"@f[\",\"@f]\",\"@hideinitializer\",\"@htmlonly\",\"@interface\",\"@internal\",\"@invariant\",\"@latexonly\",\"@li\",\"@manonly\",\"@n\",\"@nosubgrouping\",\"@note\",\"@only\",\"@post\",\"@pre\",\"@remarks\",\"@return\",\"@returns\",\"@sa\",\"@see\",\"@showinitializer\",\"@since\",\"@test\",\"@todo\",\"@verbatim\",\"@warning\",\"@xmlonly\",\"@~\",\"\\\\#\",\"\\\\$\",\"\\\\@\",\"\\\\\\\\\",\"\\\\arg\",\"\\\\attention\",\"\\\\author\",\"\\\\callgraph\",\"\\\\code\",\"\\\\dot\",\"\\\\else\",\"\\\\endcode\",\"\\\\endcond\",\"\\\\enddot\",\"\\\\endhtmlonly\",\"\\\\endif\",\"\\\\endlatexonly\",\"\\\\endlink\",\"\\\\endmanonly\",\"\\\\endverbatim\",\"\\\\endxmlonly\",\"\\\\f$\",\"\\\\f[\",\"\\\\f]\",\"\\\\hideinitializer\",\"\\\\htmlonly\",\"\\\\interface\",\"\\\\internal\",\"\\\\invariant\",\"\\\\latexonly\",\"\\\\li\",\"\\\\manonly\",\"\\\\n\",\"\\\\nosubgrouping\",\"\\\\note\",\"\\\\only\",\"\\\\post\",\"\\\\pre\",\"\\\\remarks\",\"\\\\return\",\"\\\\returns\",\"\\\\sa\",\"\\\\see\",\"\\\\showinitializer\",\"\\\\since\",\"\\\\test\",\"\\\\todo\",\"\\\\verbatim\",\"\\\\warning\",\"\\\\xmlonly\",\"\\\\~\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseInsensitiveWords (fromList [\"@a\",\"@addtogroup\",\"@anchor\",\"@b\",\"@c\",\"@class\",\"@cond\",\"@copydoc\",\"@def\",\"@dontinclude\",\"@dotfile\",\"@e\",\"@elseif\",\"@em\",\"@enum\",\"@example\",\"@exception\",\"@exceptions\",\"@file\",\"@htmlinclude\",\"@if\",\"@ifnot\",\"@include\",\"@link\",\"@namespace\",\"@p\",\"@package\",\"@ref\",\"@relates\",\"@relatesalso\",\"@retval\",\"@throw\",\"@throws\",\"@verbinclude\",\"@version\",\"@xrefitem\",\"\\\\a\",\"\\\\addtogroup\",\"\\\\anchor\",\"\\\\b\",\"\\\\c\",\"\\\\class\",\"\\\\cond\",\"\\\\copydoc\",\"\\\\def\",\"\\\\dontinclude\",\"\\\\dotfile\",\"\\\\e\",\"\\\\elseif\",\"\\\\em\",\"\\\\enum\",\"\\\\example\",\"\\\\exception\",\"\\\\exceptions\",\"\\\\file\",\"\\\\htmlinclude\",\"\\\\if\",\"\\\\ifnot\",\"\\\\include\",\"\\\\link\",\"\\\\namespace\",\"\\\\p\",\"\\\\package\",\"\\\\ref\",\"\\\\relates\",\"\\\\relatesalso\",\"\\\\retval\",\"\\\\throw\",\"\\\\throws\",\"\\\\verbinclude\",\"\\\\version\",\"\\\\xrefitem\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"ML_TagWord\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseInsensitiveWords (fromList [\"@param\",\"\\\\param\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"ML_TagParam\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseInsensitiveWords (fromList [\"@image\",\"\\\\image\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"ML_TagWordWord\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseInsensitiveWords (fromList [\"@addindex\",\"@brief\",\"@bug\",\"@date\",\"@deprecated\",\"@fn\",\"@ingroup\",\"@line\",\"@mainpage\",\"@name\",\"@overload\",\"@par\",\"@short\",\"@skip\",\"@skipline\",\"@typedef\",\"@until\",\"@var\",\"\\\\addindex\",\"\\\\brief\",\"\\\\bug\",\"\\\\date\",\"\\\\deprecated\",\"\\\\fn\",\"\\\\ingroup\",\"\\\\line\",\"\\\\mainpage\",\"\\\\name\",\"\\\\overload\",\"\\\\par\",\"\\\\short\",\"\\\\skip\",\"\\\\skipline\",\"\\\\typedef\",\"\\\\until\",\"\\\\var\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"ML_TagString\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseInsensitiveWords (fromList [\"@defgroup\",\"@page\",\"@paragraph\",\"@section\",\"@struct\",\"@subsection\",\"@subsubsection\",\"@union\",\"@weakgroup\",\"\\\\defgroup\",\"\\\\page\",\"\\\\paragraph\",\"\\\\section\",\"\\\\struct\",\"\\\\subsection\",\"\\\\subsubsection\",\"\\\\union\",\"\\\\weakgroup\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"ML_TagWordString\")]},Rule {rMatcher = DetectIdentifier, rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(<|>)\", reCaseSensitive = True}), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '<' '<', rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\s*\\\\/?\\\\s*[a-zA-Z_:][a-zA-Z0-9._:-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"ML_htmltag\")]},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"ML_htmlcomment\")]}], cAttribute = DocumentationTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"LineComment\",Context {cName = \"LineComment\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseInsensitiveWords (fromList [\"@#\",\"@$\",\"@@\",\"@\\\\\",\"@arg\",\"@attention\",\"@author\",\"@callgraph\",\"@code\",\"@dot\",\"@else\",\"@endcode\",\"@endcond\",\"@enddot\",\"@endhtmlonly\",\"@endif\",\"@endlatexonly\",\"@endlink\",\"@endmanonly\",\"@endverbatim\",\"@endxmlonly\",\"@f$\",\"@f[\",\"@f]\",\"@hideinitializer\",\"@htmlonly\",\"@interface\",\"@internal\",\"@invariant\",\"@latexonly\",\"@li\",\"@manonly\",\"@n\",\"@nosubgrouping\",\"@note\",\"@only\",\"@post\",\"@pre\",\"@remarks\",\"@return\",\"@returns\",\"@sa\",\"@see\",\"@showinitializer\",\"@since\",\"@test\",\"@todo\",\"@verbatim\",\"@warning\",\"@xmlonly\",\"@~\",\"\\\\#\",\"\\\\$\",\"\\\\@\",\"\\\\\\\\\",\"\\\\arg\",\"\\\\attention\",\"\\\\author\",\"\\\\callgraph\",\"\\\\code\",\"\\\\dot\",\"\\\\else\",\"\\\\endcode\",\"\\\\endcond\",\"\\\\enddot\",\"\\\\endhtmlonly\",\"\\\\endif\",\"\\\\endlatexonly\",\"\\\\endlink\",\"\\\\endmanonly\",\"\\\\endverbatim\",\"\\\\endxmlonly\",\"\\\\f$\",\"\\\\f[\",\"\\\\f]\",\"\\\\hideinitializer\",\"\\\\htmlonly\",\"\\\\interface\",\"\\\\internal\",\"\\\\invariant\",\"\\\\latexonly\",\"\\\\li\",\"\\\\manonly\",\"\\\\n\",\"\\\\nosubgrouping\",\"\\\\note\",\"\\\\only\",\"\\\\post\",\"\\\\pre\",\"\\\\remarks\",\"\\\\return\",\"\\\\returns\",\"\\\\sa\",\"\\\\see\",\"\\\\showinitializer\",\"\\\\since\",\"\\\\test\",\"\\\\todo\",\"\\\\verbatim\",\"\\\\warning\",\"\\\\xmlonly\",\"\\\\~\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseInsensitiveWords (fromList [\"@a\",\"@addtogroup\",\"@anchor\",\"@b\",\"@c\",\"@class\",\"@cond\",\"@copydoc\",\"@def\",\"@dontinclude\",\"@dotfile\",\"@e\",\"@elseif\",\"@em\",\"@enum\",\"@example\",\"@exception\",\"@exceptions\",\"@file\",\"@htmlinclude\",\"@if\",\"@ifnot\",\"@include\",\"@link\",\"@namespace\",\"@p\",\"@package\",\"@ref\",\"@relates\",\"@relatesalso\",\"@retval\",\"@throw\",\"@throws\",\"@verbinclude\",\"@version\",\"@xrefitem\",\"\\\\a\",\"\\\\addtogroup\",\"\\\\anchor\",\"\\\\b\",\"\\\\c\",\"\\\\class\",\"\\\\cond\",\"\\\\copydoc\",\"\\\\def\",\"\\\\dontinclude\",\"\\\\dotfile\",\"\\\\e\",\"\\\\elseif\",\"\\\\em\",\"\\\\enum\",\"\\\\example\",\"\\\\exception\",\"\\\\exceptions\",\"\\\\file\",\"\\\\htmlinclude\",\"\\\\if\",\"\\\\ifnot\",\"\\\\include\",\"\\\\link\",\"\\\\namespace\",\"\\\\p\",\"\\\\package\",\"\\\\ref\",\"\\\\relates\",\"\\\\relatesalso\",\"\\\\retval\",\"\\\\throw\",\"\\\\throws\",\"\\\\verbinclude\",\"\\\\version\",\"\\\\xrefitem\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"SL_TagWord\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseInsensitiveWords (fromList [\"@param\",\"\\\\param\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"SL_TagParam\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseInsensitiveWords (fromList [\"@image\",\"\\\\image\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"SL_TagWordWord\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseInsensitiveWords (fromList [\"@addindex\",\"@brief\",\"@bug\",\"@date\",\"@deprecated\",\"@fn\",\"@ingroup\",\"@line\",\"@mainpage\",\"@name\",\"@overload\",\"@par\",\"@short\",\"@skip\",\"@skipline\",\"@typedef\",\"@until\",\"@var\",\"\\\\addindex\",\"\\\\brief\",\"\\\\bug\",\"\\\\date\",\"\\\\deprecated\",\"\\\\fn\",\"\\\\ingroup\",\"\\\\line\",\"\\\\mainpage\",\"\\\\name\",\"\\\\overload\",\"\\\\par\",\"\\\\short\",\"\\\\skip\",\"\\\\skipline\",\"\\\\typedef\",\"\\\\until\",\"\\\\var\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"SL_TagString\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseInsensitiveWords (fromList [\"@defgroup\",\"@page\",\"@paragraph\",\"@section\",\"@struct\",\"@subsection\",\"@subsubsection\",\"@union\",\"@weakgroup\",\"\\\\defgroup\",\"\\\\page\",\"\\\\paragraph\",\"\\\\section\",\"\\\\struct\",\"\\\\subsection\",\"\\\\subsubsection\",\"\\\\union\",\"\\\\weakgroup\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"SL_TagWordString\")]},Rule {rMatcher = DetectIdentifier, rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"SL_htmlcomment\")]},Rule {rMatcher = Detect2Chars '<' '<', rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\s*\\\\/?\\\\s*[a-zA-Z_:][a-zA-Z0-9._:-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"SL_htmltag\")]}], cAttribute = DocumentationTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ML_Tag2ndWord\",Context {cName = \"ML_Tag2ndWord\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"DoxygenLua\",\"SL_Tag2ndWord\"), rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = DocumentationTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ML_TagParam\",Context {cName = \"ML_TagParam\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectSpaces, rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"[in]\", rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"ML_Tag2ndWord\")]},Rule {rMatcher = StringDetect \"[out]\", rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"ML_Tag2ndWord\")]},Rule {rMatcher = StringDetect \"[in,out]\", rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"ML_Tag2ndWord\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S(?=([][,?;()]|\\\\.$|\\\\.?\\\\s))\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = DocumentationTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ML_TagString\",Context {cName = \"ML_TagString\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '*' '/', rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"ML_htmlcomment\")]},Rule {rMatcher = Detect2Chars '<' '<', rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\s*\\\\/?\\\\s*[a-zA-Z_:][a-zA-Z0-9._:-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"ML_htmltag\")]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = DocumentationTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ML_TagWord\",Context {cName = \"ML_TagWord\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"DoxygenLua\",\"SL_TagWord\"), rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = DocumentationTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ML_TagWordString\",Context {cName = \"ML_TagWordString\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"DoxygenLua\",\"SL_TagWordString\"), rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = DocumentationTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ML_TagWordWord\",Context {cName = \"ML_TagWordWord\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectSpaces, rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S(?=([][,?;()]|\\\\.$|\\\\.?\\\\s))\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"ML_Tag2ndWord\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = DocumentationTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ML_htmlcomment\",Context {cName = \"ML_htmlcomment\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, 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 = StringDetect \"-->\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ML_htmltag\",Context {cName = \"ML_htmltag\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '/' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*=\\\\s*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"ML_identifiers\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ML_identifiers\",Context {cName = \"ML_identifiers\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*#?[a-zA-Z0-9]*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\\'', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"ML_types1\")]},Rule {rMatcher = DetectChar '\"', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"ML_types2\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ML_types1\",Context {cName = \"ML_types1\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\\'', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ML_types2\",Context {cName = \"ML_types2\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\"', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"--\\\\[(=*)\\\\[\", reCaseSensitive = True}), rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"BlockComment\")]},Rule {rMatcher = StringDetect \"--\", rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"LineComment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_Tag2ndWord\",Context {cName = \"SL_Tag2ndWord\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S(?=([][,?;()]|\\\\.$|\\\\.?\\\\s))\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = DocumentationTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_TagParam\",Context {cName = \"SL_TagParam\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"[in]\", rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"SL_Tag2ndWord\")]},Rule {rMatcher = StringDetect \"[out]\", rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"SL_Tag2ndWord\")]},Rule {rMatcher = StringDetect \"[in,out]\", rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"SL_Tag2ndWord\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S(?=([][,?;()]|\\\\.$|\\\\.?\\\\s))\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = DocumentationTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_TagString\",Context {cName = \"SL_TagString\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"SL_htmlcomment\")]},Rule {rMatcher = Detect2Chars '<' '<', rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\s*\\\\/?\\\\s*[a-zA-Z_:][a-zA-Z0-9._:-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"SL_htmltag\")]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = DocumentationTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_TagWord\",Context {cName = \"SL_TagWord\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[]^{|}\"}) (CaseInsensitiveWords (fromList [\"@a\",\"@addtogroup\",\"@anchor\",\"@b\",\"@c\",\"@class\",\"@cond\",\"@copydoc\",\"@def\",\"@dontinclude\",\"@dotfile\",\"@e\",\"@elseif\",\"@em\",\"@enum\",\"@example\",\"@exception\",\"@exceptions\",\"@file\",\"@htmlinclude\",\"@if\",\"@ifnot\",\"@include\",\"@link\",\"@namespace\",\"@p\",\"@package\",\"@ref\",\"@relates\",\"@relatesalso\",\"@retval\",\"@throw\",\"@throws\",\"@verbinclude\",\"@version\",\"@xrefitem\",\"\\\\a\",\"\\\\addtogroup\",\"\\\\anchor\",\"\\\\b\",\"\\\\c\",\"\\\\class\",\"\\\\cond\",\"\\\\copydoc\",\"\\\\def\",\"\\\\dontinclude\",\"\\\\dotfile\",\"\\\\e\",\"\\\\elseif\",\"\\\\em\",\"\\\\enum\",\"\\\\example\",\"\\\\exception\",\"\\\\exceptions\",\"\\\\file\",\"\\\\htmlinclude\",\"\\\\if\",\"\\\\ifnot\",\"\\\\include\",\"\\\\link\",\"\\\\namespace\",\"\\\\p\",\"\\\\package\",\"\\\\ref\",\"\\\\relates\",\"\\\\relatesalso\",\"\\\\retval\",\"\\\\throw\",\"\\\\throws\",\"\\\\verbinclude\",\"\\\\version\",\"\\\\xrefitem\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S(?=([][,?;()]|\\\\.$|\\\\.?\\\\s))\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = DocumentationTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_TagWordString\",Context {cName = \"SL_TagWordString\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S(?=([][,?;()]|\\\\.$|\\\\.?\\\\s))\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = DocumentationTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_TagWordWord\",Context {cName = \"SL_TagWordWord\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S(?=([][,?;()]|\\\\.$|\\\\.?\\\\s))\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"SL_Tag2ndWord\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = DocumentationTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_htmlcomment\",Context {cName = \"SL_htmlcomment\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"-->\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_htmltag\",Context {cName = \"SL_htmltag\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = Detect2Chars '/' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*=\\\\s*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"SL_identifiers\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_identifiers\",Context {cName = \"SL_identifiers\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*#?[a-zA-Z0-9]*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\\'', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"SL_types1\")]},Rule {rMatcher = DetectChar '\"', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DoxygenLua\",\"SL_types2\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_types1\",Context {cName = \"SL_types1\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SL_types2\",Context {cName = \"SL_types2\", cSyntax = \"DoxygenLua\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Bruno Massa (brmassa@gmail.com)\", sVersion = \"3\", sLicense = \"LGPLv2+\", sExtensions = [\"*.dox\",\"*.doxygen\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Dtd.hs b/src/Skylighting/Syntax/Dtd.hs
--- a/src/Skylighting/Syntax/Dtd.hs
+++ b/src/Skylighting/Syntax/Dtd.hs
@@ -2,559 +2,6 @@
 module Skylighting.Syntax.Dtd (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "DTD"
-  , sFilename = "dtd.xml"
-  , sShortname = "Dtd"
-  , sContexts =
-      fromList
-        [ ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "DTD"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "-->"
-                      , 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
-              }
-          )
-        , ( "Declaration"
-          , Context
-              { cName = "Declaration"
-              , cSyntax = "DTD"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DTD" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '-' '-'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DTD" , "InlineComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DTD" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(-|O)\\s(-|O)"
-                              , reCompiled = Just (compileRegex True "(-|O)\\s(-|O)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "(|),"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(%|&)(#[0-9]+|#[xX][0-9A-Fa-f]+|[\\-\\w\\d\\.:_]+);"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(%|&)(#[0-9]+|#[xX][0-9A-Fa-f]+|[\\-\\w\\d\\.:_]+);")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "?*+-&"
-                      , rAttribute = FloatTok
-                      , 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 = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ANY"
-                               , "CDATA"
-                               , "EMPTY"
-                               , "ENTITIES"
-                               , "ENTITY"
-                               , "ID"
-                               , "IDREF"
-                               , "IDREFS"
-                               , "NDATA"
-                               , "NMTOKEN"
-                               , "NMTOKENS"
-                               , "NOTATION"
-                               , "PUBLIC"
-                               , "SYSTEM"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True [ "#FIXED" , "#IMPLIED" , "#PCDATA" , "#REQUIRED" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[\\-\\w\\d\\.:_]+\\b"
-                              , reCompiled = Just (compileRegex True "\\b[\\-\\w\\d\\.:_]+\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "InlineComment"
-          , Context
-              { cName = "InlineComment"
-              , cSyntax = "DTD"
-              , 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 = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "DTD"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DTD" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<?xml"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DTD" , "PI" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!ELEMENT"
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DTD" , "Declaration" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!ATTLIST"
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DTD" , "Declaration" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!NOTATION"
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DTD" , "Declaration" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!ENTITY"
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "DTD" , "Declaration" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , 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
-              }
-          )
-        , ( "PI"
-          , Context
-              { cName = "PI"
-              , cSyntax = "DTD"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '?' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "DTD"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%[\\-\\w\\d\\.:_]+;"
-                              , reCompiled = Just (compileRegex True "%[\\-\\w\\d\\.:_]+;")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , 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 = "Andriy Lesyuk (s-andy@in.if.ua)"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.dtd" ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"DTD\", sFilename = \"dtd.xml\", sShortname = \"Dtd\", sContexts = fromList [(\"Comment\",Context {cName = \"Comment\", cSyntax = \"DTD\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"-->\", 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}),(\"Declaration\",Context {cName = \"Declaration\", cSyntax = \"DTD\", cRules = [Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DTD\",\"Comment\")]},Rule {rMatcher = Detect2Chars '-' '-', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DTD\",\"InlineComment\")]},Rule {rMatcher = DetectChar '>', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DTD\",\"String\")]},Rule {rMatcher = RegExpr (RE {reString = \"(-|O)\\\\s(-|O)\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"(|),\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(%|&)(#[0-9]+|#[xX][0-9A-Fa-f]+|[\\\\-\\\\w\\\\d\\\\.:_]+);\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"?*+-&\", rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%\\\\s\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"ANY\",\"CDATA\",\"EMPTY\",\"ENTITIES\",\"ENTITY\",\"ID\",\"IDREF\",\"IDREFS\",\"NDATA\",\"NMTOKEN\",\"NMTOKENS\",\"NOTATION\",\"PUBLIC\",\"SYSTEM\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"#FIXED\",\"#IMPLIED\",\"#PCDATA\",\"#REQUIRED\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[\\\\-\\\\w\\\\d\\\\.:_]+\\\\b\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"InlineComment\",Context {cName = \"InlineComment\", cSyntax = \"DTD\", 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 = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"DTD\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DTD\",\"Comment\")]},Rule {rMatcher = StringDetect \"<?xml\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DTD\",\"PI\")]},Rule {rMatcher = StringDetect \"<!ELEMENT\", rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DTD\",\"Declaration\")]},Rule {rMatcher = StringDetect \"<!ATTLIST\", rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DTD\",\"Declaration\")]},Rule {rMatcher = StringDetect \"<!NOTATION\", rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DTD\",\"Declaration\")]},Rule {rMatcher = StringDetect \"<!ENTITY\", rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"DTD\",\"Declaration\")]},Rule {rMatcher = DetectIdentifier, 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}),(\"PI\",Context {cName = \"PI\", cSyntax = \"DTD\", cRules = [Rule {rMatcher = Detect2Chars '?' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"DTD\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"%[\\\\-\\\\w\\\\d\\\\.:_]+;\", reCaseSensitive = True}), rAttribute = DecValTok, 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 = \"Andriy Lesyuk (s-andy@in.if.ua)\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [\"*.dtd\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Eiffel.hs b/src/Skylighting/Syntax/Eiffel.hs
--- a/src/Skylighting/Syntax/Eiffel.hs
+++ b/src/Skylighting/Syntax/Eiffel.hs
@@ -2,251 +2,6 @@
 module Skylighting.Syntax.Eiffel (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Eiffel"
-  , sFilename = "eiffel.xml"
-  , sShortname = "Eiffel"
-  , sContexts =
-      fromList
-        [ ( "Documentation"
-          , Context
-              { cName = "Documentation"
-              , cSyntax = "Eiffel"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Eiffel"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "agent"
-                               , "alias"
-                               , "all"
-                               , "and"
-                               , "as"
-                               , "assign"
-                               , "class"
-                               , "convert"
-                               , "create"
-                               , "creation"
-                               , "debug"
-                               , "deferred"
-                               , "do"
-                               , "else"
-                               , "elseif"
-                               , "end"
-                               , "expanded"
-                               , "export"
-                               , "external"
-                               , "feature"
-                               , "from"
-                               , "frozen"
-                               , "if"
-                               , "implies"
-                               , "indexing"
-                               , "infix"
-                               , "inherit"
-                               , "inspect"
-                               , "is"
-                               , "like"
-                               , "local"
-                               , "loop"
-                               , "not"
-                               , "obsolete"
-                               , "old"
-                               , "once"
-                               , "or"
-                               , "prefix"
-                               , "pure"
-                               , "redefine"
-                               , "reference"
-                               , "rename"
-                               , "rescue"
-                               , "retry"
-                               , "separate"
-                               , "then"
-                               , "undefine"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Current"
-                               , "False"
-                               , "Precursor"
-                               , "Result"
-                               , "TUPLE"
-                               , "True"
-                               ])
-                      , rAttribute = ConstantTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True [ "check" , "ensure" , "invariant" , "require" , "variant" ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Eiffel" , "Quoted String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '-' '-'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Eiffel" , "Documentation" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Quoted String"
-          , Context
-              { cName = "Quoted String"
-              , cSyntax = "Eiffel"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Sebastian Vuorinen"
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.e" ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"Eiffel\", sFilename = \"eiffel.xml\", sShortname = \"Eiffel\", sContexts = fromList [(\"Documentation\",Context {cName = \"Documentation\", cSyntax = \"Eiffel\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Eiffel\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"agent\",\"alias\",\"all\",\"and\",\"as\",\"assign\",\"class\",\"convert\",\"create\",\"creation\",\"debug\",\"deferred\",\"do\",\"else\",\"elseif\",\"end\",\"expanded\",\"export\",\"external\",\"feature\",\"from\",\"frozen\",\"if\",\"implies\",\"indexing\",\"infix\",\"inherit\",\"inspect\",\"is\",\"like\",\"local\",\"loop\",\"not\",\"obsolete\",\"old\",\"once\",\"or\",\"prefix\",\"pure\",\"redefine\",\"reference\",\"rename\",\"rescue\",\"retry\",\"separate\",\"then\",\"undefine\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"Current\",\"False\",\"Precursor\",\"Result\",\"TUPLE\",\"True\"])), rAttribute = ConstantTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"check\",\"ensure\",\"invariant\",\"require\",\"variant\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Eiffel\",\"Quoted String\")]},Rule {rMatcher = Detect2Chars '-' '-', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Eiffel\",\"Documentation\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Quoted String\",Context {cName = \"Quoted String\", cSyntax = \"Eiffel\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Sebastian Vuorinen\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.e\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Elixir.hs b/src/Skylighting/Syntax/Elixir.hs
--- a/src/Skylighting/Syntax/Elixir.hs
+++ b/src/Skylighting/Syntax/Elixir.hs
@@ -2,1220 +2,6 @@
 module Skylighting.Syntax.Elixir (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Elixir"
-  , sFilename = "elixir.xml"
-  , sShortname = "Elixir"
-  , sContexts =
-      fromList
-        [ ( "Apostrophed String"
-          , Context
-              { cName = "Apostrophed String"
-              , cSyntax = "Elixir"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "\\\\"
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = DetectChar '\''
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = VerbatimStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment Line"
-          , Context
-              { cName = "Comment Line"
-              , cSyntax = "Elixir"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Documentation"
-          , Context
-              { cName = "Documentation"
-              , cSyntax = "Elixir"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "\"\"\""
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*#+\\s.*[#]?$"
-                              , reCompiled = Just (compileRegex True "\\s*#+\\s.*[#]?$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*[\\*\\+\\-]\\s"
-                              , reCompiled = Just (compileRegex True "\\s*[\\*\\+\\-]\\s")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*[\\d]+\\.\\s"
-                              , reCompiled = Just (compileRegex True "\\s*[\\d]+\\.\\s")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\`\\`\\`\\s*$"
-                              , reCompiled = Just (compileRegex True "\\s*\\`\\`\\`\\s*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Elixir" , "Markdown Code" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Markdown" , "Normal Text" )
-                      , 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
-              }
-          )
-        , ( "Find closing block brace"
-          , Context
-              { cName = "Find closing block brace"
-              , cSyntax = "Elixir"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Elixir" , "Normal" )
-                      , 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
-              }
-          )
-        , ( "General Comment"
-          , Context
-              { cName = "General Comment"
-              , cSyntax = "Elixir"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Markdown Code"
-          , Context
-              { cName = "Markdown Code"
-              , cSyntax = "Elixir"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\`\\`\\`\\s*$"
-                              , reCompiled = Just (compileRegex True "\\s*\\`\\`\\`\\s*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Elixir"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#!\\/.*"
-                              , reCompiled = Just (compileRegex True "#!\\/.*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&()*+,-./:;<=>[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "after"
-                               , "and"
-                               , "bc"
-                               , "case"
-                               , "do"
-                               , "end"
-                               , "exit"
-                               , "for"
-                               , "in"
-                               , "inbits"
-                               , "inlist"
-                               , "lc"
-                               , "not"
-                               , "or"
-                               , "quote"
-                               , "receive"
-                               , "super"
-                               , "unquote"
-                               , "when"
-                               , "xor"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&()*+,-./:;<=>[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "catch"
-                               , "cond"
-                               , "else"
-                               , "if"
-                               , "raise"
-                               , "rescue"
-                               , "throw"
-                               , "try"
-                               , "unless"
-                               ])
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&()*+,-./:;<=>[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "def"
-                               , "defcallback"
-                               , "defdelegate"
-                               , "defexception"
-                               , "defimpl"
-                               , "defmacro"
-                               , "defmacrocallback"
-                               , "defmacrop"
-                               , "defmodule"
-                               , "defoverridable"
-                               , "defp"
-                               , "defprotocol"
-                               , "defrecord"
-                               , "defstruct"
-                               , "fn"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&()*+,-./:;<=>[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "false" , "nil" , "true" ])
-                      , rAttribute = ConstantTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&()*+,-./:;<=>[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "alias" , "import" , "require" , "use" ])
-                      , rAttribute = ImportTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[_A-Z]+[A-Z_0-9]+\\b"
-                              , reCompiled = Just (compileRegex True "\\b[_A-Z]+[A-Z_0-9]+\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ConstantTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "\\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ConstantTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b\\-?0[xX]([0-9a-fA-F]|_[0-9a-fA-F])+"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b\\-?0[xX]([0-9a-fA-F]|_[0-9a-fA-F])+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b\\-?0[bB]([01]|_[01])+"
-                              , reCompiled = Just (compileRegex True "\\b\\-?0[bB]([01]|_[01])+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b\\-?0[1-7]([0-7]|_[0-7])*"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b\\-?0[1-7]([0-7]|_[0-7])*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b\\-?[0-9]([0-9]|_[0-9])*\\.[0-9]([0-9]|_[0-9])*([eE]\\-?[1-9]([0-9]|_[0-9])*(\\.[0-9]*)?)?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\b\\-?[0-9]([0-9]|_[0-9])*\\.[0-9]([0-9]|_[0-9])*([eE]\\-?[1-9]([0-9]|_[0-9])*(\\.[0-9]*)?)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b\\-?[1-9]([0-9]|_[0-9])*\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b\\-?[1-9]([0-9]|_[0-9])*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '.'
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '&' '&'
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '|' '|'
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s[\\?\\:\\%]\\s"
-                              , reCompiled = Just (compileRegex True "\\s[\\?\\:\\%]\\s")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[|&<>\\^\\+*~\\-=/]+"
-                              , reCompiled = Just (compileRegex True "[|&<>\\^\\+*~\\-=/]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , 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 = OperatorTok
-                      , 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 = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "%="
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ":(@{1,2}|\\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True ":(@{1,2}|\\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(@{1,2}|\\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?:"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\b(@{1,2}|\\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ":\\[\\]=?"
-                              , reCompiled = Just (compileRegex True ":\\[\\]=?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@(module)?doc\\s+\"\"\""
-                              , reCompiled = Just (compileRegex True "@(module)?doc\\s+\"\"\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Elixir" , "Documentation" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\"\"\""
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Elixir" , "Triple Quoted String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Elixir" , "Quoted String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Elixir" , "Apostrophed String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "?#"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Elixir" , "General Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@[a-zA-Z_0-9]+"
-                              , reCompiled = Just (compileRegex True "@[a-zA-Z_0-9]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , 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
-              }
-          )
-        , ( "Quoted String"
-          , Context
-              { cName = "Quoted String"
-              , cSyntax = "Elixir"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "\\\\"
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 =
-                          RegExpr
-                            RE
-                              { reString = "#@{1,2}"
-                              , reCompiled = Just (compileRegex True "#@{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Elixir" , "Short Subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Elixir" , "Subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Short Subst"
-          , Context
-              { cName = "Short Subst"
-              , cSyntax = "Elixir"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#@{1,2}"
-                              , reCompiled = Just (compileRegex True "#@{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\w(?!\\w)"
-                              , reCompiled = Just (compileRegex True "\\w(?!\\w)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Subst"
-          , Context
-              { cName = "Subst"
-              , cSyntax = "Elixir"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Elixir" , "Normal" )
-                      , 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
-              }
-          )
-        , ( "Triple Quoted String"
-          , Context
-              { cName = "Triple Quoted String"
-              , cSyntax = "Elixir"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "\"\"\""
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "regexpr_rules"
-          , Context
-              { cName = "regexpr_rules"
-              , cSyntax = "Elixir"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#@{1,2}"
-                              , reCompiled = Just (compileRegex True "#@{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Elixir" , "Short Subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Elixir" , "Subst" ) ]
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor =
-      "Rub\233n Caro (ruben.caro.estevez@gmail.com), Boris Egorov (egorov@linux.com)"
-  , sVersion = "2"
-  , sLicense = "LGPLv2+"
-  , sExtensions =
-      [ "*.ex" , "*.exs" , "*.eex" , "*.xml.eex" , "*.js.eex" ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Elixir\", sFilename = \"elixir.xml\", sShortname = \"Elixir\", sContexts = fromList [(\"Apostrophed String\",Context {cName = \"Apostrophed String\", cSyntax = \"Elixir\", cRules = [Rule {rMatcher = StringDetect \"\\\\\\\\\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\\\\\'\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = VerbatimStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment Line\",Context {cName = \"Comment Line\", cSyntax = \"Elixir\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Documentation\",Context {cName = \"Documentation\", cSyntax = \"Elixir\", cRules = [Rule {rMatcher = StringDetect \"\\\"\\\"\\\"\", rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*#+\\\\s.*[#]?$\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*[\\\\*\\\\+\\\\-]\\\\s\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*[\\\\d]+\\\\.\\\\s\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\`\\\\`\\\\`\\\\s*$\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Elixir\",\"Markdown Code\")]},Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Markdown\",\"Normal Text\"), 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}),(\"Find closing block brace\",Context {cName = \"Find closing block brace\", cSyntax = \"Elixir\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Elixir\",\"Normal\"), 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}),(\"General Comment\",Context {cName = \"General Comment\", cSyntax = \"Elixir\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Markdown Code\",Context {cName = \"Markdown Code\", cSyntax = \"Elixir\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\`\\\\`\\\\`\\\\s*$\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Elixir\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"#!\\\\/.*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&()*+,-./:;<=>[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"after\",\"and\",\"bc\",\"case\",\"do\",\"end\",\"exit\",\"for\",\"in\",\"inbits\",\"inlist\",\"lc\",\"not\",\"or\",\"quote\",\"receive\",\"super\",\"unquote\",\"when\",\"xor\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&()*+,-./:;<=>[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"catch\",\"cond\",\"else\",\"if\",\"raise\",\"rescue\",\"throw\",\"try\",\"unless\"])), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&()*+,-./:;<=>[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"def\",\"defcallback\",\"defdelegate\",\"defexception\",\"defimpl\",\"defmacro\",\"defmacrocallback\",\"defmacrop\",\"defmodule\",\"defoverridable\",\"defp\",\"defprotocol\",\"defrecord\",\"defstruct\",\"fn\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&()*+,-./:;<=>[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"false\",\"nil\",\"true\"])), rAttribute = ConstantTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&()*+,-./:;<=>[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"alias\",\"import\",\"require\",\"use\"])), rAttribute = ImportTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[_A-Z]+[A-Z_0-9]+\\\\b\", reCaseSensitive = True}), rAttribute = ConstantTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\\\\b\", reCaseSensitive = True}), rAttribute = ConstantTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b\\\\-?0[xX]([0-9a-fA-F]|_[0-9a-fA-F])+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b\\\\-?0[bB]([01]|_[01])+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b\\\\-?0[1-7]([0-7]|_[0-7])*\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b\\\\-?[0-9]([0-9]|_[0-9])*\\\\.[0-9]([0-9]|_[0-9])*([eE]\\\\-?[1-9]([0-9]|_[0-9])*(\\\\.[0-9]*)?)?\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b\\\\-?[1-9]([0-9]|_[0-9])*\\\\b\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '.', rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '&' '&', rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '|' '|', rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s[\\\\?\\\\:\\\\%]\\\\s\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[|&<>\\\\^\\\\+*~\\\\-=/]+\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s!\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"/=\\\\s\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"%=\", rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \":(@{1,2}|\\\\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(@{1,2}|\\\\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?:\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \":\\\\[\\\\]=?\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"@(module)?doc\\\\s+\\\"\\\"\\\"\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Elixir\",\"Documentation\")]},Rule {rMatcher = StringDetect \"\\\"\\\"\\\"\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Elixir\",\"Triple Quoted String\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Elixir\",\"Quoted String\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Elixir\",\"Apostrophed String\")]},Rule {rMatcher = StringDetect \"?#\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Elixir\",\"General Comment\")]},Rule {rMatcher = DetectChar '[', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ']', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"@[a-zA-Z_0-9]+\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, 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}),(\"Quoted String\",Context {cName = \"Quoted String\", cSyntax = \"Elixir\", cRules = [Rule {rMatcher = StringDetect \"\\\\\\\\\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\\\\\\\\"\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#@{1,2}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Elixir\",\"Short Subst\")]},Rule {rMatcher = Detect2Chars '#' '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Elixir\",\"Subst\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Short Subst\",Context {cName = \"Short Subst\", cSyntax = \"Elixir\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"#@{1,2}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\w(?!\\\\w)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Subst\",Context {cName = \"Subst\", cSyntax = \"Elixir\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Elixir\",\"Normal\"), 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}),(\"Triple Quoted String\",Context {cName = \"Triple Quoted String\", cSyntax = \"Elixir\", cRules = [Rule {rMatcher = StringDetect \"\\\"\\\"\\\"\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"regexpr_rules\",Context {cName = \"regexpr_rules\", cSyntax = \"Elixir\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#@{1,2}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Elixir\",\"Short Subst\")]},Rule {rMatcher = Detect2Chars '#' '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Elixir\",\"Subst\")]}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Rub\\233n Caro (ruben.caro.estevez@gmail.com), Boris Egorov (egorov@linux.com)\", sVersion = \"2\", sLicense = \"LGPLv2+\", sExtensions = [\"*.ex\",\"*.exs\",\"*.eex\",\"*.xml.eex\",\"*.js.eex\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Email.hs b/src/Skylighting/Syntax/Email.hs
--- a/src/Skylighting/Syntax/Email.hs
+++ b/src/Skylighting/Syntax/Email.hs
@@ -2,1108 +2,6 @@
 module Skylighting.Syntax.Email (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Email"
-  , sFilename = "email.xml"
-  , sShortname = "Email"
-  , sContexts =
-      fromList
-        [ ( "headder"
-          , Context
-              { cName = "headder"
-              , cSyntax = "Email"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Tt]o:.*$"
-                              , reCompiled = Just (compileRegex False "[Tt]o:.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Ff]rom:.*$"
-                              , reCompiled = Just (compileRegex False "[Ff]rom:.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Cc][Cc]:.*$"
-                              , reCompiled = Just (compileRegex False "[Cc][Cc]:.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Bb][Cc][Cc]:.*$"
-                              , reCompiled = Just (compileRegex False "[Bb][Cc][Cc]:.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Ss]ubject:.*$"
-                              , reCompiled = Just (compileRegex False "[Ss]ubject:.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Dd]ate:.*$"
-                              , reCompiled = Just (compileRegex False "[Dd]ate:.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Ss]ender:"
-                              , reCompiled = Just (compileRegex False "[Ss]ender:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Rr]eply-[Tt]o:"
-                              , reCompiled = Just (compileRegex False "[Rr]eply-[Tt]o:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Mm]essage-[Ii][Dd]:"
-                              , reCompiled = Just (compileRegex False "[Mm]essage-[Ii][Dd]:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Ii]n-[Rr]eply-[Tt]o:"
-                              , reCompiled = Just (compileRegex False "[Ii]n-[Rr]eply-[Tt]o:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Rr]eferences:"
-                              , reCompiled = Just (compileRegex False "[Rr]eferences:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Cc]omments:"
-                              , reCompiled = Just (compileRegex False "[Cc]omments:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Kk]eywors:"
-                              , reCompiled = Just (compileRegex False "[Kk]eywors:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Rr]esent-[Dd]ate:"
-                              , reCompiled = Just (compileRegex False "[Rr]esent-[Dd]ate:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Rr]esent-[Ff]rom:"
-                              , reCompiled = Just (compileRegex False "[Rr]esent-[Ff]rom:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Rr]esent-[Ss]ender:"
-                              , reCompiled = Just (compileRegex False "[Rr]esent-[Ss]ender:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Rr]esent-[Tt]o:"
-                              , reCompiled = Just (compileRegex False "[Rr]esent-[Tt]o:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Rr]esent-[Cc][Cc]:"
-                              , reCompiled = Just (compileRegex False "[Rr]esent-[Cc][Cc]:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Rr]esent-[Bb][Cc][Cc]:"
-                              , reCompiled = Just (compileRegex False "[Rr]esent-[Bb][Cc][Cc]:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Rr]esent-[Mm]essage-[Ii][Dd]:"
-                              , reCompiled =
-                                  Just (compileRegex False "[Rr]esent-[Mm]essage-[Ii][Dd]:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Rr]esent-[Rr]eply-[Tt]o:"
-                              , reCompiled =
-                                  Just (compileRegex False "[Rr]esent-[Rr]eply-[Tt]o:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Rr]eturn-[Pp]ath:"
-                              , reCompiled = Just (compileRegex False "[Rr]eturn-[Pp]ath:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Rr]eceived:"
-                              , reCompiled = Just (compileRegex False "[Rr]eceived:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Xx]-[Mm]ozilla-[Ss]tatus:"
-                              , reCompiled =
-                                  Just (compileRegex False "[Xx]-[Mm]ozilla-[Ss]tatus:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Xx]-[Mm]ozilla-[Ss]tatus2:"
-                              , reCompiled =
-                                  Just (compileRegex False "[Xx]-[Mm]ozilla-[Ss]tatus2:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Ee]nverlope-[Tt]o:"
-                              , reCompiled = Just (compileRegex False "[Ee]nverlope-[Tt]o:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Dd]elivery-[Dd]ate:"
-                              , reCompiled = Just (compileRegex False "[Dd]elivery-[Dd]ate:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Xx]-[Oo]riginating-[Ii][Pp]:"
-                              , reCompiled =
-                                  Just (compileRegex False "[Xx]-[Oo]riginating-[Ii][Pp]:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Xx]-[Oo]riginating-[Ee]mail:"
-                              , reCompiled =
-                                  Just (compileRegex False "[Xx]-[Oo]riginating-[Ee]mail:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Xx]-[Ss]ender:"
-                              , reCompiled = Just (compileRegex False "[Xx]-[Ss]ender:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Mm]ime-[Vv]ersion:"
-                              , reCompiled = Just (compileRegex False "[Mm]ime-[Vv]ersion:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Cc]ontent-[Tt]ype:"
-                              , reCompiled = Just (compileRegex False "[Cc]ontent-[Tt]ype:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Xx]-[Mm]ailing-[Ll]ist:"
-                              , reCompiled = Just (compileRegex False "[Xx]-[Mm]ailing-[Ll]ist:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Xx]-[Ll]oop:"
-                              , reCompiled = Just (compileRegex False "[Xx]-[Ll]oop:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Ll]ist-[Pp]ost:"
-                              , reCompiled = Just (compileRegex False "[Ll]ist-[Pp]ost:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Ll]ist-[Hh]elp:"
-                              , reCompiled = Just (compileRegex False "[Ll]ist-[Hh]elp:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Ll]ist-[Uu]nsubscribe:"
-                              , reCompiled = Just (compileRegex False "[Ll]ist-[Uu]nsubscribe:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Pp]recedence:"
-                              , reCompiled = Just (compileRegex False "[Pp]recedence:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Cc]ontent-[Tt]ransfer-[Ee]ncoding:"
-                              , reCompiled =
-                                  Just (compileRegex False "[Cc]ontent-[Tt]ransfer-[Ee]ncoding:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Cc]ontent-[Tt]ype:"
-                              , reCompiled = Just (compileRegex False "[Cc]ontent-[Tt]ype:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Xx]-[Bb]ulkmail:"
-                              , reCompiled = Just (compileRegex False "[Xx]-[Bb]ulkmail:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Pp]recedence:"
-                              , reCompiled = Just (compileRegex False "[Pp]recedence:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[Cc]ontent-[Dd]isposition:"
-                              , reCompiled =
-                                  Just (compileRegex False "[Cc]ontent-[Dd]isposition:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[0-9a-zA-Z-.]+:"
-                              , reCompiled = Just (compileRegex False "[0-9a-zA-Z-.]+:")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z0-9.\\-]+\\@[a-zA-Z0-9.\\-]+"
-                              , reCompiled =
-                                  Just (compileRegex False "[a-zA-Z0-9.\\-]+\\@[a-zA-Z0-9.\\-]+")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "[a-zA-Z0-9.\\-]*\\s*<[a-zA-Z0-9.\\-]+\\@[a-zA-Z0-9.\\-]+>"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "[a-zA-Z0-9.\\-]*\\s*<[a-zA-Z0-9.\\-]+\\@[a-zA-Z0-9.\\-]+>")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\"[a-zA-Z0-9. \\-]+\"\\s*<[a-zA-Z0-9.\\-]+\\@[a-zA-Z0-9.\\-]+>"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "\"[a-zA-Z0-9. \\-]+\"\\s*<[a-zA-Z0-9.\\-]+\\@[a-zA-Z0-9.\\-]+>")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\".*\""
-                              , reCompiled = Just (compileRegex False "\".*\"")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'.*'"
-                              , reCompiled = Just (compileRegex False "'.*'")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[|>]\\s*[|>]\\s*[|>]\\s*[|>]\\s*[|>]\\s*[|>].*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False "[|>]\\s*[|>]\\s*[|>]\\s*[|>]\\s*[|>]\\s*[|>].*")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[|>]\\s*[|>]\\s*[|>]\\s*[|>]\\s*[|>].*"
-                              , reCompiled =
-                                  Just (compileRegex False "[|>]\\s*[|>]\\s*[|>]\\s*[|>]\\s*[|>].*")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[|>]\\s*[|>]\\s*[|>]\\s*[|>].*"
-                              , reCompiled =
-                                  Just (compileRegex False "[|>]\\s*[|>]\\s*[|>]\\s*[|>].*")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[|>]\\s*[|>]\\s*[|>].*"
-                              , reCompiled = Just (compileRegex False "[|>]\\s*[|>]\\s*[|>].*")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[|>]\\s*[|>].*"
-                              , reCompiled = Just (compileRegex False "[|>]\\s*[|>].*")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[|>].*"
-                              , reCompiled = Just (compileRegex False "[|>].*")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "([A-Za-z0-9+/][A-Za-z0-9+/][A-Za-z0-9+/][A-Za-z0-9+/]){10,20}$"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "([A-Za-z0-9+/][A-Za-z0-9+/][A-Za-z0-9+/][A-Za-z0-9+/]){10,20}$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Za-z0-9+=/]+=$"
-                              , reCompiled = Just (compileRegex False "[A-Za-z0-9+=/]+=$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(- )?--(--.*)?"
-                              , reCompiled = Just (compileRegex False "(- )?--(--.*)?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Carl A Joslin (carl.joslin@joslin.dyndns.org)"
-  , sVersion = "2"
-  , sLicense = "GPL"
-  , sExtensions = [ "*.eml" ]
-  , sStartingContext = "headder"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Email\", sFilename = \"email.xml\", sShortname = \"Email\", sContexts = fromList [(\"headder\",Context {cName = \"headder\", cSyntax = \"Email\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[Tt]o:.*$\", reCaseSensitive = False}), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Ff]rom:.*$\", reCaseSensitive = False}), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Cc][Cc]:.*$\", reCaseSensitive = False}), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Bb][Cc][Cc]:.*$\", reCaseSensitive = False}), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Ss]ubject:.*$\", reCaseSensitive = False}), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Dd]ate:.*$\", reCaseSensitive = False}), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Ss]ender:\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Rr]eply-[Tt]o:\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Mm]essage-[Ii][Dd]:\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Ii]n-[Rr]eply-[Tt]o:\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Rr]eferences:\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Cc]omments:\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Kk]eywors:\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Rr]esent-[Dd]ate:\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Rr]esent-[Ff]rom:\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Rr]esent-[Ss]ender:\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Rr]esent-[Tt]o:\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Rr]esent-[Cc][Cc]:\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Rr]esent-[Bb][Cc][Cc]:\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Rr]esent-[Mm]essage-[Ii][Dd]:\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Rr]esent-[Rr]eply-[Tt]o:\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Rr]eturn-[Pp]ath:\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Rr]eceived:\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Xx]-[Mm]ozilla-[Ss]tatus:\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Xx]-[Mm]ozilla-[Ss]tatus2:\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Ee]nverlope-[Tt]o:\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Dd]elivery-[Dd]ate:\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Xx]-[Oo]riginating-[Ii][Pp]:\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Xx]-[Oo]riginating-[Ee]mail:\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Xx]-[Ss]ender:\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Mm]ime-[Vv]ersion:\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Cc]ontent-[Tt]ype:\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Xx]-[Mm]ailing-[Ll]ist:\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Xx]-[Ll]oop:\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Ll]ist-[Pp]ost:\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Ll]ist-[Hh]elp:\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Ll]ist-[Uu]nsubscribe:\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Pp]recedence:\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Cc]ontent-[Tt]ransfer-[Ee]ncoding:\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Cc]ontent-[Tt]ype:\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Xx]-[Bb]ulkmail:\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Pp]recedence:\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[Cc]ontent-[Dd]isposition:\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[0-9a-zA-Z-.]+:\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z0-9.\\\\-]+\\\\@[a-zA-Z0-9.\\\\-]+\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z0-9.\\\\-]*\\\\s*<[a-zA-Z0-9.\\\\-]+\\\\@[a-zA-Z0-9.\\\\-]+>\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\"[a-zA-Z0-9. \\\\-]+\\\"\\\\s*<[a-zA-Z0-9.\\\\-]+\\\\@[a-zA-Z0-9.\\\\-]+>\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\".*\\\"\", reCaseSensitive = False}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"'.*'\", reCaseSensitive = False}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[|>]\\\\s*[|>]\\\\s*[|>]\\\\s*[|>]\\\\s*[|>]\\\\s*[|>].*\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[|>]\\\\s*[|>]\\\\s*[|>]\\\\s*[|>]\\\\s*[|>].*\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[|>]\\\\s*[|>]\\\\s*[|>]\\\\s*[|>].*\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[|>]\\\\s*[|>]\\\\s*[|>].*\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[|>]\\\\s*[|>].*\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[|>].*\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([A-Za-z0-9+/][A-Za-z0-9+/][A-Za-z0-9+/][A-Za-z0-9+/]){10,20}$\", reCaseSensitive = False}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[A-Za-z0-9+=/]+=$\", reCaseSensitive = False}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(- )?--(--.*)?\", reCaseSensitive = False}), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Carl A Joslin (carl.joslin@joslin.dyndns.org)\", sVersion = \"2\", sLicense = \"GPL\", sExtensions = [\"*.eml\"], sStartingContext = \"headder\"}"
diff --git a/src/Skylighting/Syntax/Erlang.hs b/src/Skylighting/Syntax/Erlang.hs
--- a/src/Skylighting/Syntax/Erlang.hs
+++ b/src/Skylighting/Syntax/Erlang.hs
@@ -2,642 +2,6 @@
 module Skylighting.Syntax.Erlang (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Erlang"
-  , sFilename = "erlang.xml"
-  , sShortname = "Erlang"
-  , sContexts =
-      fromList
-        [ ( "Normal Text"
-          , Context
-              { cName = "Normal Text"
-              , cSyntax = "Erlang"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(?:-module|-export|-define|-undef|-ifdef|-ifndef|-else|-endif|-include|-include_lib)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(?:-module|-export|-define|-undef|-ifdef|-ifndef|-else|-endif|-include|-include_lib)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "after"
-                               , "all_true"
-                               , "begin"
-                               , "case"
-                               , "catch"
-                               , "cond"
-                               , "end"
-                               , "fun"
-                               , "if"
-                               , "let"
-                               , "of"
-                               , "query"
-                               , "receive"
-                               , "some_true"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "and"
-                               , "band"
-                               , "bnot"
-                               , "bor"
-                               , "bsl"
-                               , "bsr"
-                               , "bxor"
-                               , "div"
-                               , "not"
-                               , "or"
-                               , "rem"
-                               , "xor"
-                               ])
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(?:\\+|-|\\*|\\/|==|\\/=|=:=|=\\/=|<|=<|>|>=|\\+\\+|--|=|!|<-)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(?:\\+|-|\\*|\\/|==|\\/=|=:=|=\\/=|<|=<|>|>=|\\+\\+|--|=|!|<-)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "abs"
-                               , "accept"
-                               , "alarm"
-                               , "apply"
-                               , "atom_to_list"
-                               , "binary_to_list"
-                               , "binary_to_term"
-                               , "check_process_code"
-                               , "concat_binary"
-                               , "date"
-                               , "delete_module"
-                               , "disconnect_node"
-                               , "element"
-                               , "erase"
-                               , "exit"
-                               , "float"
-                               , "float_to_list"
-                               , "garbage_collect"
-                               , "get"
-                               , "get_keys"
-                               , "group_leader"
-                               , "halt"
-                               , "hd"
-                               , "integer_to_list"
-                               , "is_alive"
-                               , "is_atom"
-                               , "is_binary"
-                               , "is_boolean"
-                               , "is_float"
-                               , "is_function"
-                               , "is_integer"
-                               , "is_list"
-                               , "is_number"
-                               , "is_pid"
-                               , "is_port"
-                               , "is_process_alive"
-                               , "is_record"
-                               , "is_reference"
-                               , "is_tuple"
-                               , "length"
-                               , "link"
-                               , "list_to_atom"
-                               , "list_to_binary"
-                               , "list_to_float"
-                               , "list_to_integer"
-                               , "list_to_pid"
-                               , "list_to_tuple"
-                               , "load_module"
-                               , "loaded"
-                               , "localtime"
-                               , "make_ref"
-                               , "module_loaded"
-                               , "node"
-                               , "nodes"
-                               , "now"
-                               , "open_port"
-                               , "pid_to_list"
-                               , "port_close"
-                               , "port_command"
-                               , "port_connect"
-                               , "port_control"
-                               , "ports"
-                               , "pre_loaded"
-                               , "process_flag"
-                               , "process_info"
-                               , "processes"
-                               , "purge_module"
-                               , "put"
-                               , "register"
-                               , "registered"
-                               , "round"
-                               , "self"
-                               , "setelement"
-                               , "size"
-                               , "spawn"
-                               , "spawn_link"
-                               , "spawn_opt"
-                               , "split_binary"
-                               , "statistics"
-                               , "term_to_binary"
-                               , "throw"
-                               , "time"
-                               , "tl"
-                               , "trunc"
-                               , "tuple_to_list"
-                               , "unlink"
-                               , "unregister"
-                               , "whereis"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(?:\\(|\\)|\\{|\\}|\\[|\\]|\\.|\\:|\\||\\|\\||;|\\,|\\?|->|\\#)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(?:\\(|\\)|\\{|\\}|\\[|\\]|\\.|\\:|\\||\\|\\||;|\\,|\\?|->|\\#)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , 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 = DetectChar '%'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Erlang" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b[a-z][_a-z@-Z0-9]*(?:(?=[^_a-z@-Z0-9])|$):\\b[a-z][_a-z@-Z0-9]*(?:(?=[^_a-z@-Z0-9])|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\b[a-z][_a-z@-Z0-9]*(?:(?=[^_a-z@-Z0-9])|$):\\b[a-z][_a-z@-Z0-9]*(?:(?=[^_a-z@-Z0-9])|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[a-z][_a-z@-Z0-9]*(?:(?=[^_a-z@-Z0-9])|$)\\("
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\b[a-z][_a-z@-Z0-9]*(?:(?=[^_a-z@-Z0-9])|$)\\(")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Erlang" , "isfunction" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[_A-Z][_a-z@-Z0-9]*(?:(?=[^_a-z@-Z0-9])|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\b[_A-Z][_a-z@-Z0-9]*(?:(?=[^_a-z@-Z0-9])|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Erlang" , "atomquote" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[a-z][_a-z@-Z0-9]*(?:(?=[^_a-z@-Z0-9])|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\b[a-z][_a-z@-Z0-9]*(?:(?=[^_a-z@-Z0-9])|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Erlang" , "stringquote" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[0-9]+\\.[0-9]+(?:[eE][+-]?[0-9]+)?"
-                              , reCompiled =
-                                  Just (compileRegex True "[0-9]+\\.[0-9]+(?:[eE][+-]?[0-9]+)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\d+#[a-zA-Z0-9]+"
-                              , reCompiled = Just (compileRegex True "\\d+#[a-zA-Z0-9]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , 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 = DecValTok
-                      , 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 = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "atomquote"
-          , Context
-              { cName = "atomquote"
-              , cSyntax = "Erlang"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(?:(?:\\\\')?[^']*)*'"
-                              , reCompiled = Just (compileRegex True "(?:(?:\\\\')?[^']*)*'")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "comment"
-          , Context
-              { cName = "comment"
-              , cSyntax = "Erlang"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "isfunction"
-          , Context
-              { cName = "isfunction"
-              , cSyntax = "Erlang"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[a-z][_a-z@-Z0-9]*(?:(?=[^_a-z@-Z0-9])|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\b[a-z][_a-z@-Z0-9]*(?:(?=[^_a-z@-Z0-9])|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "stringquote"
-          , Context
-              { cName = "stringquote"
-              , cSyntax = "Erlang"
-              , 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 = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Bill Ross (bill@emailme.net.au)"
-  , sVersion = "3"
-  , sLicense = "LGPLv2"
-  , sExtensions = [ "*.erl" ]
-  , sStartingContext = "Normal Text"
-  }
+syntax = read $! "Syntax {sName = \"Erlang\", sFilename = \"erlang.xml\", sShortname = \"Erlang\", sContexts = fromList [(\"Normal Text\",Context {cName = \"Normal Text\", cSyntax = \"Erlang\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(?:-module|-export|-define|-undef|-ifdef|-ifndef|-else|-endif|-include|-include_lib)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"after\",\"all_true\",\"begin\",\"case\",\"catch\",\"cond\",\"end\",\"fun\",\"if\",\"let\",\"of\",\"query\",\"receive\",\"some_true\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"and\",\"band\",\"bnot\",\"bor\",\"bsl\",\"bsr\",\"bxor\",\"div\",\"not\",\"or\",\"rem\",\"xor\"])), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(?:\\\\+|-|\\\\*|\\\\/|==|\\\\/=|=:=|=\\\\/=|<|=<|>|>=|\\\\+\\\\+|--|=|!|<-)\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"abs\",\"accept\",\"alarm\",\"apply\",\"atom_to_list\",\"binary_to_list\",\"binary_to_term\",\"check_process_code\",\"concat_binary\",\"date\",\"delete_module\",\"disconnect_node\",\"element\",\"erase\",\"exit\",\"float\",\"float_to_list\",\"garbage_collect\",\"get\",\"get_keys\",\"group_leader\",\"halt\",\"hd\",\"integer_to_list\",\"is_alive\",\"is_atom\",\"is_binary\",\"is_boolean\",\"is_float\",\"is_function\",\"is_integer\",\"is_list\",\"is_number\",\"is_pid\",\"is_port\",\"is_process_alive\",\"is_record\",\"is_reference\",\"is_tuple\",\"length\",\"link\",\"list_to_atom\",\"list_to_binary\",\"list_to_float\",\"list_to_integer\",\"list_to_pid\",\"list_to_tuple\",\"load_module\",\"loaded\",\"localtime\",\"make_ref\",\"module_loaded\",\"node\",\"nodes\",\"now\",\"open_port\",\"pid_to_list\",\"port_close\",\"port_command\",\"port_connect\",\"port_control\",\"ports\",\"pre_loaded\",\"process_flag\",\"process_info\",\"processes\",\"purge_module\",\"put\",\"register\",\"registered\",\"round\",\"self\",\"setelement\",\"size\",\"spawn\",\"spawn_link\",\"spawn_opt\",\"split_binary\",\"statistics\",\"term_to_binary\",\"throw\",\"time\",\"tl\",\"trunc\",\"tuple_to_list\",\"unlink\",\"unregister\",\"whereis\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(?:\\\\(|\\\\)|\\\\{|\\\\}|\\\\[|\\\\]|\\\\.|\\\\:|\\\\||\\\\|\\\\||;|\\\\,|\\\\?|->|\\\\#)\", reCaseSensitive = True}), rAttribute = FunctionTok, 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 = DetectChar '%', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Erlang\",\"comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[a-z][_a-z@-Z0-9]*(?:(?=[^_a-z@-Z0-9])|$):\\\\b[a-z][_a-z@-Z0-9]*(?:(?=[^_a-z@-Z0-9])|$)\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[a-z][_a-z@-Z0-9]*(?:(?=[^_a-z@-Z0-9])|$)\\\\(\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Erlang\",\"isfunction\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[_A-Z][_a-z@-Z0-9]*(?:(?=[^_a-z@-Z0-9])|$)\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Erlang\",\"atomquote\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[a-z][_a-z@-Z0-9]*(?:(?=[^_a-z@-Z0-9])|$)\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Erlang\",\"stringquote\")]},Rule {rMatcher = RegExpr (RE {reString = \"[0-9]+\\\\.[0-9]+(?:[eE][+-]?[0-9]+)?\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\d+#[a-zA-Z0-9]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\S\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[0-9]+\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"atomquote\",Context {cName = \"atomquote\", cSyntax = \"Erlang\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(?:(?:\\\\\\\\')?[^']*)*'\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CharTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"comment\",Context {cName = \"comment\", cSyntax = \"Erlang\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},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 = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"isfunction\",Context {cName = \"isfunction\", cSyntax = \"Erlang\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[a-z][_a-z@-Z0-9]*(?:(?=[^_a-z@-Z0-9])|$)\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"stringquote\",Context {cName = \"stringquote\", cSyntax = \"Erlang\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(?:(?:\\\\\\\\\\\")?[^\\\"]*)*\\\"\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Bill Ross (bill@emailme.net.au)\", sVersion = \"3\", sLicense = \"LGPLv2\", sExtensions = [\"*.erl\"], sStartingContext = \"Normal Text\"}"
diff --git a/src/Skylighting/Syntax/Fasm.hs b/src/Skylighting/Syntax/Fasm.hs
--- a/src/Skylighting/Syntax/Fasm.hs
+++ b/src/Skylighting/Syntax/Fasm.hs
@@ -2,1180 +2,6 @@
 module Skylighting.Syntax.Fasm (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Intel x86 (FASM)"
-  , sFilename = "fasm.xml"
-  , sShortname = "Fasm"
-  , sContexts =
-      fromList
-        [ ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "Intel x86 (FASM)"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Intel x86 (FASM)"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "ah"
-                               , "al"
-                               , "ax"
-                               , "bh"
-                               , "bl"
-                               , "bp"
-                               , "bx"
-                               , "ch"
-                               , "cl"
-                               , "cr0"
-                               , "cr2"
-                               , "cr3"
-                               , "cr4"
-                               , "cs"
-                               , "cx"
-                               , "dh"
-                               , "di"
-                               , "dl"
-                               , "dr0"
-                               , "dr1"
-                               , "dr2"
-                               , "dr3"
-                               , "dr6"
-                               , "dr7"
-                               , "ds"
-                               , "dx"
-                               , "eax"
-                               , "ebp"
-                               , "ebx"
-                               , "ecx"
-                               , "edi"
-                               , "edx"
-                               , "es"
-                               , "esi"
-                               , "esp"
-                               , "fs"
-                               , "gs"
-                               , "mm0"
-                               , "mm1"
-                               , "mm2"
-                               , "mm3"
-                               , "mm4"
-                               , "mm5"
-                               , "mm6"
-                               , "mm7"
-                               , "r10"
-                               , "r11"
-                               , "r12"
-                               , "r13"
-                               , "r14"
-                               , "r15"
-                               , "r8"
-                               , "r9"
-                               , "rax"
-                               , "rbp"
-                               , "rbx"
-                               , "rcx"
-                               , "rdi"
-                               , "rdx"
-                               , "rsi"
-                               , "rsp"
-                               , "si"
-                               , "sp"
-                               , "ss"
-                               , "st"
-                               , "xmm0"
-                               , "xmm1"
-                               , "xmm2"
-                               , "xmm3"
-                               , "xmm4"
-                               , "xmm5"
-                               , "xmm6"
-                               , "xmm7"
-                               ])
-                      , rAttribute = KeywordTok
-                      , 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
-                               [ "byte"
-                               , "db"
-                               , "dd"
-                               , "df"
-                               , "dp"
-                               , "dq"
-                               , "dqword"
-                               , "dt"
-                               , "du"
-                               , "dw"
-                               , "dword"
-                               , "file"
-                               , "ptr"
-                               , "pword"
-                               , "qword"
-                               , "rb"
-                               , "rd"
-                               , "rf"
-                               , "rp"
-                               , "rq"
-                               , "rt"
-                               , "rw"
-                               , "tbyte"
-                               , "tword"
-                               , "word"
-                               ])
-                      , 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
-                               [ "aaa"
-                               , "aad"
-                               , "aam"
-                               , "aas"
-                               , "adc"
-                               , "add"
-                               , "addpd"
-                               , "addps"
-                               , "addsd"
-                               , "addss"
-                               , "addsubpd"
-                               , "addsubps"
-                               , "and"
-                               , "andnpd"
-                               , "andnps"
-                               , "andpd"
-                               , "andps"
-                               , "arpl"
-                               , "bound"
-                               , "bsf"
-                               , "bsr"
-                               , "bswap"
-                               , "bt"
-                               , "btc"
-                               , "btr"
-                               , "bts"
-                               , "call"
-                               , "cbw"
-                               , "cdq"
-                               , "cdqe"
-                               , "clc"
-                               , "cld"
-                               , "clflush"
-                               , "clgi"
-                               , "cli"
-                               , "clts"
-                               , "cmc"
-                               , "cmova"
-                               , "cmovae"
-                               , "cmovb"
-                               , "cmovbe"
-                               , "cmovc"
-                               , "cmove"
-                               , "cmovg"
-                               , "cmovge"
-                               , "cmovl"
-                               , "cmovle"
-                               , "cmovna"
-                               , "cmovnae"
-                               , "cmovnb"
-                               , "cmovnbe"
-                               , "cmovnc"
-                               , "cmovne"
-                               , "cmovng"
-                               , "cmovnge"
-                               , "cmovnl"
-                               , "cmovnle"
-                               , "cmovno"
-                               , "cmovnp"
-                               , "cmovns"
-                               , "cmovnz"
-                               , "cmovo"
-                               , "cmovp"
-                               , "cmovpe"
-                               , "cmovpo"
-                               , "cmovs"
-                               , "cmovz"
-                               , "cmp"
-                               , "cmpeqpd"
-                               , "cmpeqps"
-                               , "cmpeqsd"
-                               , "cmpeqss"
-                               , "cmplepd"
-                               , "cmpleps"
-                               , "cmplesd"
-                               , "cmpless"
-                               , "cmpltpd"
-                               , "cmpltps"
-                               , "cmpltsd"
-                               , "cmpltss"
-                               , "cmpneqpd"
-                               , "cmpneqps"
-                               , "cmpneqsd"
-                               , "cmpneqss"
-                               , "cmpnlepd"
-                               , "cmpnleps"
-                               , "cmpnlesd"
-                               , "cmpnless"
-                               , "cmpnltpd"
-                               , "cmpnltps"
-                               , "cmpnltsd"
-                               , "cmpnltss"
-                               , "cmpordpd"
-                               , "cmpordps"
-                               , "cmpordsd"
-                               , "cmpordss"
-                               , "cmppd"
-                               , "cmpps"
-                               , "cmps"
-                               , "cmpsb"
-                               , "cmpsd"
-                               , "cmpss"
-                               , "cmpsw"
-                               , "cmpunordpd"
-                               , "cmpunordps"
-                               , "cmpunordsd"
-                               , "cmpunordss"
-                               , "cmpxchg"
-                               , "cmpxchg16b"
-                               , "cmpxchg486"
-                               , "cmpxchg8b"
-                               , "comisd"
-                               , "comiss"
-                               , "cpuid"
-                               , "cqo"
-                               , "cvtdq2pd"
-                               , "cvtdq2ps"
-                               , "cvtpd2dq"
-                               , "cvtpd2pi"
-                               , "cvtpd2ps"
-                               , "cvtpi2pd"
-                               , "cvtpi2ps"
-                               , "cvtps2dq"
-                               , "cvtps2pd"
-                               , "cvtps2pi"
-                               , "cvtsd2si"
-                               , "cvtsd2ss"
-                               , "cvtsi2sd"
-                               , "cvtsi2ss"
-                               , "cvtss2sd"
-                               , "cvtss2si"
-                               , "cvttpd2dq"
-                               , "cvttpd2pi"
-                               , "cvttps2dq"
-                               , "cvttps2pi"
-                               , "cvttsd2si"
-                               , "cvttss2si"
-                               , "cwd"
-                               , "cwde"
-                               , "daa"
-                               , "das"
-                               , "dec"
-                               , "div"
-                               , "divpd"
-                               , "divps"
-                               , "divsd"
-                               , "divss"
-                               , "emms"
-                               , "enter"
-                               , "f2xm1"
-                               , "fabs"
-                               , "fadd"
-                               , "faddp"
-                               , "fbld"
-                               , "fbstp"
-                               , "fchs"
-                               , "fclex"
-                               , "fcmovb"
-                               , "fcmovbe"
-                               , "fcmove"
-                               , "fcmovnb"
-                               , "fcmovnbe"
-                               , "fcmovne"
-                               , "fcmovnu"
-                               , "fcmovu"
-                               , "fcom"
-                               , "fcomi"
-                               , "fcomip"
-                               , "fcomp"
-                               , "fcompp"
-                               , "fcos"
-                               , "fdecstp"
-                               , "fdisi"
-                               , "fdiv"
-                               , "fdivp"
-                               , "fdivr"
-                               , "fdivrp"
-                               , "femms"
-                               , "feni"
-                               , "ffree"
-                               , "ffreep"
-                               , "fiadd"
-                               , "ficom"
-                               , "ficomp"
-                               , "fidiv"
-                               , "fidivr"
-                               , "fild"
-                               , "fimul"
-                               , "fincstp"
-                               , "finit"
-                               , "fist"
-                               , "fistp"
-                               , "fisttp"
-                               , "fisub"
-                               , "fisubr"
-                               , "fld"
-                               , "fld1"
-                               , "fldcw"
-                               , "fldenv"
-                               , "fldl2e"
-                               , "fldl2t"
-                               , "fldlg2"
-                               , "fldln2"
-                               , "fldpi"
-                               , "fldz"
-                               , "fmul"
-                               , "fmulp"
-                               , "fnclex"
-                               , "fndisi"
-                               , "fneni"
-                               , "fninit"
-                               , "fnop"
-                               , "fnsave"
-                               , "fnstcw"
-                               , "fnstenv"
-                               , "fnstsw"
-                               , "fnwait"
-                               , "fpatan"
-                               , "fprem"
-                               , "fprem1"
-                               , "fptan"
-                               , "frndint"
-                               , "frstor"
-                               , "fsave"
-                               , "fscale"
-                               , "fsetpm"
-                               , "fsin"
-                               , "fsincos"
-                               , "fsqrt"
-                               , "fst"
-                               , "fstcw"
-                               , "fstenv"
-                               , "fstp"
-                               , "fstsw"
-                               , "fsub"
-                               , "fsubp"
-                               , "fsubr"
-                               , "fsubrp"
-                               , "ftst"
-                               , "fucom"
-                               , "fucomi"
-                               , "fucomip"
-                               , "fucomp"
-                               , "fucompp"
-                               , "fwait"
-                               , "fxam"
-                               , "fxch"
-                               , "fxrstor"
-                               , "fxsave"
-                               , "fxtract"
-                               , "fyl2x"
-                               , "fyl2xp1"
-                               , "haddpd"
-                               , "haddps"
-                               , "hlt"
-                               , "hsubpd"
-                               , "hsubps"
-                               , "ibts"
-                               , "idiv"
-                               , "imul"
-                               , "in"
-                               , "inc"
-                               , "ins"
-                               , "insb"
-                               , "insd"
-                               , "insw"
-                               , "int"
-                               , "int1"
-                               , "int3"
-                               , "into"
-                               , "invd"
-                               , "invlpg"
-                               , "invlpga"
-                               , "iret"
-                               , "iretd"
-                               , "iretq"
-                               , "iretw"
-                               , "ja"
-                               , "jae"
-                               , "jb"
-                               , "jbe"
-                               , "jc"
-                               , "jcxz"
-                               , "je"
-                               , "jecxz"
-                               , "jg"
-                               , "jge"
-                               , "jl"
-                               , "jle"
-                               , "jmp"
-                               , "jna"
-                               , "jnae"
-                               , "jnb"
-                               , "jnbe"
-                               , "jnc"
-                               , "jne"
-                               , "jng"
-                               , "jnge"
-                               , "jnl"
-                               , "jnle"
-                               , "jno"
-                               , "jnp"
-                               , "jns"
-                               , "jnz"
-                               , "jo"
-                               , "jp"
-                               , "jpe"
-                               , "jpo"
-                               , "jrcxz"
-                               , "js"
-                               , "jz"
-                               , "lahf"
-                               , "lar"
-                               , "lddqu"
-                               , "ldmxcsr"
-                               , "lds"
-                               , "lea"
-                               , "leave"
-                               , "les"
-                               , "lfence"
-                               , "lfs"
-                               , "lgdt"
-                               , "lgs"
-                               , "lidt"
-                               , "lldt"
-                               , "lmsw"
-                               , "loadall"
-                               , "loadall286"
-                               , "lods"
-                               , "lodsb"
-                               , "lodsd"
-                               , "lodsq"
-                               , "lodsw"
-                               , "loop"
-                               , "loope"
-                               , "loopne"
-                               , "loopnz"
-                               , "loopz"
-                               , "lsl"
-                               , "lss"
-                               , "ltr"
-                               , "maskmovdqu"
-                               , "maskmovq"
-                               , "maxpd"
-                               , "maxps"
-                               , "maxsd"
-                               , "maxss"
-                               , "mfence"
-                               , "minpd"
-                               , "minps"
-                               , "minsd"
-                               , "minss"
-                               , "monitor"
-                               , "mov"
-                               , "movapd"
-                               , "movaps"
-                               , "movd"
-                               , "movddup"
-                               , "movdq2q"
-                               , "movdqa"
-                               , "movdqu"
-                               , "movhlps"
-                               , "movhpd"
-                               , "movhps"
-                               , "movlhps"
-                               , "movlpd"
-                               , "movlps"
-                               , "movmskpd"
-                               , "movmskps"
-                               , "movntdq"
-                               , "movnti"
-                               , "movntpd"
-                               , "movntps"
-                               , "movntq"
-                               , "movq"
-                               , "movq2dq"
-                               , "movs"
-                               , "movsb"
-                               , "movsd"
-                               , "movshdup"
-                               , "movsldup"
-                               , "movsq"
-                               , "movss"
-                               , "movsw"
-                               , "movsx"
-                               , "movsxd"
-                               , "movupd"
-                               , "movups"
-                               , "movzx"
-                               , "mul"
-                               , "mulpd"
-                               , "mulps"
-                               , "mulsd"
-                               , "mulss"
-                               , "mwait"
-                               , "neg"
-                               , "nop"
-                               , "not"
-                               , "or"
-                               , "orpd"
-                               , "orps"
-                               , "out"
-                               , "outs"
-                               , "outsb"
-                               , "outsd"
-                               , "outsw"
-                               , "packssdw"
-                               , "packsswb"
-                               , "packuswb"
-                               , "paddb"
-                               , "paddd"
-                               , "paddq"
-                               , "paddsb"
-                               , "paddsw"
-                               , "paddusb"
-                               , "paddusw"
-                               , "paddw"
-                               , "pand"
-                               , "pandn"
-                               , "pause"
-                               , "pavgb"
-                               , "pavgusb"
-                               , "pavgw"
-                               , "pcmpeqb"
-                               , "pcmpeqd"
-                               , "pcmpeqw"
-                               , "pcmpgtb"
-                               , "pcmpgtd"
-                               , "pcmpgtw"
-                               , "pdistib"
-                               , "pextrw"
-                               , "pf2id"
-                               , "pf2iw"
-                               , "pfacc"
-                               , "pfadd"
-                               , "pfcmpeq"
-                               , "pfcmpge"
-                               , "pfcmpgt"
-                               , "pfmax"
-                               , "pfmin"
-                               , "pfmul"
-                               , "pfnacc"
-                               , "pfpnacc"
-                               , "pfrcp"
-                               , "pfrcpit1"
-                               , "pfrcpit2"
-                               , "pfrsqit1"
-                               , "pfrsqrt"
-                               , "pfsub"
-                               , "pfsubr"
-                               , "pi2fd"
-                               , "pi2fw"
-                               , "pinsrw"
-                               , "pmachriw"
-                               , "pmaddwd"
-                               , "pmagw"
-                               , "pmaxsw"
-                               , "pmaxub"
-                               , "pminsw"
-                               , "pminub"
-                               , "pmovmskb"
-                               , "pmulhrw"
-                               , "pmulhuw"
-                               , "pmulhw"
-                               , "pmullw"
-                               , "pmuludq"
-                               , "pmvgezb"
-                               , "pmvlzb"
-                               , "pmvnzb"
-                               , "pmvzb"
-                               , "pop"
-                               , "popa"
-                               , "popad"
-                               , "popaw"
-                               , "popf"
-                               , "popfd"
-                               , "popfq"
-                               , "popfw"
-                               , "por"
-                               , "prefetch"
-                               , "prefetchnta"
-                               , "prefetcht0"
-                               , "prefetcht1"
-                               , "prefetcht2"
-                               , "prefetchw"
-                               , "psadbw"
-                               , "pshufd"
-                               , "pshufhw"
-                               , "pshuflw"
-                               , "pshufw"
-                               , "pslld"
-                               , "pslldq"
-                               , "psllq"
-                               , "psllw"
-                               , "psrad"
-                               , "psraw"
-                               , "psrld"
-                               , "psrldq"
-                               , "psrlq"
-                               , "psrlw"
-                               , "psubb"
-                               , "psubd"
-                               , "psubq"
-                               , "psubsb"
-                               , "psubsiw"
-                               , "psubsw"
-                               , "psubusb"
-                               , "psubusw"
-                               , "psubw"
-                               , "pswapd"
-                               , "punpckhbw"
-                               , "punpckhdq"
-                               , "punpckhqdq"
-                               , "punpckhwd"
-                               , "punpcklbw"
-                               , "punpckldq"
-                               , "punpcklqdq"
-                               , "punpcklwd"
-                               , "push"
-                               , "pusha"
-                               , "pushad"
-                               , "pushaw"
-                               , "pushf"
-                               , "pushfd"
-                               , "pushfq"
-                               , "pushfw"
-                               , "pxor"
-                               , "rcl"
-                               , "rcpps"
-                               , "rcpss"
-                               , "rcr"
-                               , "rdmsr"
-                               , "rdpmc"
-                               , "rdshr"
-                               , "rdtsc"
-                               , "rdtscp"
-                               , "ret"
-                               , "retf"
-                               , "retn"
-                               , "rol"
-                               , "ror"
-                               , "rsdc"
-                               , "rsldt"
-                               , "rsm"
-                               , "rsqrtps"
-                               , "rsqrtss"
-                               , "rsts"
-                               , "sahf"
-                               , "sal"
-                               , "salc"
-                               , "sar"
-                               , "sbb"
-                               , "scas"
-                               , "scasb"
-                               , "scasd"
-                               , "scasq"
-                               , "scasw"
-                               , "seta"
-                               , "setae"
-                               , "setb"
-                               , "setbe"
-                               , "setc"
-                               , "sete"
-                               , "setg"
-                               , "setge"
-                               , "setl"
-                               , "setle"
-                               , "setna"
-                               , "setnae"
-                               , "setnb"
-                               , "setnbe"
-                               , "setnc"
-                               , "setne"
-                               , "setng"
-                               , "setnge"
-                               , "setnl"
-                               , "setnle"
-                               , "setno"
-                               , "setnp"
-                               , "setns"
-                               , "setnz"
-                               , "seto"
-                               , "setp"
-                               , "setpe"
-                               , "setpo"
-                               , "sets"
-                               , "setz"
-                               , "sfence"
-                               , "sgdt"
-                               , "shl"
-                               , "shld"
-                               , "shr"
-                               , "shrd"
-                               , "shufpd"
-                               , "shufps"
-                               , "sidt"
-                               , "skinit"
-                               , "sldt"
-                               , "smi"
-                               , "smint"
-                               , "smintold"
-                               , "smsw"
-                               , "sqrtpd"
-                               , "sqrtps"
-                               , "sqrtsd"
-                               , "sqrtss"
-                               , "stc"
-                               , "std"
-                               , "stgi"
-                               , "sti"
-                               , "stmxcsr"
-                               , "stos"
-                               , "stosb"
-                               , "stosd"
-                               , "stosq"
-                               , "stosw"
-                               , "str"
-                               , "sub"
-                               , "subpd"
-                               , "subps"
-                               , "subsd"
-                               , "subss"
-                               , "svdc"
-                               , "svldt"
-                               , "svts"
-                               , "swapgs"
-                               , "syscall"
-                               , "sysenter"
-                               , "sysexit"
-                               , "sysret"
-                               , "test"
-                               , "ucomisd"
-                               , "ucomiss"
-                               , "ud0"
-                               , "ud1"
-                               , "ud2"
-                               , "umov"
-                               , "unpckhpd"
-                               , "unpckhps"
-                               , "unpcklpd"
-                               , "unpcklps"
-                               , "verr"
-                               , "verw"
-                               , "vmload"
-                               , "vmmcall"
-                               , "vmrun"
-                               , "vmsave"
-                               , "wait"
-                               , "wbinvd"
-                               , "wrmsr"
-                               , "wrshr"
-                               , "xadd"
-                               , "xbts"
-                               , "xchg"
-                               , "xlat"
-                               , "xlatb"
-                               , "xor"
-                               , "xorpd"
-                               , "xorps"
-                               ])
-                      , rAttribute = BuiltInTok
-                      , 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
-                               [ "align"
-                               , "data"
-                               , "entry"
-                               , "extrn"
-                               , "format"
-                               , "from"
-                               , "heap"
-                               , "include"
-                               , "invoke"
-                               , "load"
-                               , "org"
-                               , "proc"
-                               , "public"
-                               , "section"
-                               , "segment"
-                               , "stack"
-                               , "store"
-                               , "use16"
-                               , "use32"
-                               , "use64"
-                               ])
-                      , rAttribute = BuiltInTok
-                      , 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
-                               [ "append"
-                               , "at"
-                               , "break"
-                               , "common"
-                               , "display"
-                               , "else"
-                               , "end"
-                               , "equ"
-                               , "fix"
-                               , "foward"
-                               , "if"
-                               , "irp"
-                               , "irps"
-                               , "label"
-                               , "local"
-                               , "macro"
-                               , "match"
-                               , "purge"
-                               , "repeat"
-                               , "rept"
-                               , "restore"
-                               , "reverse"
-                               , "struc"
-                               , "times"
-                               , "virtual"
-                               , "while"
-                               ])
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ';'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Intel x86 (FASM)" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "\"'"
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Intel x86 (FASM)" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*[A-Za-z0-9@_.$?]+:"
-                              , reCompiled = Just (compileRegex True "\\s*[A-Za-z0-9@_.$?]+:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(cmov|fcmov|j|loop|set)(a|ae|b|be|c|e|g|ge|l|le|na|nae|nb|nbe|nc|ne|ng|nge|nl|nle|no|np|ns|nz|o|p|pe|po|s|z)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(cmov|fcmov|j|loop|set)(a|ae|b|be|c|e|g|ge|l|le|na|nae|nb|nbe|nc|ne|ng|nge|nl|nle|no|np|ns|nz|o|p|pe|po|s|z)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(^|[ \\t,]+)((\\$|0x){1}[0-9]+[a-f0-9]*|[a-f0-9]+h)([ \\t,]+|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "(^|[ \\t,]+)((\\$|0x){1}[0-9]+[a-f0-9]*|[a-f0-9]+h)([ \\t,]+|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(^|[ \\t,]+)([0-7]+(q|o)|[01]+b)([ \\t,]+|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False "(^|[ \\t,]+)([0-7]+(q|o)|[01]+b)([ \\t,]+|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Preprocessor"
-          , Context
-              { cName = "Preprocessor"
-              , cSyntax = "Intel x86 (FASM)"
-              , cRules = []
-              , cAttribute = PreprocessorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Intel x86 (FASM)"
-              , cRules =
-                  [ Rule
-                      { rMatcher = AnyChar "\"'"
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "rCX (rCX12@yahoo.com)"
-  , sVersion = "1"
-  , sLicense = "GPL"
-  , sExtensions = [ "*.asm" , "*.inc" , "*.fasm" ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Intel x86 (FASM)\", sFilename = \"fasm.xml\", sShortname = \"Fasm\", sContexts = fromList [(\"Comment\",Context {cName = \"Comment\", cSyntax = \"Intel x86 (FASM)\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Intel x86 (FASM)\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"ah\",\"al\",\"ax\",\"bh\",\"bl\",\"bp\",\"bx\",\"ch\",\"cl\",\"cr0\",\"cr2\",\"cr3\",\"cr4\",\"cs\",\"cx\",\"dh\",\"di\",\"dl\",\"dr0\",\"dr1\",\"dr2\",\"dr3\",\"dr6\",\"dr7\",\"ds\",\"dx\",\"eax\",\"ebp\",\"ebx\",\"ecx\",\"edi\",\"edx\",\"es\",\"esi\",\"esp\",\"fs\",\"gs\",\"mm0\",\"mm1\",\"mm2\",\"mm3\",\"mm4\",\"mm5\",\"mm6\",\"mm7\",\"r10\",\"r11\",\"r12\",\"r13\",\"r14\",\"r15\",\"r8\",\"r9\",\"rax\",\"rbp\",\"rbx\",\"rcx\",\"rdi\",\"rdx\",\"rsi\",\"rsp\",\"si\",\"sp\",\"ss\",\"st\",\"xmm0\",\"xmm1\",\"xmm2\",\"xmm3\",\"xmm4\",\"xmm5\",\"xmm6\",\"xmm7\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"byte\",\"db\",\"dd\",\"df\",\"dp\",\"dq\",\"dqword\",\"dt\",\"du\",\"dw\",\"dword\",\"file\",\"ptr\",\"pword\",\"qword\",\"rb\",\"rd\",\"rf\",\"rp\",\"rq\",\"rt\",\"rw\",\"tbyte\",\"tword\",\"word\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"aaa\",\"aad\",\"aam\",\"aas\",\"adc\",\"add\",\"addpd\",\"addps\",\"addsd\",\"addss\",\"addsubpd\",\"addsubps\",\"and\",\"andnpd\",\"andnps\",\"andpd\",\"andps\",\"arpl\",\"bound\",\"bsf\",\"bsr\",\"bswap\",\"bt\",\"btc\",\"btr\",\"bts\",\"call\",\"cbw\",\"cdq\",\"cdqe\",\"clc\",\"cld\",\"clflush\",\"clgi\",\"cli\",\"clts\",\"cmc\",\"cmova\",\"cmovae\",\"cmovb\",\"cmovbe\",\"cmovc\",\"cmove\",\"cmovg\",\"cmovge\",\"cmovl\",\"cmovle\",\"cmovna\",\"cmovnae\",\"cmovnb\",\"cmovnbe\",\"cmovnc\",\"cmovne\",\"cmovng\",\"cmovnge\",\"cmovnl\",\"cmovnle\",\"cmovno\",\"cmovnp\",\"cmovns\",\"cmovnz\",\"cmovo\",\"cmovp\",\"cmovpe\",\"cmovpo\",\"cmovs\",\"cmovz\",\"cmp\",\"cmpeqpd\",\"cmpeqps\",\"cmpeqsd\",\"cmpeqss\",\"cmplepd\",\"cmpleps\",\"cmplesd\",\"cmpless\",\"cmpltpd\",\"cmpltps\",\"cmpltsd\",\"cmpltss\",\"cmpneqpd\",\"cmpneqps\",\"cmpneqsd\",\"cmpneqss\",\"cmpnlepd\",\"cmpnleps\",\"cmpnlesd\",\"cmpnless\",\"cmpnltpd\",\"cmpnltps\",\"cmpnltsd\",\"cmpnltss\",\"cmpordpd\",\"cmpordps\",\"cmpordsd\",\"cmpordss\",\"cmppd\",\"cmpps\",\"cmps\",\"cmpsb\",\"cmpsd\",\"cmpss\",\"cmpsw\",\"cmpunordpd\",\"cmpunordps\",\"cmpunordsd\",\"cmpunordss\",\"cmpxchg\",\"cmpxchg16b\",\"cmpxchg486\",\"cmpxchg8b\",\"comisd\",\"comiss\",\"cpuid\",\"cqo\",\"cvtdq2pd\",\"cvtdq2ps\",\"cvtpd2dq\",\"cvtpd2pi\",\"cvtpd2ps\",\"cvtpi2pd\",\"cvtpi2ps\",\"cvtps2dq\",\"cvtps2pd\",\"cvtps2pi\",\"cvtsd2si\",\"cvtsd2ss\",\"cvtsi2sd\",\"cvtsi2ss\",\"cvtss2sd\",\"cvtss2si\",\"cvttpd2dq\",\"cvttpd2pi\",\"cvttps2dq\",\"cvttps2pi\",\"cvttsd2si\",\"cvttss2si\",\"cwd\",\"cwde\",\"daa\",\"das\",\"dec\",\"div\",\"divpd\",\"divps\",\"divsd\",\"divss\",\"emms\",\"enter\",\"f2xm1\",\"fabs\",\"fadd\",\"faddp\",\"fbld\",\"fbstp\",\"fchs\",\"fclex\",\"fcmovb\",\"fcmovbe\",\"fcmove\",\"fcmovnb\",\"fcmovnbe\",\"fcmovne\",\"fcmovnu\",\"fcmovu\",\"fcom\",\"fcomi\",\"fcomip\",\"fcomp\",\"fcompp\",\"fcos\",\"fdecstp\",\"fdisi\",\"fdiv\",\"fdivp\",\"fdivr\",\"fdivrp\",\"femms\",\"feni\",\"ffree\",\"ffreep\",\"fiadd\",\"ficom\",\"ficomp\",\"fidiv\",\"fidivr\",\"fild\",\"fimul\",\"fincstp\",\"finit\",\"fist\",\"fistp\",\"fisttp\",\"fisub\",\"fisubr\",\"fld\",\"fld1\",\"fldcw\",\"fldenv\",\"fldl2e\",\"fldl2t\",\"fldlg2\",\"fldln2\",\"fldpi\",\"fldz\",\"fmul\",\"fmulp\",\"fnclex\",\"fndisi\",\"fneni\",\"fninit\",\"fnop\",\"fnsave\",\"fnstcw\",\"fnstenv\",\"fnstsw\",\"fnwait\",\"fpatan\",\"fprem\",\"fprem1\",\"fptan\",\"frndint\",\"frstor\",\"fsave\",\"fscale\",\"fsetpm\",\"fsin\",\"fsincos\",\"fsqrt\",\"fst\",\"fstcw\",\"fstenv\",\"fstp\",\"fstsw\",\"fsub\",\"fsubp\",\"fsubr\",\"fsubrp\",\"ftst\",\"fucom\",\"fucomi\",\"fucomip\",\"fucomp\",\"fucompp\",\"fwait\",\"fxam\",\"fxch\",\"fxrstor\",\"fxsave\",\"fxtract\",\"fyl2x\",\"fyl2xp1\",\"haddpd\",\"haddps\",\"hlt\",\"hsubpd\",\"hsubps\",\"ibts\",\"idiv\",\"imul\",\"in\",\"inc\",\"ins\",\"insb\",\"insd\",\"insw\",\"int\",\"int1\",\"int3\",\"into\",\"invd\",\"invlpg\",\"invlpga\",\"iret\",\"iretd\",\"iretq\",\"iretw\",\"ja\",\"jae\",\"jb\",\"jbe\",\"jc\",\"jcxz\",\"je\",\"jecxz\",\"jg\",\"jge\",\"jl\",\"jle\",\"jmp\",\"jna\",\"jnae\",\"jnb\",\"jnbe\",\"jnc\",\"jne\",\"jng\",\"jnge\",\"jnl\",\"jnle\",\"jno\",\"jnp\",\"jns\",\"jnz\",\"jo\",\"jp\",\"jpe\",\"jpo\",\"jrcxz\",\"js\",\"jz\",\"lahf\",\"lar\",\"lddqu\",\"ldmxcsr\",\"lds\",\"lea\",\"leave\",\"les\",\"lfence\",\"lfs\",\"lgdt\",\"lgs\",\"lidt\",\"lldt\",\"lmsw\",\"loadall\",\"loadall286\",\"lods\",\"lodsb\",\"lodsd\",\"lodsq\",\"lodsw\",\"loop\",\"loope\",\"loopne\",\"loopnz\",\"loopz\",\"lsl\",\"lss\",\"ltr\",\"maskmovdqu\",\"maskmovq\",\"maxpd\",\"maxps\",\"maxsd\",\"maxss\",\"mfence\",\"minpd\",\"minps\",\"minsd\",\"minss\",\"monitor\",\"mov\",\"movapd\",\"movaps\",\"movd\",\"movddup\",\"movdq2q\",\"movdqa\",\"movdqu\",\"movhlps\",\"movhpd\",\"movhps\",\"movlhps\",\"movlpd\",\"movlps\",\"movmskpd\",\"movmskps\",\"movntdq\",\"movnti\",\"movntpd\",\"movntps\",\"movntq\",\"movq\",\"movq2dq\",\"movs\",\"movsb\",\"movsd\",\"movshdup\",\"movsldup\",\"movsq\",\"movss\",\"movsw\",\"movsx\",\"movsxd\",\"movupd\",\"movups\",\"movzx\",\"mul\",\"mulpd\",\"mulps\",\"mulsd\",\"mulss\",\"mwait\",\"neg\",\"nop\",\"not\",\"or\",\"orpd\",\"orps\",\"out\",\"outs\",\"outsb\",\"outsd\",\"outsw\",\"packssdw\",\"packsswb\",\"packuswb\",\"paddb\",\"paddd\",\"paddq\",\"paddsb\",\"paddsw\",\"paddusb\",\"paddusw\",\"paddw\",\"pand\",\"pandn\",\"pause\",\"pavgb\",\"pavgusb\",\"pavgw\",\"pcmpeqb\",\"pcmpeqd\",\"pcmpeqw\",\"pcmpgtb\",\"pcmpgtd\",\"pcmpgtw\",\"pdistib\",\"pextrw\",\"pf2id\",\"pf2iw\",\"pfacc\",\"pfadd\",\"pfcmpeq\",\"pfcmpge\",\"pfcmpgt\",\"pfmax\",\"pfmin\",\"pfmul\",\"pfnacc\",\"pfpnacc\",\"pfrcp\",\"pfrcpit1\",\"pfrcpit2\",\"pfrsqit1\",\"pfrsqrt\",\"pfsub\",\"pfsubr\",\"pi2fd\",\"pi2fw\",\"pinsrw\",\"pmachriw\",\"pmaddwd\",\"pmagw\",\"pmaxsw\",\"pmaxub\",\"pminsw\",\"pminub\",\"pmovmskb\",\"pmulhrw\",\"pmulhuw\",\"pmulhw\",\"pmullw\",\"pmuludq\",\"pmvgezb\",\"pmvlzb\",\"pmvnzb\",\"pmvzb\",\"pop\",\"popa\",\"popad\",\"popaw\",\"popf\",\"popfd\",\"popfq\",\"popfw\",\"por\",\"prefetch\",\"prefetchnta\",\"prefetcht0\",\"prefetcht1\",\"prefetcht2\",\"prefetchw\",\"psadbw\",\"pshufd\",\"pshufhw\",\"pshuflw\",\"pshufw\",\"pslld\",\"pslldq\",\"psllq\",\"psllw\",\"psrad\",\"psraw\",\"psrld\",\"psrldq\",\"psrlq\",\"psrlw\",\"psubb\",\"psubd\",\"psubq\",\"psubsb\",\"psubsiw\",\"psubsw\",\"psubusb\",\"psubusw\",\"psubw\",\"pswapd\",\"punpckhbw\",\"punpckhdq\",\"punpckhqdq\",\"punpckhwd\",\"punpcklbw\",\"punpckldq\",\"punpcklqdq\",\"punpcklwd\",\"push\",\"pusha\",\"pushad\",\"pushaw\",\"pushf\",\"pushfd\",\"pushfq\",\"pushfw\",\"pxor\",\"rcl\",\"rcpps\",\"rcpss\",\"rcr\",\"rdmsr\",\"rdpmc\",\"rdshr\",\"rdtsc\",\"rdtscp\",\"ret\",\"retf\",\"retn\",\"rol\",\"ror\",\"rsdc\",\"rsldt\",\"rsm\",\"rsqrtps\",\"rsqrtss\",\"rsts\",\"sahf\",\"sal\",\"salc\",\"sar\",\"sbb\",\"scas\",\"scasb\",\"scasd\",\"scasq\",\"scasw\",\"seta\",\"setae\",\"setb\",\"setbe\",\"setc\",\"sete\",\"setg\",\"setge\",\"setl\",\"setle\",\"setna\",\"setnae\",\"setnb\",\"setnbe\",\"setnc\",\"setne\",\"setng\",\"setnge\",\"setnl\",\"setnle\",\"setno\",\"setnp\",\"setns\",\"setnz\",\"seto\",\"setp\",\"setpe\",\"setpo\",\"sets\",\"setz\",\"sfence\",\"sgdt\",\"shl\",\"shld\",\"shr\",\"shrd\",\"shufpd\",\"shufps\",\"sidt\",\"skinit\",\"sldt\",\"smi\",\"smint\",\"smintold\",\"smsw\",\"sqrtpd\",\"sqrtps\",\"sqrtsd\",\"sqrtss\",\"stc\",\"std\",\"stgi\",\"sti\",\"stmxcsr\",\"stos\",\"stosb\",\"stosd\",\"stosq\",\"stosw\",\"str\",\"sub\",\"subpd\",\"subps\",\"subsd\",\"subss\",\"svdc\",\"svldt\",\"svts\",\"swapgs\",\"syscall\",\"sysenter\",\"sysexit\",\"sysret\",\"test\",\"ucomisd\",\"ucomiss\",\"ud0\",\"ud1\",\"ud2\",\"umov\",\"unpckhpd\",\"unpckhps\",\"unpcklpd\",\"unpcklps\",\"verr\",\"verw\",\"vmload\",\"vmmcall\",\"vmrun\",\"vmsave\",\"wait\",\"wbinvd\",\"wrmsr\",\"wrshr\",\"xadd\",\"xbts\",\"xchg\",\"xlat\",\"xlatb\",\"xor\",\"xorpd\",\"xorps\"])), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"align\",\"data\",\"entry\",\"extrn\",\"format\",\"from\",\"heap\",\"include\",\"invoke\",\"load\",\"org\",\"proc\",\"public\",\"section\",\"segment\",\"stack\",\"store\",\"use16\",\"use32\",\"use64\"])), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"append\",\"at\",\"break\",\"common\",\"display\",\"else\",\"end\",\"equ\",\"fix\",\"foward\",\"if\",\"irp\",\"irps\",\"label\",\"local\",\"macro\",\"match\",\"purge\",\"repeat\",\"rept\",\"restore\",\"reverse\",\"struc\",\"times\",\"virtual\",\"while\"])), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ';', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Intel x86 (FASM)\",\"Comment\")]},Rule {rMatcher = AnyChar \"\\\"'\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Intel x86 (FASM)\",\"String\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*[A-Za-z0-9@_.$?]+:\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(cmov|fcmov|j|loop|set)(a|ae|b|be|c|e|g|ge|l|le|na|nae|nb|nbe|nc|ne|ng|nge|nl|nle|no|np|ns|nz|o|p|pe|po|s|z)\", reCaseSensitive = True}), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(^|[ \\\\t,]+)((\\\\$|0x){1}[0-9]+[a-f0-9]*|[a-f0-9]+h)([ \\\\t,]+|$)\", reCaseSensitive = False}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(^|[ \\\\t,]+)([0-7]+(q|o)|[01]+b)([ \\\\t,]+|$)\", reCaseSensitive = False}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, 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 = []},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Preprocessor\",Context {cName = \"Preprocessor\", cSyntax = \"Intel x86 (FASM)\", cRules = [], cAttribute = PreprocessorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Intel x86 (FASM)\", cRules = [Rule {rMatcher = AnyChar \"\\\"'\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"rCX (rCX12@yahoo.com)\", sVersion = \"1\", sLicense = \"GPL\", sExtensions = [\"*.asm\",\"*.inc\",\"*.fasm\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Fortran.hs b/src/Skylighting/Syntax/Fortran.hs
--- a/src/Skylighting/Syntax/Fortran.hs
+++ b/src/Skylighting/Syntax/Fortran.hs
@@ -2,2204 +2,6 @@
 module Skylighting.Syntax.Fortran (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Fortran"
-  , sFilename = "fortran.xml"
-  , sShortname = "Fortran"
-  , sContexts =
-      fromList
-        [ ( "default"
-          , Context
-              { cName = "default"
-              , cSyntax = "Fortran"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Fortran" , "find_strings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Fortran" , "find_decls" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Fortran" , "find_intrinsics" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Fortran" , "find_io_stmnts" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Fortran" , "find_op_and_log" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Fortran" , "find_numbers" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Fortran" , "find_preprocessor" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Fortran" , "find_comments" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Fortran" , "find_symbols" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Fortran" , "find_begin_stmnts" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Fortran" , "find_end_stmnts" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Fortran" , "find_mid_stmnts" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "end_of_string"
-          , Context
-              { cName = "end_of_string"
-              , cSyntax = "Fortran"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "&\\s*$"
-                              , reCompiled = Just (compileRegex False "&\\s*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '&'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(!.*)?$"
-                              , reCompiled = Just (compileRegex False "(!.*)?$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop , Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "find_begin_stmnts"
-          , Context
-              { cName = "find_begin_stmnts"
-              , cSyntax = "Fortran"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bmodule\\s+procedure\\b"
-                              , reCompiled =
-                                  Just (compileRegex False "\\bmodule\\s+procedure\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(subroutine|function|block\\s*data)\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex False "\\b(subroutine|function|block\\s*data)\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(program|module|block\\s*data)\\b"
-                              , reCompiled =
-                                  Just (compileRegex False "\\b(program|module|block\\s*data)\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(then|do)\\b"
-                              , reCompiled = Just (compileRegex False "\\b(then|do)\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_comments"
-          , Context
-              { cName = "find_comments"
-              , cSyntax = "Fortran"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[cC\\*].*$"
-                              , reCompiled = Just (compileRegex False "[cC\\*].*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "!.*$"
-                              , reCompiled = Just (compileRegex False "!.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_decls"
-          , Context
-              { cName = "find_decls"
-              , cSyntax = "Fortran"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\binteger[\\*]\\d{1,2}"
-                              , reCompiled = Just (compileRegex False "\\binteger[\\*]\\d{1,2}")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\breal[\\*]\\d{1,2}"
-                              , reCompiled = Just (compileRegex False "\\breal[\\*]\\d{1,2}")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bcomplex[\\*]\\d{1,2}"
-                              , reCompiled = Just (compileRegex False "\\bcomplex[\\*]\\d{1,2}")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bend\\s*type\\b"
-                              , reCompiled = Just (compileRegex False "\\bend\\s*type\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "allocatable"
-                               , "double"
-                               , "optional"
-                               , "parameter"
-                               , "pointer"
-                               , "precision"
-                               , "private"
-                               , "public"
-                               , "save"
-                               , "sequence"
-                               , "target"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*data\\b"
-                              , reCompiled = Just (compileRegex False "\\s*data\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*real\\s*[(]"
-                              , reCompiled = Just (compileRegex False "\\s*real\\s*[(]")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Fortran" , "find_paren" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*real(?![\\w\\*])"
-                              , reCompiled = Just (compileRegex False "\\s*real(?![\\w\\*])")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bcharacter[*][0-9]+\\b"
-                              , reCompiled = Just (compileRegex False "\\bcharacter[*][0-9]+\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b(type|integer|complex|character|logical|intent|dimension)\\b\\s*[(]"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "\\b(type|integer|complex|character|logical|intent|dimension)\\b\\s*[(]")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Fortran" , "find_paren" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b(type|integer|complex|character|logical|intent|dimension)\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "\\b(type|integer|complex|character|logical|intent|dimension)\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars ':' ':'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_end_stmnts"
-          , Context
-              { cName = "find_end_stmnts"
-              , cSyntax = "Fortran"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bend\\s*(subroutine|function|block\\s*data)\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False "\\bend\\s*(subroutine|function|block\\s*data)\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bend\\s*(program|module)\\b"
-                              , reCompiled =
-                                  Just (compileRegex False "\\bend\\s*(program|module)\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bend\\s*(do|if)\\b"
-                              , reCompiled = Just (compileRegex False "\\bend\\s*(do|if)\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bend\\s*(select|where|forall|interface)\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False "\\bend\\s*(select|where|forall|interface)\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\belse\\s*if\\b"
-                              , reCompiled = Just (compileRegex False "\\belse\\s*if\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bend\\b"
-                              , reCompiled = Just (compileRegex False "\\bend\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_intrinsics"
-          , Context
-              { cName = "find_intrinsics"
-              , cSyntax = "Fortran"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "allocate"
-                               , "assignment"
-                               , "break"
-                               , "call"
-                               , "case"
-                               , "common"
-                               , "continue"
-                               , "cycle"
-                               , "deallocate"
-                               , "default"
-                               , "elemental"
-                               , "elsewhere"
-                               , "entry"
-                               , "equivalence"
-                               , "exit"
-                               , "external"
-                               , "for"
-                               , "forall"
-                               , "go"
-                               , "goto"
-                               , "if"
-                               , "implicit"
-                               , "include"
-                               , "interface"
-                               , "intrinsic"
-                               , "namelist"
-                               , "none"
-                               , "nullify"
-                               , "only"
-                               , "operator"
-                               , "pause"
-                               , "procedure"
-                               , "pure"
-                               , "record"
-                               , "recursive"
-                               , "result"
-                               , "return"
-                               , "select"
-                               , "selectcase"
-                               , "stop"
-                               , "to"
-                               , "use"
-                               , "where"
-                               , "while"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "abs"
-                               , "achar"
-                               , "acos"
-                               , "adjustl"
-                               , "adjustr"
-                               , "aimag"
-                               , "aint"
-                               , "alog"
-                               , "alog10"
-                               , "amax0"
-                               , "amax1"
-                               , "amin0"
-                               , "amin1"
-                               , "amod"
-                               , "anint"
-                               , "aprime"
-                               , "asin"
-                               , "atan"
-                               , "atan2"
-                               , "btest"
-                               , "cabs"
-                               , "ccos"
-                               , "ceiling"
-                               , "cexp"
-                               , "char"
-                               , "clog"
-                               , "cmplx"
-                               , "conjg"
-                               , "cos"
-                               , "cosh"
-                               , "csin"
-                               , "csqrt"
-                               , "dabs"
-                               , "dacos"
-                               , "dasin"
-                               , "datan"
-                               , "datan2"
-                               , "dble"
-                               , "dcmplx"
-                               , "dconjg"
-                               , "dcos"
-                               , "dcosh"
-                               , "ddim"
-                               , "ddmim"
-                               , "dexp"
-                               , "dfloat"
-                               , "dim"
-                               , "dimag"
-                               , "dint"
-                               , "dlog"
-                               , "dlog10"
-                               , "dmax1"
-                               , "dmin1"
-                               , "dmod"
-                               , "dnint"
-                               , "dprod"
-                               , "dreal"
-                               , "dsign"
-                               , "dsin"
-                               , "dsinh"
-                               , "dsqrt"
-                               , "dtan"
-                               , "dtanh"
-                               , "exp"
-                               , "exponent"
-                               , "float"
-                               , "floor"
-                               , "fraction"
-                               , "iabs"
-                               , "iachar"
-                               , "iand"
-                               , "ibclr"
-                               , "ibits"
-                               , "ibset"
-                               , "ichar"
-                               , "idim"
-                               , "idint"
-                               , "idnint"
-                               , "ieor"
-                               , "ifix"
-                               , "index"
-                               , "int"
-                               , "ior"
-                               , "ishft"
-                               , "ishftc"
-                               , "isign"
-                               , "len_trim"
-                               , "lge"
-                               , "lgt"
-                               , "lle"
-                               , "llt"
-                               , "log"
-                               , "log10"
-                               , "logical"
-                               , "max"
-                               , "max0"
-                               , "max1"
-                               , "merge"
-                               , "min"
-                               , "min0"
-                               , "min1"
-                               , "mod"
-                               , "modulo"
-                               , "mvbits"
-                               , "nearest"
-                               , "nint"
-                               , "not"
-                               , "rand"
-                               , "real"
-                               , "rrspacing"
-                               , "scale"
-                               , "scan"
-                               , "set_exponent"
-                               , "sign"
-                               , "sin"
-                               , "sinh"
-                               , "sngl"
-                               , "spacing"
-                               , "sqrt"
-                               , "tan"
-                               , "tanh"
-                               , "verify"
-                               ])
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "allocated"
-                               , "associated"
-                               , "bit_size"
-                               , "digits"
-                               , "epsilon"
-                               , "huge"
-                               , "kind"
-                               , "lbound"
-                               , "len"
-                               , "maxexponent"
-                               , "minexponent"
-                               , "precision"
-                               , "present"
-                               , "radix"
-                               , "range"
-                               , "shape"
-                               , "size"
-                               , "tiny"
-                               , "ubound"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "all"
-                               , "any"
-                               , "count"
-                               , "cshift"
-                               , "dot_product"
-                               , "eoshift"
-                               , "matmul"
-                               , "maxloc"
-                               , "maxval"
-                               , "minloc"
-                               , "minval"
-                               , "pack"
-                               , "product"
-                               , "repeat"
-                               , "reshape"
-                               , "selected_int_kind"
-                               , "selected_real_kind"
-                               , "spread"
-                               , "sum"
-                               , "transfer"
-                               , "transpose"
-                               , "trim"
-                               , "unpack"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "date_and_time"
-                               , "random_number"
-                               , "random_seed"
-                               , "system_clock"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_io_paren"
-          , Context
-              { cName = "find_io_paren"
-              , cSyntax = "Fortran"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '*'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Fortran" , "inside_func_paren" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "advance"
-                               , "end"
-                               , "eor"
-                               , "err"
-                               , "fmt"
-                               , "iostat"
-                               , "size"
-                               , "status"
-                               , "unit"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "access"
-                               , "action"
-                               , "blank"
-                               , "delim"
-                               , "direct"
-                               , "err"
-                               , "exist"
-                               , "file"
-                               , "form"
-                               , "formatted"
-                               , "iostat"
-                               , "name"
-                               , "named"
-                               , "nextrec"
-                               , "number"
-                               , "opened"
-                               , "pad"
-                               , "position"
-                               , "read"
-                               , "readwrite"
-                               , "recl"
-                               , "sequential"
-                               , "unformatted"
-                               , "unit"
-                               , "write"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "access"
-                               , "action"
-                               , "blank"
-                               , "delim"
-                               , "err"
-                               , "file"
-                               , "form"
-                               , "iostat"
-                               , "pad"
-                               , "position"
-                               , "recl"
-                               , "status"
-                               , "unit"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Fortran" , "find_strings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Fortran" , "find_intrinsics" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Fortran" , "find_numbers" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Fortran" , "find_symbols" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_io_stmnts"
-          , Context
-              { cName = "find_io_stmnts"
-              , cSyntax = "Fortran"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b(read|write|backspace|rewind|end\\s*file|close)\\s*[(]"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "\\b(read|write|backspace|rewind|end\\s*file|close)\\s*[(]")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Fortran" , "find_io_paren" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bopen\\s*[(]"
-                              , reCompiled = Just (compileRegex False "\\bopen\\s*[(]")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Fortran" , "find_io_paren" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\binquire\\s*[(]"
-                              , reCompiled = Just (compileRegex False "\\binquire\\s*[(]")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Fortran" , "find_io_paren" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bformat\\s*[(]"
-                              , reCompiled = Just (compileRegex False "\\bformat\\s*[(]")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Fortran" , "format_stmnt" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bend\\s*file\\b"
-                              , reCompiled = Just (compileRegex False "\\bend\\s*file\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "access"
-                               , "backspace"
-                               , "close"
-                               , "format"
-                               , "inquire"
-                               , "open"
-                               , "print"
-                               , "read"
-                               , "rewind"
-                               , "write"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_mid_stmnts"
-          , Context
-              { cName = "find_mid_stmnts"
-              , cSyntax = "Fortran"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\belse\\b"
-                              , reCompiled = Just (compileRegex False "\\belse\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bcontains\\b"
-                              , reCompiled = Just (compileRegex False "\\bcontains\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_numbers"
-          , Context
-              { cName = "find_numbers"
-              , cSyntax = "Fortran"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "[0-9]*\\.[0-9]+([de][+-]?[0-9]+)?([_]([0-9]+|[a-z][\\w_]*))?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "[0-9]*\\.[0-9]+([de][+-]?[0-9]+)?([_]([0-9]+|[a-z][\\w_]*))?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b[0-9]+\\.[0-9]*([de][+-]?[0-9]+)?([_]([0-9]+|[a-z][\\w_]*))?(?![a-z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "\\b[0-9]+\\.[0-9]*([de][+-]?[0-9]+)?([_]([0-9]+|[a-z][\\w_]*))?(?![a-z])")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[0-9]+[de][+-]?[0-9]+([_]([0-9]+|[a-z][\\w_]*))?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False "\\b[0-9]+[de][+-]?[0-9]+([_]([0-9]+|[a-z][\\w_]*))?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[0-9]+([_]([0-9]+|[a-zA-Z][\\w_]*))?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex False "\\b[0-9]+([_]([0-9]+|[a-zA-Z][\\w_]*))?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[bozx](['][0-9a-f]+[']|[\"][0-9a-f]+[\"])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False "\\b[bozx](['][0-9a-f]+[']|[\"][0-9a-f]+[\"])")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_op_and_log"
-          , Context
-              { cName = "find_op_and_log"
-              , cSyntax = "Fortran"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.(true|false)\\."
-                              , reCompiled = Just (compileRegex False "\\.(true|false)\\.")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = ConstantTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.[A-Za-z]+\\."
-                              , reCompiled = Just (compileRegex False "\\.[A-Za-z]+\\.")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(==|/=|<|<=|>|>=)"
-                              , reCompiled = Just (compileRegex False "(==|/=|<|<=|>|>=)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_paren"
-          , Context
-              { cName = "find_paren"
-              , cSyntax = "Fortran"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Fortran" , "find_paren" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_preprocessor"
-          , Context
-              { cName = "find_preprocessor"
-              , cSyntax = "Fortran"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(#|cDEC\\$|CDEC\\$).*$"
-                              , reCompiled = Just (compileRegex False "(#|cDEC\\$|CDEC\\$).*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_strings"
-          , Context
-              { cName = "find_strings"
-              , cSyntax = "Fortran"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Fortran" , "string_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Fortran" , "string_2" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_symbols"
-          , Context
-              { cName = "find_symbols"
-              , cSyntax = "Fortran"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '*'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '(' '/'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' ')'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "&+-*/=?[]^{|}~"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "(),"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "format_stmnt"
-          , Context
-              { cName = "format_stmnt"
-              , cSyntax = "Fortran"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Fortran" , "format_stmnt" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[0-9]*/"
-                              , reCompiled = Just (compileRegex False "[0-9]*/")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ":"
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Fortran" , "find_strings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Fortran" , "find_symbols" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "inside_func_paren"
-          , Context
-              { cName = "inside_func_paren"
-              , cSyntax = "Fortran"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Fortran" , "inside_func_paren" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Fortran" , "find_strings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Fortran" , "find_intrinsics" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Fortran" , "find_numbers" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "string_1"
-          , Context
-              { cName = "string_1"
-              , cSyntax = "Fortran"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^']*'"
-                              , reCompiled = Just (compileRegex False "[^']*'")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "&\\s*$"
-                              , reCompiled = Just (compileRegex False "&\\s*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Fortran" , "end_of_string" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ".*(?=&\\s*$)"
-                              , reCompiled = Just (compileRegex False ".*(?=&\\s*$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Fortran" , "end_of_string" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "string_2"
-          , Context
-              { cName = "string_2"
-              , cSyntax = "Fortran"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^\"]*\""
-                              , reCompiled = Just (compileRegex False "[^\"]*\"")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "&\\s*$"
-                              , reCompiled = Just (compileRegex False "&\\s*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Fortran" , "end_of_string" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ".*(?=&\\s*$)"
-                              , reCompiled = Just (compileRegex False ".*(?=&\\s*$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Fortran" , "end_of_string" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Franchin Matteo (fnch@libero.it)"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions =
-      [ "*.f"
-      , "*.F"
-      , "*.for"
-      , "*.FOR"
-      , "*.f90"
-      , "*.F90"
-      , "*.fpp"
-      , "*.FPP"
-      , "*.f95"
-      , "*.F95"
-      ]
-  , sStartingContext = "default"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Fortran\", sFilename = \"fortran.xml\", sShortname = \"Fortran\", sContexts = fromList [(\"default\",Context {cName = \"default\", cSyntax = \"Fortran\", cRules = [Rule {rMatcher = IncludeRules (\"Fortran\",\"find_strings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Fortran\",\"find_decls\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Fortran\",\"find_intrinsics\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Fortran\",\"find_io_stmnts\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Fortran\",\"find_op_and_log\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Fortran\",\"find_numbers\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Fortran\",\"find_preprocessor\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Fortran\",\"find_comments\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Fortran\",\"find_symbols\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Fortran\",\"find_begin_stmnts\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Fortran\",\"find_end_stmnts\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Fortran\",\"find_mid_stmnts\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"end_of_string\",Context {cName = \"end_of_string\", cSyntax = \"Fortran\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"&\\\\s*$\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '&', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(!.*)?$\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop,Pop], cDynamic = False}),(\"find_begin_stmnts\",Context {cName = \"find_begin_stmnts\", cSyntax = \"Fortran\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\bmodule\\\\s+procedure\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(subroutine|function|block\\\\s*data)\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(program|module|block\\\\s*data)\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(then|do)\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_comments\",Context {cName = \"find_comments\", cSyntax = \"Fortran\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[cC\\\\*].*$\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"!.*$\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_decls\",Context {cName = \"find_decls\", cSyntax = \"Fortran\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\binteger[\\\\*]\\\\d{1,2}\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\breal[\\\\*]\\\\d{1,2}\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bcomplex[\\\\*]\\\\d{1,2}\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bend\\\\s*type\\\\b\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"allocatable\",\"double\",\"optional\",\"parameter\",\"pointer\",\"precision\",\"private\",\"public\",\"save\",\"sequence\",\"target\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*data\\\\b\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*real\\\\s*[(]\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Fortran\",\"find_paren\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*real(?![\\\\w\\\\*])\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bcharacter[*][0-9]+\\\\b\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(type|integer|complex|character|logical|intent|dimension)\\\\b\\\\s*[(]\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Fortran\",\"find_paren\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(type|integer|complex|character|logical|intent|dimension)\\\\b\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars ':' ':', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_end_stmnts\",Context {cName = \"find_end_stmnts\", cSyntax = \"Fortran\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\bend\\\\s*(subroutine|function|block\\\\s*data)\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bend\\\\s*(program|module)\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bend\\\\s*(do|if)\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bend\\\\s*(select|where|forall|interface)\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\belse\\\\s*if\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bend\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_intrinsics\",Context {cName = \"find_intrinsics\", cSyntax = \"Fortran\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"allocate\",\"assignment\",\"break\",\"call\",\"case\",\"common\",\"continue\",\"cycle\",\"deallocate\",\"default\",\"elemental\",\"elsewhere\",\"entry\",\"equivalence\",\"exit\",\"external\",\"for\",\"forall\",\"go\",\"goto\",\"if\",\"implicit\",\"include\",\"interface\",\"intrinsic\",\"namelist\",\"none\",\"nullify\",\"only\",\"operator\",\"pause\",\"procedure\",\"pure\",\"record\",\"recursive\",\"result\",\"return\",\"select\",\"selectcase\",\"stop\",\"to\",\"use\",\"where\",\"while\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"abs\",\"achar\",\"acos\",\"adjustl\",\"adjustr\",\"aimag\",\"aint\",\"alog\",\"alog10\",\"amax0\",\"amax1\",\"amin0\",\"amin1\",\"amod\",\"anint\",\"aprime\",\"asin\",\"atan\",\"atan2\",\"btest\",\"cabs\",\"ccos\",\"ceiling\",\"cexp\",\"char\",\"clog\",\"cmplx\",\"conjg\",\"cos\",\"cosh\",\"csin\",\"csqrt\",\"dabs\",\"dacos\",\"dasin\",\"datan\",\"datan2\",\"dble\",\"dcmplx\",\"dconjg\",\"dcos\",\"dcosh\",\"ddim\",\"ddmim\",\"dexp\",\"dfloat\",\"dim\",\"dimag\",\"dint\",\"dlog\",\"dlog10\",\"dmax1\",\"dmin1\",\"dmod\",\"dnint\",\"dprod\",\"dreal\",\"dsign\",\"dsin\",\"dsinh\",\"dsqrt\",\"dtan\",\"dtanh\",\"exp\",\"exponent\",\"float\",\"floor\",\"fraction\",\"iabs\",\"iachar\",\"iand\",\"ibclr\",\"ibits\",\"ibset\",\"ichar\",\"idim\",\"idint\",\"idnint\",\"ieor\",\"ifix\",\"index\",\"int\",\"ior\",\"ishft\",\"ishftc\",\"isign\",\"len_trim\",\"lge\",\"lgt\",\"lle\",\"llt\",\"log\",\"log10\",\"logical\",\"max\",\"max0\",\"max1\",\"merge\",\"min\",\"min0\",\"min1\",\"mod\",\"modulo\",\"mvbits\",\"nearest\",\"nint\",\"not\",\"rand\",\"real\",\"rrspacing\",\"scale\",\"scan\",\"set_exponent\",\"sign\",\"sin\",\"sinh\",\"sngl\",\"spacing\",\"sqrt\",\"tan\",\"tanh\",\"verify\"])), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"allocated\",\"associated\",\"bit_size\",\"digits\",\"epsilon\",\"huge\",\"kind\",\"lbound\",\"len\",\"maxexponent\",\"minexponent\",\"precision\",\"present\",\"radix\",\"range\",\"shape\",\"size\",\"tiny\",\"ubound\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"all\",\"any\",\"count\",\"cshift\",\"dot_product\",\"eoshift\",\"matmul\",\"maxloc\",\"maxval\",\"minloc\",\"minval\",\"pack\",\"product\",\"repeat\",\"reshape\",\"selected_int_kind\",\"selected_real_kind\",\"spread\",\"sum\",\"transfer\",\"transpose\",\"trim\",\"unpack\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"date_and_time\",\"random_number\",\"random_seed\",\"system_clock\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_io_paren\",Context {cName = \"find_io_paren\", cSyntax = \"Fortran\", cRules = [Rule {rMatcher = DetectChar '*', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Fortran\",\"inside_func_paren\")]},Rule {rMatcher = DetectChar ')', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"advance\",\"end\",\"eor\",\"err\",\"fmt\",\"iostat\",\"size\",\"status\",\"unit\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"access\",\"action\",\"blank\",\"delim\",\"direct\",\"err\",\"exist\",\"file\",\"form\",\"formatted\",\"iostat\",\"name\",\"named\",\"nextrec\",\"number\",\"opened\",\"pad\",\"position\",\"read\",\"readwrite\",\"recl\",\"sequential\",\"unformatted\",\"unit\",\"write\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"access\",\"action\",\"blank\",\"delim\",\"err\",\"file\",\"form\",\"iostat\",\"pad\",\"position\",\"recl\",\"status\",\"unit\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Fortran\",\"find_strings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Fortran\",\"find_intrinsics\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Fortran\",\"find_numbers\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Fortran\",\"find_symbols\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_io_stmnts\",Context {cName = \"find_io_stmnts\", cSyntax = \"Fortran\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(read|write|backspace|rewind|end\\\\s*file|close)\\\\s*[(]\", reCaseSensitive = False}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Fortran\",\"find_io_paren\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bopen\\\\s*[(]\", reCaseSensitive = False}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Fortran\",\"find_io_paren\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\binquire\\\\s*[(]\", reCaseSensitive = False}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Fortran\",\"find_io_paren\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bformat\\\\s*[(]\", reCaseSensitive = False}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Fortran\",\"format_stmnt\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bend\\\\s*file\\\\b\", reCaseSensitive = False}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"access\",\"backspace\",\"close\",\"format\",\"inquire\",\"open\",\"print\",\"read\",\"rewind\",\"write\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_mid_stmnts\",Context {cName = \"find_mid_stmnts\", cSyntax = \"Fortran\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\belse\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bcontains\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_numbers\",Context {cName = \"find_numbers\", cSyntax = \"Fortran\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[0-9]*\\\\.[0-9]+([de][+-]?[0-9]+)?([_]([0-9]+|[a-z][\\\\w_]*))?\", reCaseSensitive = False}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[0-9]+\\\\.[0-9]*([de][+-]?[0-9]+)?([_]([0-9]+|[a-z][\\\\w_]*))?(?![a-z])\", reCaseSensitive = False}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[0-9]+[de][+-]?[0-9]+([_]([0-9]+|[a-z][\\\\w_]*))?\", reCaseSensitive = False}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[0-9]+([_]([0-9]+|[a-zA-Z][\\\\w_]*))?\", reCaseSensitive = False}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[bozx](['][0-9a-f]+[']|[\\\"][0-9a-f]+[\\\"])\", reCaseSensitive = False}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_op_and_log\",Context {cName = \"find_op_and_log\", cSyntax = \"Fortran\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\.(true|false)\\\\.\", reCaseSensitive = False}), rAttribute = ConstantTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.[A-Za-z]+\\\\.\", reCaseSensitive = False}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(==|/=|<|<=|>|>=)\", reCaseSensitive = False}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_paren\",Context {cName = \"find_paren\", cSyntax = \"Fortran\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Fortran\",\"find_paren\")]},Rule {rMatcher = DetectChar ')', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_preprocessor\",Context {cName = \"find_preprocessor\", cSyntax = \"Fortran\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(#|cDEC\\\\$|CDEC\\\\$).*$\", reCaseSensitive = False}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_strings\",Context {cName = \"find_strings\", cSyntax = \"Fortran\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Fortran\",\"string_1\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Fortran\",\"string_2\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_symbols\",Context {cName = \"find_symbols\", cSyntax = \"Fortran\", cRules = [Rule {rMatcher = Detect2Chars '*' '*', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '(' '/', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '/' ')', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"&+-*/=?[]^{|}~\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"(),\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"format_stmnt\",Context {cName = \"format_stmnt\", cSyntax = \"Fortran\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Fortran\",\"format_stmnt\")]},Rule {rMatcher = DetectChar ')', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[0-9]*/\", reCaseSensitive = False}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \":\", rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Fortran\",\"find_strings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Fortran\",\"find_symbols\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"inside_func_paren\",Context {cName = \"inside_func_paren\", cSyntax = \"Fortran\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Fortran\",\"inside_func_paren\")]},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Fortran\",\"find_strings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Fortran\",\"find_intrinsics\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Fortran\",\"find_numbers\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"string_1\",Context {cName = \"string_1\", cSyntax = \"Fortran\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[^']*'\", reCaseSensitive = False}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"&\\\\s*$\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Fortran\",\"end_of_string\")]},Rule {rMatcher = RegExpr (RE {reString = \".*(?=&\\\\s*$)\", reCaseSensitive = False}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Fortran\",\"end_of_string\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"string_2\",Context {cName = \"string_2\", cSyntax = \"Fortran\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[^\\\"]*\\\"\", reCaseSensitive = False}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"&\\\\s*$\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Fortran\",\"end_of_string\")]},Rule {rMatcher = RegExpr (RE {reString = \".*(?=&\\\\s*$)\", reCaseSensitive = False}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Fortran\",\"end_of_string\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False})], sAuthor = \"Franchin Matteo (fnch@libero.it)\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [\"*.f\",\"*.F\",\"*.for\",\"*.FOR\",\"*.f90\",\"*.F90\",\"*.fpp\",\"*.FPP\",\"*.f95\",\"*.F95\"], sStartingContext = \"default\"}"
diff --git a/src/Skylighting/Syntax/Fsharp.hs b/src/Skylighting/Syntax/Fsharp.hs
--- a/src/Skylighting/Syntax/Fsharp.hs
+++ b/src/Skylighting/Syntax/Fsharp.hs
@@ -2,1253 +2,6 @@
 module Skylighting.Syntax.Fsharp (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "FSharp"
-  , sFilename = "fsharp.xml"
-  , sShortname = "Fsharp"
-  , sContexts =
-      fromList
-        [ ( "Block"
-          , Context
-              { cName = "Block"
-              , cSyntax = "FSharp"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "end" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "FSharp" , "Normal" )
-                      , 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
-              }
-          )
-        , ( "Camlp4 Quotation Constant"
-          , Context
-              { cName = "Camlp4 Quotation Constant"
-              , cSyntax = "FSharp"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '>' '>'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '<' '<'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "FSharp" , "Camlp4 Quotation Constant" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "<:[A-Za-z\\300-\\326\\330-\\366\\370-\\377_][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*<"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "<:[A-Za-z\\300-\\326\\330-\\366\\370-\\377_][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*<")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "FSharp" , "Camlp4 Quotation Constant" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(\\\\|>>|<<)"
-                              , reCompiled = Just (compileRegex True "\\\\(\\\\|>>|<<)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\<:[A-Za-z\\300-\\326\\330-\\366\\370-\\377_][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*<"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\<:[A-Za-z\\300-\\326\\330-\\366\\370-\\377_][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*<")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ModuleEnv"
-          , Context
-              { cName = "ModuleEnv"
-              , cSyntax = "FSharp"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "[A-Z][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*\\s*\\."
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "[A-Z][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*\\s*\\.")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "FSharp" , "ModuleEnv2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Z][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "[A-Z][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "ModuleEnv2"
-          , Context
-              { cName = "ModuleEnv2"
-              , cSyntax = "FSharp"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Z][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "[A-Z][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*")
-                              , reCaseSensitive = True
-                              }
-                      , 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 = StringDetect "."
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Multiline Comment"
-          , Context
-              { cName = "Multiline Comment"
-              , cSyntax = "FSharp"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' ')'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '(' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "FSharp" , "Multiline Comment" ) ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "FSharp"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '(' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "FSharp" , "Multiline Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "FSharp" , "Singleline Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '[' '<'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '>' ']'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '[' '|'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '|' ']'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "do" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "done" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "module" , "open" ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "FSharp" , "ModuleEnv" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "begin" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "FSharp" , "Block" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "object" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "FSharp" , "Object" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "sig" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "FSharp" , "Sig" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "struct" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "FSharp" , "Struct" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "`\\s*[A-Za-z\\300-\\326\\330-\\366\\370-\\377_][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "`\\s*[A-Za-z\\300-\\326\\330-\\366\\370-\\377_][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "[A-Z][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*\\s*\\."
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "[A-Z][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*\\s*\\.")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "FSharp" , "ModuleEnv2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Z][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "[A-Z][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "#[A-Za-z\\300-\\326\\330-\\366\\370-\\377_][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*.*$"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "#[A-Za-z\\300-\\326\\330-\\366\\370-\\377_][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "FSharp" , "String Constant" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "'((\\\\[ntbr'\"\\\\]|\\\\[0-9]{3}|\\\\x[0-9A-Fa-f]{2})|[^'])'"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "'((\\\\[ntbr'\"\\\\]|\\\\[0-9]{3}|\\\\x[0-9A-Fa-f]{2})|[^'])'")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '<' '<'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "FSharp" , "Camlp4 Quotation Constant" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "<:[A-Za-z\\300-\\326\\330-\\366\\370-\\377_][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*<"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "<:[A-Za-z\\300-\\326\\330-\\366\\370-\\377_][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*<")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "FSharp" , "Camlp4 Quotation Constant" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "abstract"
-                               , "and"
-                               , "as"
-                               , "assert"
-                               , "base"
-                               , "class"
-                               , "delegate"
-                               , "dowcast"
-                               , "downto"
-                               , "elif"
-                               , "else"
-                               , "exception"
-                               , "extern"
-                               , "false"
-                               , "for"
-                               , "fun"
-                               , "function"
-                               , "functor"
-                               , "global"
-                               , "if"
-                               , "in"
-                               , "inherit"
-                               , "inline"
-                               , "interfaece"
-                               , "internal"
-                               , "lazy"
-                               , "let"
-                               , "match"
-                               , "member"
-                               , "mutable"
-                               , "namespace"
-                               , "new"
-                               , "not"
-                               , "null"
-                               , "of"
-                               , "or"
-                               , "override"
-                               , "private"
-                               , "public"
-                               , "rec"
-                               , "ref"
-                               , "return"
-                               , "static"
-                               , "then"
-                               , "to"
-                               , "true"
-                               , "try"
-                               , "type"
-                               , "upcast"
-                               , "use"
-                               , "val"
-                               , "void"
-                               , "when"
-                               , "while"
-                               , "with"
-                               , "yield"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "bigint"
-                               , "bool"
-                               , "byte"
-                               , "char"
-                               , "decimal"
-                               , "double"
-                               , "float"
-                               , "float32"
-                               , "int"
-                               , "int16"
-                               , "int64"
-                               , "nativeint"
-                               , "option"
-                               , "sbyte"
-                               , "seq"
-                               , "single"
-                               , "string"
-                               , "uint16"
-                               , "uint32"
-                               , "uint64"
-                               , "unativeint"
-                               , "unit"
-                               , "void"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "[A-Za-z\\300-\\326\\330-\\366\\370-\\377_][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "[A-Za-z\\300-\\326\\330-\\366\\370-\\377_][A-Za-z\\300-\\326\\330-\\366\\370-\\3770-9_']*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-?0[xX][0-9A-Fa-f_]+"
-                              , reCompiled = Just (compileRegex True "-?0[xX][0-9A-Fa-f_]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-?0[oO][0-7_]+"
-                              , reCompiled = Just (compileRegex True "-?0[oO][0-7_]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-?0[bB][01_]+"
-                              , reCompiled = Just (compileRegex True "-?0[bB][01_]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "-?[0-9][0-9_]*((\\.([0-9][0-9_]*)?([eE][-+]?[0-9][0-9_]*)?)|([eE][-+]?[0-9][0-9_]*))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "-?[0-9][0-9_]*((\\.([0-9][0-9_]*)?([eE][-+]?[0-9][0-9_]*)?)|([eE][-+]?[0-9][0-9_]*))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-?[0-9][0-9_]*"
-                              , reCompiled = Just (compileRegex True "-?[0-9][0-9_]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Object"
-          , Context
-              { cName = "Object"
-              , cSyntax = "FSharp"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "end" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "FSharp" , "Normal" )
-                      , 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
-              }
-          )
-        , ( "Sig"
-          , Context
-              { cName = "Sig"
-              , cSyntax = "FSharp"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "end" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "FSharp" , "Normal" )
-                      , 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
-              }
-          )
-        , ( "Singleline Comment"
-          , Context
-              { cName = "Singleline Comment"
-              , cSyntax = "FSharp"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String Constant"
-          , Context
-              { cName = "String Constant"
-              , cSyntax = "FSharp"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\\\[ntbr'\"\\\\]|\\\\[0-9]{3}|\\\\x[0-9A-Fa-f]{2})"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(\\\\[ntbr'\"\\\\]|\\\\[0-9]{3}|\\\\x[0-9A-Fa-f]{2})")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\$"
-                              , reCompiled = Just (compileRegex True "\\\\$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Struct"
-          , Context
-              { cName = "Struct"
-              , cSyntax = "FSharp"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "end" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "FSharp" , "Normal" )
-                      , 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
-              }
-          )
-        ]
-  , sAuthor = "Bas Bossink (bas.bossink@gmail.com)"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.fs" , "*.fsi" , "*.fsx" ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"FSharp\", sFilename = \"fsharp.xml\", sShortname = \"Fsharp\", sContexts = fromList [(\"Block\",Context {cName = \"Block\", cSyntax = \"FSharp\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"end\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"FSharp\",\"Normal\"), 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}),(\"Camlp4 Quotation Constant\",Context {cName = \"Camlp4 Quotation Constant\", cSyntax = \"FSharp\", cRules = [Rule {rMatcher = Detect2Chars '>' '>', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '<' '<', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"FSharp\",\"Camlp4 Quotation Constant\")]},Rule {rMatcher = RegExpr (RE {reString = \"<:[A-Za-z\\\\300-\\\\326\\\\330-\\\\366\\\\370-\\\\377_][A-Za-z\\\\300-\\\\326\\\\330-\\\\366\\\\370-\\\\3770-9_']*<\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"FSharp\",\"Camlp4 Quotation Constant\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(\\\\\\\\|>>|<<)\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\<:[A-Za-z\\\\300-\\\\326\\\\330-\\\\366\\\\370-\\\\377_][A-Za-z\\\\300-\\\\326\\\\330-\\\\366\\\\370-\\\\3770-9_']*<\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ModuleEnv\",Context {cName = \"ModuleEnv\", cSyntax = \"FSharp\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[A-Z][A-Za-z\\\\300-\\\\326\\\\330-\\\\366\\\\370-\\\\3770-9_']*\\\\s*\\\\.\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"FSharp\",\"ModuleEnv2\")]},Rule {rMatcher = RegExpr (RE {reString = \"[A-Z][A-Za-z\\\\300-\\\\326\\\\330-\\\\366\\\\370-\\\\3770-9_']*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"ModuleEnv2\",Context {cName = \"ModuleEnv2\", cSyntax = \"FSharp\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[A-Z][A-Za-z\\\\300-\\\\326\\\\330-\\\\366\\\\370-\\\\3770-9_']*\", reCaseSensitive = True}), 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 = StringDetect \".\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Multiline Comment\",Context {cName = \"Multiline Comment\", cSyntax = \"FSharp\", cRules = [Rule {rMatcher = Detect2Chars '*' ')', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '(' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"FSharp\",\"Multiline Comment\")]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"FSharp\", cRules = [Rule {rMatcher = Detect2Chars '(' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"FSharp\",\"Multiline Comment\")]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"FSharp\",\"Singleline Comment\")]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '[' '<', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '>' ']', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '[' '|', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '|' ']', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ']', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"do\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"done\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"module\",\"open\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"FSharp\",\"ModuleEnv\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"begin\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"FSharp\",\"Block\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"object\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"FSharp\",\"Object\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"sig\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"FSharp\",\"Sig\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"struct\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"FSharp\",\"Struct\")]},Rule {rMatcher = RegExpr (RE {reString = \"`\\\\s*[A-Za-z\\\\300-\\\\326\\\\330-\\\\366\\\\370-\\\\377_][A-Za-z\\\\300-\\\\326\\\\330-\\\\366\\\\370-\\\\3770-9_']*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[A-Z][A-Za-z\\\\300-\\\\326\\\\330-\\\\366\\\\370-\\\\3770-9_']*\\\\s*\\\\.\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"FSharp\",\"ModuleEnv2\")]},Rule {rMatcher = RegExpr (RE {reString = \"[A-Z][A-Za-z\\\\300-\\\\326\\\\330-\\\\366\\\\370-\\\\3770-9_']*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#[A-Za-z\\\\300-\\\\326\\\\330-\\\\366\\\\370-\\\\377_][A-Za-z\\\\300-\\\\326\\\\330-\\\\366\\\\370-\\\\3770-9_']*.*$\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"FSharp\",\"String Constant\")]},Rule {rMatcher = RegExpr (RE {reString = \"'((\\\\\\\\[ntbr'\\\"\\\\\\\\]|\\\\\\\\[0-9]{3}|\\\\\\\\x[0-9A-Fa-f]{2})|[^'])'\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '<' '<', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"FSharp\",\"Camlp4 Quotation Constant\")]},Rule {rMatcher = RegExpr (RE {reString = \"<:[A-Za-z\\\\300-\\\\326\\\\330-\\\\366\\\\370-\\\\377_][A-Za-z\\\\300-\\\\326\\\\330-\\\\366\\\\370-\\\\3770-9_']*<\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"FSharp\",\"Camlp4 Quotation Constant\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"abstract\",\"and\",\"as\",\"assert\",\"base\",\"class\",\"delegate\",\"dowcast\",\"downto\",\"elif\",\"else\",\"exception\",\"extern\",\"false\",\"for\",\"fun\",\"function\",\"functor\",\"global\",\"if\",\"in\",\"inherit\",\"inline\",\"interfaece\",\"internal\",\"lazy\",\"let\",\"match\",\"member\",\"mutable\",\"namespace\",\"new\",\"not\",\"null\",\"of\",\"or\",\"override\",\"private\",\"public\",\"rec\",\"ref\",\"return\",\"static\",\"then\",\"to\",\"true\",\"try\",\"type\",\"upcast\",\"use\",\"val\",\"void\",\"when\",\"while\",\"with\",\"yield\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"bigint\",\"bool\",\"byte\",\"char\",\"decimal\",\"double\",\"float\",\"float32\",\"int\",\"int16\",\"int64\",\"nativeint\",\"option\",\"sbyte\",\"seq\",\"single\",\"string\",\"uint16\",\"uint32\",\"uint64\",\"unativeint\",\"unit\",\"void\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[A-Za-z\\\\300-\\\\326\\\\330-\\\\366\\\\370-\\\\377_][A-Za-z\\\\300-\\\\326\\\\330-\\\\366\\\\370-\\\\3770-9_']*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-?0[xX][0-9A-Fa-f_]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-?0[oO][0-7_]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-?0[bB][01_]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-?[0-9][0-9_]*((\\\\.([0-9][0-9_]*)?([eE][-+]?[0-9][0-9_]*)?)|([eE][-+]?[0-9][0-9_]*))\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-?[0-9][0-9_]*\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Object\",Context {cName = \"Object\", cSyntax = \"FSharp\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"end\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"FSharp\",\"Normal\"), 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}),(\"Sig\",Context {cName = \"Sig\", cSyntax = \"FSharp\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"end\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"FSharp\",\"Normal\"), 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}),(\"Singleline Comment\",Context {cName = \"Singleline Comment\", cSyntax = \"FSharp\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String Constant\",Context {cName = \"String Constant\", cSyntax = \"FSharp\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\\\\\[ntbr'\\\"\\\\\\\\]|\\\\\\\\[0-9]{3}|\\\\\\\\x[0-9A-Fa-f]{2})\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\$\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Struct\",Context {cName = \"Struct\", cSyntax = \"FSharp\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"end\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"FSharp\",\"Normal\"), 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})], sAuthor = \"Bas Bossink (bas.bossink@gmail.com)\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [\"*.fs\",\"*.fsi\",\"*.fsx\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Gcc.hs b/src/Skylighting/Syntax/Gcc.hs
--- a/src/Skylighting/Syntax/Gcc.hs
+++ b/src/Skylighting/Syntax/Gcc.hs
@@ -2,1206 +2,6 @@
 module Skylighting.Syntax.Gcc (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "GCCExtensions"
-  , sFilename = "gcc.xml"
-  , sShortname = "Gcc"
-  , sContexts =
-      fromList
-        [ ( "AttrArgs"
-          , Context
-              { cName = "AttrArgs"
-              , cSyntax = "GCCExtensions"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '(' '('
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars ')' ')'
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "GCCExtensions" , "Close" ) ]
-                      }
-                  ]
-              , cAttribute = ExtensionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "AttrStringArg"
-          , Context
-              { cName = "AttrStringArg"
-              , cSyntax = "GCCExtensions"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Close"
-          , Context
-              { cName = "Close"
-              , cSyntax = "GCCExtensions"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "GCCExtensions" , "AttrStringArg" ) ]
-                      }
-                  ]
-              , cAttribute = ExtensionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "DetectGccExtensions"
-          , Context
-              { cName = "DetectGccExtensions"
-              , cSyntax = "GCCExtensions"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "_FORTIFY_SOURCE"
-                               , "_GNU_SOURCE"
-                               , "_ILP32"
-                               , "_LP64"
-                               , "_REENTRANT"
-                               , "_STDC_PREDEF_H"
-                               , "__3dNOW_A__"
-                               , "__3dNOW__"
-                               , "__ABM__"
-                               , "__ADX__"
-                               , "__AES__"
-                               , "__ATOMIC_ACQUIRE"
-                               , "__ATOMIC_ACQ_REL"
-                               , "__ATOMIC_CONSUME"
-                               , "__ATOMIC_HLE_ACQUIRE"
-                               , "__ATOMIC_HLE_RELEASE"
-                               , "__ATOMIC_RELAXED"
-                               , "__ATOMIC_RELEASE"
-                               , "__ATOMIC_SEQ_CST"
-                               , "__AVX2__"
-                               , "__AVX__"
-                               , "__BASE_FILE__"
-                               , "__BIGGEST_ALIGNMENT__"
-                               , "__BMI2__"
-                               , "__BMI__"
-                               , "__BYTE_ORDER__"
-                               , "__CHAR16_TYPE__"
-                               , "__CHAR32_TYPE__"
-                               , "__CHAR_BIT__"
-                               , "__CHAR_UNSIGNED__"
-                               , "__COUNTER__"
-                               , "__DBL_DECIMAL_DIG__"
-                               , "__DBL_DENORM_MIN__"
-                               , "__DBL_DIG__"
-                               , "__DBL_EPSILON__"
-                               , "__DBL_HAS_DENORM__"
-                               , "__DBL_HAS_INFINITY__"
-                               , "__DBL_HAS_QUIET_NAN__"
-                               , "__DBL_MANT_DIG__"
-                               , "__DBL_MAX_10_EXP__"
-                               , "__DBL_MAX_EXP__"
-                               , "__DBL_MAX__"
-                               , "__DBL_MIN_10_EXP__"
-                               , "__DBL_MIN_EXP__"
-                               , "__DBL_MIN__"
-                               , "__DEC128_EPSILON__"
-                               , "__DEC128_MANT_DIG__"
-                               , "__DEC128_MAX_EXP__"
-                               , "__DEC128_MAX__"
-                               , "__DEC128_MIN_EXP__"
-                               , "__DEC128_MIN__"
-                               , "__DEC128_SUBNORMAL_MIN__"
-                               , "__DEC32_EPSILON__"
-                               , "__DEC32_MANT_DIG__"
-                               , "__DEC32_MAX_EXP__"
-                               , "__DEC32_MAX__"
-                               , "__DEC32_MIN_EXP__"
-                               , "__DEC32_MIN__"
-                               , "__DEC32_SUBNORMAL_MIN__"
-                               , "__DEC64_EPSILON__"
-                               , "__DEC64_MANT_DIG__"
-                               , "__DEC64_MAX_EXP__"
-                               , "__DEC64_MAX__"
-                               , "__DEC64_MIN_EXP__"
-                               , "__DEC64_MIN__"
-                               , "__DEC64_SUBNORMAL_MIN__"
-                               , "__DECIMAL_BID_FORMAT__"
-                               , "__DECIMAL_DIG__"
-                               , "__DEC_EVAL_METHOD__"
-                               , "__DEPRECATED"
-                               , "__ELF__"
-                               , "__EXCEPTIONS"
-                               , "__F16C__"
-                               , "__FAST_MATH__"
-                               , "__FINITE_MATH_ONLY__"
-                               , "__FLOAT_WORD_ORDER__"
-                               , "__FLT_DECIMAL_DIG__"
-                               , "__FLT_DENORM_MIN__"
-                               , "__FLT_DIG__"
-                               , "__FLT_EPSILON__"
-                               , "__FLT_EVAL_METHOD__"
-                               , "__FLT_HAS_DENORM__"
-                               , "__FLT_HAS_INFINITY__"
-                               , "__FLT_HAS_QUIET_NAN__"
-                               , "__FLT_MANT_DIG__"
-                               , "__FLT_MAX_10_EXP__"
-                               , "__FLT_MAX_EXP__"
-                               , "__FLT_MAX__"
-                               , "__FLT_MIN_10_EXP__"
-                               , "__FLT_MIN_EXP__"
-                               , "__FLT_MIN__"
-                               , "__FLT_RADIX__"
-                               , "__FMA4__"
-                               , "__FMA__"
-                               , "__FP_FAST_FMA"
-                               , "__FP_FAST_FMAF"
-                               , "__FSGSBASE__"
-                               , "__FUNCTION__"
-                               , "__FXSR__"
-                               , "__GCC_ATOMIC_BOOL_LOCK_FREE"
-                               , "__GCC_ATOMIC_CHAR16_T_LOCK_FREE"
-                               , "__GCC_ATOMIC_CHAR32_T_LOCK_FREE"
-                               , "__GCC_ATOMIC_CHAR_LOCK_FREE"
-                               , "__GCC_ATOMIC_INT_LOCK_FREE"
-                               , "__GCC_ATOMIC_LLONG_LOCK_FREE"
-                               , "__GCC_ATOMIC_LONG_LOCK_FREE"
-                               , "__GCC_ATOMIC_POINTER_LOCK_FREE"
-                               , "__GCC_ATOMIC_SHORT_LOCK_FREE"
-                               , "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL"
-                               , "__GCC_ATOMIC_WCHAR_T_LOCK_FREE"
-                               , "__GCC_HAVE_DWARF2_CFI_ASM"
-                               , "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1"
-                               , "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16"
-                               , "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2"
-                               , "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4"
-                               , "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8"
-                               , "__GFORTRAN__"
-                               , "__GNUC_GNU_INLINE__"
-                               , "__GNUC_MINOR__"
-                               , "__GNUC_PATCHLEVEL__"
-                               , "__GNUC_STDC_INLINE__"
-                               , "__GNUC__"
-                               , "__GNUG__"
-                               , "__GXX_ABI_VERSION"
-                               , "__GXX_EXPERIMENTAL_CXX0X__"
-                               , "__GXX_RTTI"
-                               , "__GXX_WEAK__"
-                               , "__ILP32__"
-                               , "__INCLUDE_LEVEL__"
-                               , "__INT16_C"
-                               , "__INT16_MAX__"
-                               , "__INT16_TYPE__"
-                               , "__INT32_C"
-                               , "__INT32_MAX__"
-                               , "__INT32_TYPE__"
-                               , "__INT64_C"
-                               , "__INT64_MAX__"
-                               , "__INT64_TYPE__"
-                               , "__INT8_C"
-                               , "__INT8_MAX__"
-                               , "__INT8_TYPE__"
-                               , "__INTMAX_C"
-                               , "__INTMAX_MAX__"
-                               , "__INTMAX_TYPE__"
-                               , "__INTPTR_MAX__"
-                               , "__INTPTR_TYPE__"
-                               , "__INT_FAST16_MAX__"
-                               , "__INT_FAST16_TYPE__"
-                               , "__INT_FAST32_MAX__"
-                               , "__INT_FAST32_TYPE__"
-                               , "__INT_FAST64_MAX__"
-                               , "__INT_FAST64_TYPE__"
-                               , "__INT_FAST8_MAX__"
-                               , "__INT_FAST8_TYPE__"
-                               , "__INT_LEAST16_MAX__"
-                               , "__INT_LEAST16_TYPE__"
-                               , "__INT_LEAST32_MAX__"
-                               , "__INT_LEAST32_TYPE__"
-                               , "__INT_LEAST64_MAX__"
-                               , "__INT_LEAST64_TYPE__"
-                               , "__INT_LEAST8_MAX__"
-                               , "__INT_LEAST8_TYPE__"
-                               , "__INT_MAX__"
-                               , "__LDBL_DENORM_MIN__"
-                               , "__LDBL_DIG__"
-                               , "__LDBL_EPSILON__"
-                               , "__LDBL_HAS_DENORM__"
-                               , "__LDBL_HAS_INFINITY__"
-                               , "__LDBL_HAS_QUIET_NAN__"
-                               , "__LDBL_MANT_DIG__"
-                               , "__LDBL_MAX_10_EXP__"
-                               , "__LDBL_MAX_EXP__"
-                               , "__LDBL_MAX__"
-                               , "__LDBL_MIN_10_EXP__"
-                               , "__LDBL_MIN_EXP__"
-                               , "__LDBL_MIN__"
-                               , "__LONG_LONG_MAX__"
-                               , "__LONG_MAX__"
-                               , "__LP64__"
-                               , "__LWP__"
-                               , "__LZCNT__"
-                               , "__MMX__"
-                               , "__NEXT_RUNTIME__"
-                               , "__NO_INLINE__"
-                               , "__OPTIMIZE_SIZE__"
-                               , "__OPTIMIZE__"
-                               , "__ORDER_BIG_ENDIAN__"
-                               , "__ORDER_LITTLE_ENDIAN__"
-                               , "__ORDER_PDP_ENDIAN__"
-                               , "__PCLMUL__"
-                               , "__PIC__"
-                               , "__PIE__"
-                               , "__POPCNT__"
-                               , "__PRAGMA_REDEFINE_EXTNAME"
-                               , "__PRETTY_FUNCTION__"
-                               , "__PRFCHW__"
-                               , "__PTRDIFF_MAX__"
-                               , "__PTRDIFF_TYPE__"
-                               , "__RDRND__"
-                               , "__RDSEED__"
-                               , "__REGISTER_PREFIX__"
-                               , "__RTM__"
-                               , "__SANITIZE_ADDRESS__"
-                               , "__SCHAR_MAX__"
-                               , "__SHRT_MAX__"
-                               , "__SIG_ATOMIC_MAX__"
-                               , "__SIG_ATOMIC_MIN__"
-                               , "__SIG_ATOMIC_TYPE__"
-                               , "__SIZEOF_DOUBLE__"
-                               , "__SIZEOF_FLOAT__"
-                               , "__SIZEOF_INT128__"
-                               , "__SIZEOF_INT__"
-                               , "__SIZEOF_LONG_DOUBLE__"
-                               , "__SIZEOF_LONG_LONG__"
-                               , "__SIZEOF_LONG__"
-                               , "__SIZEOF_POINTER__"
-                               , "__SIZEOF_PTRDIFF_T__"
-                               , "__SIZEOF_SHORT__"
-                               , "__SIZEOF_SIZE_T__"
-                               , "__SIZEOF_WCHAR_T__"
-                               , "__SIZEOF_WINT_T__"
-                               , "__SIZE_MAX__"
-                               , "__SIZE_TYPE__"
-                               , "__SSE2_MATH__"
-                               , "__SSE2__"
-                               , "__SSE3__"
-                               , "__SSE4A__"
-                               , "__SSE4_1__"
-                               , "__SSE4_2__"
-                               , "__SSE_MATH__"
-                               , "__SSE__"
-                               , "__SSP_ALL__"
-                               , "__SSP__"
-                               , "__SSSE3__"
-                               , "__STDC_HOSTED__"
-                               , "__STDC_IEC_559_COMPLEX__"
-                               , "__STDC_IEC_559__"
-                               , "__STDC_ISO_10646__"
-                               , "__STDC_NO_THREADS__"
-                               , "__STDC_UTF_16__"
-                               , "__STDC_UTF_32__"
-                               , "__STDC_VERSION__"
-                               , "__STDC__"
-                               , "__STRICT_ANSI__"
-                               , "__TBM__"
-                               , "__TIMESTAMP__"
-                               , "__UINT16_C"
-                               , "__UINT16_MAX__"
-                               , "__UINT16_TYPE__"
-                               , "__UINT32_C"
-                               , "__UINT32_MAX__"
-                               , "__UINT32_TYPE__"
-                               , "__UINT64_C"
-                               , "__UINT64_MAX__"
-                               , "__UINT64_TYPE__"
-                               , "__UINT8_C"
-                               , "__UINT8_MAX__"
-                               , "__UINT8_TYPE__"
-                               , "__UINTMAX_C"
-                               , "__UINTMAX_MAX__"
-                               , "__UINTMAX_TYPE__"
-                               , "__UINTPTR_MAX__"
-                               , "__UINTPTR_TYPE__"
-                               , "__UINT_FAST16_MAX__"
-                               , "__UINT_FAST16_TYPE__"
-                               , "__UINT_FAST32_MAX__"
-                               , "__UINT_FAST32_TYPE__"
-                               , "__UINT_FAST64_MAX__"
-                               , "__UINT_FAST64_TYPE__"
-                               , "__UINT_FAST8_MAX__"
-                               , "__UINT_FAST8_TYPE__"
-                               , "__UINT_LEAST16_MAX__"
-                               , "__UINT_LEAST16_TYPE__"
-                               , "__UINT_LEAST32_MAX__"
-                               , "__UINT_LEAST32_TYPE__"
-                               , "__UINT_LEAST64_MAX__"
-                               , "__UINT_LEAST64_TYPE__"
-                               , "__UINT_LEAST8_MAX__"
-                               , "__UINT_LEAST8_TYPE__"
-                               , "__USER_LABEL_PREFIX__"
-                               , "__USING_SJLJ_EXCEPTIONS__"
-                               , "__VA_ARGS__"
-                               , "__VERSION__"
-                               , "__WCHAR_MAX__"
-                               , "__WCHAR_MIN__"
-                               , "__WCHAR_TYPE__"
-                               , "__WCHAR_UNSIGNED__"
-                               , "__WINT_MAX__"
-                               , "__WINT_MIN__"
-                               , "__WINT_TYPE__"
-                               , "__XOP__"
-                               , "__XSAVEOPT__"
-                               , "__XSAVE__"
-                               , "__amd64"
-                               , "__amd64__"
-                               , "__amdfam10"
-                               , "__amdfam10__"
-                               , "__athlon"
-                               , "__athlon__"
-                               , "__athlon_sse__"
-                               , "__atom"
-                               , "__atom__"
-                               , "__bdver1"
-                               , "__bdver1__"
-                               , "__bdver2"
-                               , "__bdver2__"
-                               , "__bdver3"
-                               , "__bdver3__"
-                               , "__btver1"
-                               , "__btver1__"
-                               , "__btver2"
-                               , "__btver2__"
-                               , "__code_model_32__"
-                               , "__code_model_small__"
-                               , "__core2"
-                               , "__core2__"
-                               , "__core_avx2"
-                               , "__core_avx2__"
-                               , "__corei7"
-                               , "__corei7__"
-                               , "__cplusplus"
-                               , "__geode"
-                               , "__geode__"
-                               , "__gnu_linux__"
-                               , "__i386"
-                               , "__i386__"
-                               , "__i486"
-                               , "__i486__"
-                               , "__i586"
-                               , "__i586__"
-                               , "__i686"
-                               , "__i686__"
-                               , "__k6"
-                               , "__k6_2__"
-                               , "__k6_3__"
-                               , "__k6__"
-                               , "__k8"
-                               , "__k8__"
-                               , "__linux"
-                               , "__linux__"
-                               , "__nocona"
-                               , "__nocona__"
-                               , "__pentium"
-                               , "__pentium4"
-                               , "__pentium4__"
-                               , "__pentium__"
-                               , "__pentium_mmx__"
-                               , "__pentiumpro"
-                               , "__pentiumpro__"
-                               , "__pic__"
-                               , "__pie__"
-                               , "__tune_amdfam10__"
-                               , "__tune_athlon__"
-                               , "__tune_athlon_sse__"
-                               , "__tune_atom__"
-                               , "__tune_bdver1__"
-                               , "__tune_bdver2__"
-                               , "__tune_bdver3__"
-                               , "__tune_btver1__"
-                               , "__tune_btver2__"
-                               , "__tune_core2__"
-                               , "__tune_core_avx2__"
-                               , "__tune_corei7__"
-                               , "__tune_geode__"
-                               , "__tune_i386__"
-                               , "__tune_i486__"
-                               , "__tune_i586__"
-                               , "__tune_i686__"
-                               , "__tune_k6_2__"
-                               , "__tune_k6_3__"
-                               , "__tune_k6__"
-                               , "__tune_k8__"
-                               , "__tune_nocona__"
-                               , "__tune_pentium2__"
-                               , "__tune_pentium3__"
-                               , "__tune_pentium4__"
-                               , "__tune_pentium__"
-                               , "__tune_pentium_mmx__"
-                               , "__tune_pentiumpro__"
-                               , "__unix"
-                               , "__unix__"
-                               , "__x86_64"
-                               , "__x86_64__"
-                               , "i386"
-                               , "linux"
-                               , "unix"
-                               ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "__atomic_add_fetch"
-                               , "__atomic_always_lock_free"
-                               , "__atomic_and_fetch"
-                               , "__atomic_clear"
-                               , "__atomic_compare_exchange"
-                               , "__atomic_compare_exchange_n"
-                               , "__atomic_exchange"
-                               , "__atomic_exchange_n"
-                               , "__atomic_fetch_add"
-                               , "__atomic_fetch_and"
-                               , "__atomic_fetch_nand"
-                               , "__atomic_fetch_or"
-                               , "__atomic_fetch_sub"
-                               , "__atomic_fetch_xor"
-                               , "__atomic_is_lock_free"
-                               , "__atomic_load"
-                               , "__atomic_load_n"
-                               , "__atomic_nand_fetch"
-                               , "__atomic_or_fetch"
-                               , "__atomic_signal_fence"
-                               , "__atomic_store"
-                               , "__atomic_store_n"
-                               , "__atomic_sub_fetch"
-                               , "__atomic_test_and_set"
-                               , "__atomic_thread_fence"
-                               , "__atomic_xor_fetch"
-                               , "__has_nothrow_assign"
-                               , "__has_nothrow_constructor"
-                               , "__has_nothrow_copy"
-                               , "__has_trivial_assign"
-                               , "__has_trivial_constructor"
-                               , "__has_trivial_copy"
-                               , "__has_trivial_destructor"
-                               , "__has_virtual_destructor"
-                               , "__is_abstract"
-                               , "__is_base_of"
-                               , "__is_class"
-                               , "__is_empty"
-                               , "__is_enum"
-                               , "__is_pod"
-                               , "__is_polymorphic"
-                               , "__is_union"
-                               , "__sync_add_and_fetch"
-                               , "__sync_and_and_fetch"
-                               , "__sync_bool_compare_and_swap"
-                               , "__sync_fetch_and_add"
-                               , "__sync_fetch_and_and"
-                               , "__sync_fetch_and_nand"
-                               , "__sync_fetch_and_or"
-                               , "__sync_fetch_and_sub"
-                               , "__sync_fetch_and_xor"
-                               , "__sync_lock_release"
-                               , "__sync_lock_test_and_set"
-                               , "__sync_nand_and_fetch"
-                               , "__sync_or_and_fetch"
-                               , "__sync_sub_and_fetch"
-                               , "__sync_synchronize"
-                               , "__sync_val_compare_and_swap"
-                               , "__sync_xor_and_fetch"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "_Accum"
-                               , "_Decimal128"
-                               , "_Decimal32"
-                               , "_Decimal64"
-                               , "_Fract"
-                               , "_Sat"
-                               , "__float128"
-                               , "__float80"
-                               , "__fp16"
-                               , "__int128"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "__attribute__"
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "GCCExtensions" , "AttrArgs" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "__declspec"
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "GCCExtensions" , "AttrArgs" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "__alignof__"
-                               , "__asm__"
-                               , "__complex__"
-                               , "__const__"
-                               , "__extension__"
-                               , "__imag__"
-                               , "__inline__"
-                               , "__label__"
-                               , "__real__"
-                               , "__restrict"
-                               , "__restrict__"
-                               , "__thread"
-                               , "__typeof__"
-                               , "typeof"
-                               ])
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "__builtin_[a-zA-Z0-9_]+"
-                              , reCompiled = Just (compileRegex True "__builtin_[a-zA-Z0-9_]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "0[Bb][01]+([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "0[Bb][01]+([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "GNUMacros"
-          , Context
-              { cName = "GNUMacros"
-              , cSyntax = "GCCExtensions"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "_FORTIFY_SOURCE"
-                               , "_GNU_SOURCE"
-                               , "_ILP32"
-                               , "_LP64"
-                               , "_REENTRANT"
-                               , "_STDC_PREDEF_H"
-                               , "__3dNOW_A__"
-                               , "__3dNOW__"
-                               , "__ABM__"
-                               , "__ADX__"
-                               , "__AES__"
-                               , "__ATOMIC_ACQUIRE"
-                               , "__ATOMIC_ACQ_REL"
-                               , "__ATOMIC_CONSUME"
-                               , "__ATOMIC_HLE_ACQUIRE"
-                               , "__ATOMIC_HLE_RELEASE"
-                               , "__ATOMIC_RELAXED"
-                               , "__ATOMIC_RELEASE"
-                               , "__ATOMIC_SEQ_CST"
-                               , "__AVX2__"
-                               , "__AVX__"
-                               , "__BASE_FILE__"
-                               , "__BIGGEST_ALIGNMENT__"
-                               , "__BMI2__"
-                               , "__BMI__"
-                               , "__BYTE_ORDER__"
-                               , "__CHAR16_TYPE__"
-                               , "__CHAR32_TYPE__"
-                               , "__CHAR_BIT__"
-                               , "__CHAR_UNSIGNED__"
-                               , "__COUNTER__"
-                               , "__DBL_DECIMAL_DIG__"
-                               , "__DBL_DENORM_MIN__"
-                               , "__DBL_DIG__"
-                               , "__DBL_EPSILON__"
-                               , "__DBL_HAS_DENORM__"
-                               , "__DBL_HAS_INFINITY__"
-                               , "__DBL_HAS_QUIET_NAN__"
-                               , "__DBL_MANT_DIG__"
-                               , "__DBL_MAX_10_EXP__"
-                               , "__DBL_MAX_EXP__"
-                               , "__DBL_MAX__"
-                               , "__DBL_MIN_10_EXP__"
-                               , "__DBL_MIN_EXP__"
-                               , "__DBL_MIN__"
-                               , "__DEC128_EPSILON__"
-                               , "__DEC128_MANT_DIG__"
-                               , "__DEC128_MAX_EXP__"
-                               , "__DEC128_MAX__"
-                               , "__DEC128_MIN_EXP__"
-                               , "__DEC128_MIN__"
-                               , "__DEC128_SUBNORMAL_MIN__"
-                               , "__DEC32_EPSILON__"
-                               , "__DEC32_MANT_DIG__"
-                               , "__DEC32_MAX_EXP__"
-                               , "__DEC32_MAX__"
-                               , "__DEC32_MIN_EXP__"
-                               , "__DEC32_MIN__"
-                               , "__DEC32_SUBNORMAL_MIN__"
-                               , "__DEC64_EPSILON__"
-                               , "__DEC64_MANT_DIG__"
-                               , "__DEC64_MAX_EXP__"
-                               , "__DEC64_MAX__"
-                               , "__DEC64_MIN_EXP__"
-                               , "__DEC64_MIN__"
-                               , "__DEC64_SUBNORMAL_MIN__"
-                               , "__DECIMAL_BID_FORMAT__"
-                               , "__DECIMAL_DIG__"
-                               , "__DEC_EVAL_METHOD__"
-                               , "__DEPRECATED"
-                               , "__ELF__"
-                               , "__EXCEPTIONS"
-                               , "__F16C__"
-                               , "__FAST_MATH__"
-                               , "__FINITE_MATH_ONLY__"
-                               , "__FLOAT_WORD_ORDER__"
-                               , "__FLT_DECIMAL_DIG__"
-                               , "__FLT_DENORM_MIN__"
-                               , "__FLT_DIG__"
-                               , "__FLT_EPSILON__"
-                               , "__FLT_EVAL_METHOD__"
-                               , "__FLT_HAS_DENORM__"
-                               , "__FLT_HAS_INFINITY__"
-                               , "__FLT_HAS_QUIET_NAN__"
-                               , "__FLT_MANT_DIG__"
-                               , "__FLT_MAX_10_EXP__"
-                               , "__FLT_MAX_EXP__"
-                               , "__FLT_MAX__"
-                               , "__FLT_MIN_10_EXP__"
-                               , "__FLT_MIN_EXP__"
-                               , "__FLT_MIN__"
-                               , "__FLT_RADIX__"
-                               , "__FMA4__"
-                               , "__FMA__"
-                               , "__FP_FAST_FMA"
-                               , "__FP_FAST_FMAF"
-                               , "__FSGSBASE__"
-                               , "__FUNCTION__"
-                               , "__FXSR__"
-                               , "__GCC_ATOMIC_BOOL_LOCK_FREE"
-                               , "__GCC_ATOMIC_CHAR16_T_LOCK_FREE"
-                               , "__GCC_ATOMIC_CHAR32_T_LOCK_FREE"
-                               , "__GCC_ATOMIC_CHAR_LOCK_FREE"
-                               , "__GCC_ATOMIC_INT_LOCK_FREE"
-                               , "__GCC_ATOMIC_LLONG_LOCK_FREE"
-                               , "__GCC_ATOMIC_LONG_LOCK_FREE"
-                               , "__GCC_ATOMIC_POINTER_LOCK_FREE"
-                               , "__GCC_ATOMIC_SHORT_LOCK_FREE"
-                               , "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL"
-                               , "__GCC_ATOMIC_WCHAR_T_LOCK_FREE"
-                               , "__GCC_HAVE_DWARF2_CFI_ASM"
-                               , "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1"
-                               , "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16"
-                               , "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2"
-                               , "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4"
-                               , "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8"
-                               , "__GFORTRAN__"
-                               , "__GNUC_GNU_INLINE__"
-                               , "__GNUC_MINOR__"
-                               , "__GNUC_PATCHLEVEL__"
-                               , "__GNUC_STDC_INLINE__"
-                               , "__GNUC__"
-                               , "__GNUG__"
-                               , "__GXX_ABI_VERSION"
-                               , "__GXX_EXPERIMENTAL_CXX0X__"
-                               , "__GXX_RTTI"
-                               , "__GXX_WEAK__"
-                               , "__ILP32__"
-                               , "__INCLUDE_LEVEL__"
-                               , "__INT16_C"
-                               , "__INT16_MAX__"
-                               , "__INT16_TYPE__"
-                               , "__INT32_C"
-                               , "__INT32_MAX__"
-                               , "__INT32_TYPE__"
-                               , "__INT64_C"
-                               , "__INT64_MAX__"
-                               , "__INT64_TYPE__"
-                               , "__INT8_C"
-                               , "__INT8_MAX__"
-                               , "__INT8_TYPE__"
-                               , "__INTMAX_C"
-                               , "__INTMAX_MAX__"
-                               , "__INTMAX_TYPE__"
-                               , "__INTPTR_MAX__"
-                               , "__INTPTR_TYPE__"
-                               , "__INT_FAST16_MAX__"
-                               , "__INT_FAST16_TYPE__"
-                               , "__INT_FAST32_MAX__"
-                               , "__INT_FAST32_TYPE__"
-                               , "__INT_FAST64_MAX__"
-                               , "__INT_FAST64_TYPE__"
-                               , "__INT_FAST8_MAX__"
-                               , "__INT_FAST8_TYPE__"
-                               , "__INT_LEAST16_MAX__"
-                               , "__INT_LEAST16_TYPE__"
-                               , "__INT_LEAST32_MAX__"
-                               , "__INT_LEAST32_TYPE__"
-                               , "__INT_LEAST64_MAX__"
-                               , "__INT_LEAST64_TYPE__"
-                               , "__INT_LEAST8_MAX__"
-                               , "__INT_LEAST8_TYPE__"
-                               , "__INT_MAX__"
-                               , "__LDBL_DENORM_MIN__"
-                               , "__LDBL_DIG__"
-                               , "__LDBL_EPSILON__"
-                               , "__LDBL_HAS_DENORM__"
-                               , "__LDBL_HAS_INFINITY__"
-                               , "__LDBL_HAS_QUIET_NAN__"
-                               , "__LDBL_MANT_DIG__"
-                               , "__LDBL_MAX_10_EXP__"
-                               , "__LDBL_MAX_EXP__"
-                               , "__LDBL_MAX__"
-                               , "__LDBL_MIN_10_EXP__"
-                               , "__LDBL_MIN_EXP__"
-                               , "__LDBL_MIN__"
-                               , "__LONG_LONG_MAX__"
-                               , "__LONG_MAX__"
-                               , "__LP64__"
-                               , "__LWP__"
-                               , "__LZCNT__"
-                               , "__MMX__"
-                               , "__NEXT_RUNTIME__"
-                               , "__NO_INLINE__"
-                               , "__OPTIMIZE_SIZE__"
-                               , "__OPTIMIZE__"
-                               , "__ORDER_BIG_ENDIAN__"
-                               , "__ORDER_LITTLE_ENDIAN__"
-                               , "__ORDER_PDP_ENDIAN__"
-                               , "__PCLMUL__"
-                               , "__PIC__"
-                               , "__PIE__"
-                               , "__POPCNT__"
-                               , "__PRAGMA_REDEFINE_EXTNAME"
-                               , "__PRETTY_FUNCTION__"
-                               , "__PRFCHW__"
-                               , "__PTRDIFF_MAX__"
-                               , "__PTRDIFF_TYPE__"
-                               , "__RDRND__"
-                               , "__RDSEED__"
-                               , "__REGISTER_PREFIX__"
-                               , "__RTM__"
-                               , "__SANITIZE_ADDRESS__"
-                               , "__SCHAR_MAX__"
-                               , "__SHRT_MAX__"
-                               , "__SIG_ATOMIC_MAX__"
-                               , "__SIG_ATOMIC_MIN__"
-                               , "__SIG_ATOMIC_TYPE__"
-                               , "__SIZEOF_DOUBLE__"
-                               , "__SIZEOF_FLOAT__"
-                               , "__SIZEOF_INT128__"
-                               , "__SIZEOF_INT__"
-                               , "__SIZEOF_LONG_DOUBLE__"
-                               , "__SIZEOF_LONG_LONG__"
-                               , "__SIZEOF_LONG__"
-                               , "__SIZEOF_POINTER__"
-                               , "__SIZEOF_PTRDIFF_T__"
-                               , "__SIZEOF_SHORT__"
-                               , "__SIZEOF_SIZE_T__"
-                               , "__SIZEOF_WCHAR_T__"
-                               , "__SIZEOF_WINT_T__"
-                               , "__SIZE_MAX__"
-                               , "__SIZE_TYPE__"
-                               , "__SSE2_MATH__"
-                               , "__SSE2__"
-                               , "__SSE3__"
-                               , "__SSE4A__"
-                               , "__SSE4_1__"
-                               , "__SSE4_2__"
-                               , "__SSE_MATH__"
-                               , "__SSE__"
-                               , "__SSP_ALL__"
-                               , "__SSP__"
-                               , "__SSSE3__"
-                               , "__STDC_HOSTED__"
-                               , "__STDC_IEC_559_COMPLEX__"
-                               , "__STDC_IEC_559__"
-                               , "__STDC_ISO_10646__"
-                               , "__STDC_NO_THREADS__"
-                               , "__STDC_UTF_16__"
-                               , "__STDC_UTF_32__"
-                               , "__STDC_VERSION__"
-                               , "__STDC__"
-                               , "__STRICT_ANSI__"
-                               , "__TBM__"
-                               , "__TIMESTAMP__"
-                               , "__UINT16_C"
-                               , "__UINT16_MAX__"
-                               , "__UINT16_TYPE__"
-                               , "__UINT32_C"
-                               , "__UINT32_MAX__"
-                               , "__UINT32_TYPE__"
-                               , "__UINT64_C"
-                               , "__UINT64_MAX__"
-                               , "__UINT64_TYPE__"
-                               , "__UINT8_C"
-                               , "__UINT8_MAX__"
-                               , "__UINT8_TYPE__"
-                               , "__UINTMAX_C"
-                               , "__UINTMAX_MAX__"
-                               , "__UINTMAX_TYPE__"
-                               , "__UINTPTR_MAX__"
-                               , "__UINTPTR_TYPE__"
-                               , "__UINT_FAST16_MAX__"
-                               , "__UINT_FAST16_TYPE__"
-                               , "__UINT_FAST32_MAX__"
-                               , "__UINT_FAST32_TYPE__"
-                               , "__UINT_FAST64_MAX__"
-                               , "__UINT_FAST64_TYPE__"
-                               , "__UINT_FAST8_MAX__"
-                               , "__UINT_FAST8_TYPE__"
-                               , "__UINT_LEAST16_MAX__"
-                               , "__UINT_LEAST16_TYPE__"
-                               , "__UINT_LEAST32_MAX__"
-                               , "__UINT_LEAST32_TYPE__"
-                               , "__UINT_LEAST64_MAX__"
-                               , "__UINT_LEAST64_TYPE__"
-                               , "__UINT_LEAST8_MAX__"
-                               , "__UINT_LEAST8_TYPE__"
-                               , "__USER_LABEL_PREFIX__"
-                               , "__USING_SJLJ_EXCEPTIONS__"
-                               , "__VA_ARGS__"
-                               , "__VERSION__"
-                               , "__WCHAR_MAX__"
-                               , "__WCHAR_MIN__"
-                               , "__WCHAR_TYPE__"
-                               , "__WCHAR_UNSIGNED__"
-                               , "__WINT_MAX__"
-                               , "__WINT_MIN__"
-                               , "__WINT_TYPE__"
-                               , "__XOP__"
-                               , "__XSAVEOPT__"
-                               , "__XSAVE__"
-                               , "__amd64"
-                               , "__amd64__"
-                               , "__amdfam10"
-                               , "__amdfam10__"
-                               , "__athlon"
-                               , "__athlon__"
-                               , "__athlon_sse__"
-                               , "__atom"
-                               , "__atom__"
-                               , "__bdver1"
-                               , "__bdver1__"
-                               , "__bdver2"
-                               , "__bdver2__"
-                               , "__bdver3"
-                               , "__bdver3__"
-                               , "__btver1"
-                               , "__btver1__"
-                               , "__btver2"
-                               , "__btver2__"
-                               , "__code_model_32__"
-                               , "__code_model_small__"
-                               , "__core2"
-                               , "__core2__"
-                               , "__core_avx2"
-                               , "__core_avx2__"
-                               , "__corei7"
-                               , "__corei7__"
-                               , "__cplusplus"
-                               , "__geode"
-                               , "__geode__"
-                               , "__gnu_linux__"
-                               , "__i386"
-                               , "__i386__"
-                               , "__i486"
-                               , "__i486__"
-                               , "__i586"
-                               , "__i586__"
-                               , "__i686"
-                               , "__i686__"
-                               , "__k6"
-                               , "__k6_2__"
-                               , "__k6_3__"
-                               , "__k6__"
-                               , "__k8"
-                               , "__k8__"
-                               , "__linux"
-                               , "__linux__"
-                               , "__nocona"
-                               , "__nocona__"
-                               , "__pentium"
-                               , "__pentium4"
-                               , "__pentium4__"
-                               , "__pentium__"
-                               , "__pentium_mmx__"
-                               , "__pentiumpro"
-                               , "__pentiumpro__"
-                               , "__pic__"
-                               , "__pie__"
-                               , "__tune_amdfam10__"
-                               , "__tune_athlon__"
-                               , "__tune_athlon_sse__"
-                               , "__tune_atom__"
-                               , "__tune_bdver1__"
-                               , "__tune_bdver2__"
-                               , "__tune_bdver3__"
-                               , "__tune_btver1__"
-                               , "__tune_btver2__"
-                               , "__tune_core2__"
-                               , "__tune_core_avx2__"
-                               , "__tune_corei7__"
-                               , "__tune_geode__"
-                               , "__tune_i386__"
-                               , "__tune_i486__"
-                               , "__tune_i586__"
-                               , "__tune_i686__"
-                               , "__tune_k6_2__"
-                               , "__tune_k6_3__"
-                               , "__tune_k6__"
-                               , "__tune_k8__"
-                               , "__tune_nocona__"
-                               , "__tune_pentium2__"
-                               , "__tune_pentium3__"
-                               , "__tune_pentium4__"
-                               , "__tune_pentium__"
-                               , "__tune_pentium_mmx__"
-                               , "__tune_pentiumpro__"
-                               , "__unix"
-                               , "__unix__"
-                               , "__x86_64"
-                               , "__x86_64__"
-                               , "i386"
-                               , "linux"
-                               , "unix"
-                               ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Alex Turbov (i.zaufi@gmail.com)"
-  , sVersion = "1"
-  , sLicense = "LGPL"
-  , sExtensions =
-      [ "*.c++"
-      , "*.cxx"
-      , "*.cpp"
-      , "*.cc"
-      , "*.C"
-      , "*.h"
-      , "*.hh"
-      , "*.H"
-      , "*.h++"
-      , "*.hxx"
-      , "*.hpp"
-      , "*.hcc"
-      ]
-  , sStartingContext = "DetectGccExtensions"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"GCCExtensions\", sFilename = \"gcc.xml\", sShortname = \"Gcc\", sContexts = fromList [(\"AttrArgs\",Context {cName = \"AttrArgs\", cSyntax = \"GCCExtensions\", cRules = [Rule {rMatcher = Detect2Chars '(' '(', rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars ')' ')', rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '(', rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"GCCExtensions\",\"Close\")]}], cAttribute = ExtensionTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"AttrStringArg\",Context {cName = \"AttrStringArg\", cSyntax = \"GCCExtensions\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Close\",Context {cName = \"Close\", cSyntax = \"GCCExtensions\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"GCCExtensions\",\"AttrStringArg\")]}], cAttribute = ExtensionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"DetectGccExtensions\",Context {cName = \"DetectGccExtensions\", cSyntax = \"GCCExtensions\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"_FORTIFY_SOURCE\",\"_GNU_SOURCE\",\"_ILP32\",\"_LP64\",\"_REENTRANT\",\"_STDC_PREDEF_H\",\"__3dNOW_A__\",\"__3dNOW__\",\"__ABM__\",\"__ADX__\",\"__AES__\",\"__ATOMIC_ACQUIRE\",\"__ATOMIC_ACQ_REL\",\"__ATOMIC_CONSUME\",\"__ATOMIC_HLE_ACQUIRE\",\"__ATOMIC_HLE_RELEASE\",\"__ATOMIC_RELAXED\",\"__ATOMIC_RELEASE\",\"__ATOMIC_SEQ_CST\",\"__AVX2__\",\"__AVX__\",\"__BASE_FILE__\",\"__BIGGEST_ALIGNMENT__\",\"__BMI2__\",\"__BMI__\",\"__BYTE_ORDER__\",\"__CHAR16_TYPE__\",\"__CHAR32_TYPE__\",\"__CHAR_BIT__\",\"__CHAR_UNSIGNED__\",\"__COUNTER__\",\"__DBL_DECIMAL_DIG__\",\"__DBL_DENORM_MIN__\",\"__DBL_DIG__\",\"__DBL_EPSILON__\",\"__DBL_HAS_DENORM__\",\"__DBL_HAS_INFINITY__\",\"__DBL_HAS_QUIET_NAN__\",\"__DBL_MANT_DIG__\",\"__DBL_MAX_10_EXP__\",\"__DBL_MAX_EXP__\",\"__DBL_MAX__\",\"__DBL_MIN_10_EXP__\",\"__DBL_MIN_EXP__\",\"__DBL_MIN__\",\"__DEC128_EPSILON__\",\"__DEC128_MANT_DIG__\",\"__DEC128_MAX_EXP__\",\"__DEC128_MAX__\",\"__DEC128_MIN_EXP__\",\"__DEC128_MIN__\",\"__DEC128_SUBNORMAL_MIN__\",\"__DEC32_EPSILON__\",\"__DEC32_MANT_DIG__\",\"__DEC32_MAX_EXP__\",\"__DEC32_MAX__\",\"__DEC32_MIN_EXP__\",\"__DEC32_MIN__\",\"__DEC32_SUBNORMAL_MIN__\",\"__DEC64_EPSILON__\",\"__DEC64_MANT_DIG__\",\"__DEC64_MAX_EXP__\",\"__DEC64_MAX__\",\"__DEC64_MIN_EXP__\",\"__DEC64_MIN__\",\"__DEC64_SUBNORMAL_MIN__\",\"__DECIMAL_BID_FORMAT__\",\"__DECIMAL_DIG__\",\"__DEC_EVAL_METHOD__\",\"__DEPRECATED\",\"__ELF__\",\"__EXCEPTIONS\",\"__F16C__\",\"__FAST_MATH__\",\"__FINITE_MATH_ONLY__\",\"__FLOAT_WORD_ORDER__\",\"__FLT_DECIMAL_DIG__\",\"__FLT_DENORM_MIN__\",\"__FLT_DIG__\",\"__FLT_EPSILON__\",\"__FLT_EVAL_METHOD__\",\"__FLT_HAS_DENORM__\",\"__FLT_HAS_INFINITY__\",\"__FLT_HAS_QUIET_NAN__\",\"__FLT_MANT_DIG__\",\"__FLT_MAX_10_EXP__\",\"__FLT_MAX_EXP__\",\"__FLT_MAX__\",\"__FLT_MIN_10_EXP__\",\"__FLT_MIN_EXP__\",\"__FLT_MIN__\",\"__FLT_RADIX__\",\"__FMA4__\",\"__FMA__\",\"__FP_FAST_FMA\",\"__FP_FAST_FMAF\",\"__FSGSBASE__\",\"__FUNCTION__\",\"__FXSR__\",\"__GCC_ATOMIC_BOOL_LOCK_FREE\",\"__GCC_ATOMIC_CHAR16_T_LOCK_FREE\",\"__GCC_ATOMIC_CHAR32_T_LOCK_FREE\",\"__GCC_ATOMIC_CHAR_LOCK_FREE\",\"__GCC_ATOMIC_INT_LOCK_FREE\",\"__GCC_ATOMIC_LLONG_LOCK_FREE\",\"__GCC_ATOMIC_LONG_LOCK_FREE\",\"__GCC_ATOMIC_POINTER_LOCK_FREE\",\"__GCC_ATOMIC_SHORT_LOCK_FREE\",\"__GCC_ATOMIC_TEST_AND_SET_TRUEVAL\",\"__GCC_ATOMIC_WCHAR_T_LOCK_FREE\",\"__GCC_HAVE_DWARF2_CFI_ASM\",\"__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1\",\"__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16\",\"__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2\",\"__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4\",\"__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8\",\"__GFORTRAN__\",\"__GNUC_GNU_INLINE__\",\"__GNUC_MINOR__\",\"__GNUC_PATCHLEVEL__\",\"__GNUC_STDC_INLINE__\",\"__GNUC__\",\"__GNUG__\",\"__GXX_ABI_VERSION\",\"__GXX_EXPERIMENTAL_CXX0X__\",\"__GXX_RTTI\",\"__GXX_WEAK__\",\"__ILP32__\",\"__INCLUDE_LEVEL__\",\"__INT16_C\",\"__INT16_MAX__\",\"__INT16_TYPE__\",\"__INT32_C\",\"__INT32_MAX__\",\"__INT32_TYPE__\",\"__INT64_C\",\"__INT64_MAX__\",\"__INT64_TYPE__\",\"__INT8_C\",\"__INT8_MAX__\",\"__INT8_TYPE__\",\"__INTMAX_C\",\"__INTMAX_MAX__\",\"__INTMAX_TYPE__\",\"__INTPTR_MAX__\",\"__INTPTR_TYPE__\",\"__INT_FAST16_MAX__\",\"__INT_FAST16_TYPE__\",\"__INT_FAST32_MAX__\",\"__INT_FAST32_TYPE__\",\"__INT_FAST64_MAX__\",\"__INT_FAST64_TYPE__\",\"__INT_FAST8_MAX__\",\"__INT_FAST8_TYPE__\",\"__INT_LEAST16_MAX__\",\"__INT_LEAST16_TYPE__\",\"__INT_LEAST32_MAX__\",\"__INT_LEAST32_TYPE__\",\"__INT_LEAST64_MAX__\",\"__INT_LEAST64_TYPE__\",\"__INT_LEAST8_MAX__\",\"__INT_LEAST8_TYPE__\",\"__INT_MAX__\",\"__LDBL_DENORM_MIN__\",\"__LDBL_DIG__\",\"__LDBL_EPSILON__\",\"__LDBL_HAS_DENORM__\",\"__LDBL_HAS_INFINITY__\",\"__LDBL_HAS_QUIET_NAN__\",\"__LDBL_MANT_DIG__\",\"__LDBL_MAX_10_EXP__\",\"__LDBL_MAX_EXP__\",\"__LDBL_MAX__\",\"__LDBL_MIN_10_EXP__\",\"__LDBL_MIN_EXP__\",\"__LDBL_MIN__\",\"__LONG_LONG_MAX__\",\"__LONG_MAX__\",\"__LP64__\",\"__LWP__\",\"__LZCNT__\",\"__MMX__\",\"__NEXT_RUNTIME__\",\"__NO_INLINE__\",\"__OPTIMIZE_SIZE__\",\"__OPTIMIZE__\",\"__ORDER_BIG_ENDIAN__\",\"__ORDER_LITTLE_ENDIAN__\",\"__ORDER_PDP_ENDIAN__\",\"__PCLMUL__\",\"__PIC__\",\"__PIE__\",\"__POPCNT__\",\"__PRAGMA_REDEFINE_EXTNAME\",\"__PRETTY_FUNCTION__\",\"__PRFCHW__\",\"__PTRDIFF_MAX__\",\"__PTRDIFF_TYPE__\",\"__RDRND__\",\"__RDSEED__\",\"__REGISTER_PREFIX__\",\"__RTM__\",\"__SANITIZE_ADDRESS__\",\"__SCHAR_MAX__\",\"__SHRT_MAX__\",\"__SIG_ATOMIC_MAX__\",\"__SIG_ATOMIC_MIN__\",\"__SIG_ATOMIC_TYPE__\",\"__SIZEOF_DOUBLE__\",\"__SIZEOF_FLOAT__\",\"__SIZEOF_INT128__\",\"__SIZEOF_INT__\",\"__SIZEOF_LONG_DOUBLE__\",\"__SIZEOF_LONG_LONG__\",\"__SIZEOF_LONG__\",\"__SIZEOF_POINTER__\",\"__SIZEOF_PTRDIFF_T__\",\"__SIZEOF_SHORT__\",\"__SIZEOF_SIZE_T__\",\"__SIZEOF_WCHAR_T__\",\"__SIZEOF_WINT_T__\",\"__SIZE_MAX__\",\"__SIZE_TYPE__\",\"__SSE2_MATH__\",\"__SSE2__\",\"__SSE3__\",\"__SSE4A__\",\"__SSE4_1__\",\"__SSE4_2__\",\"__SSE_MATH__\",\"__SSE__\",\"__SSP_ALL__\",\"__SSP__\",\"__SSSE3__\",\"__STDC_HOSTED__\",\"__STDC_IEC_559_COMPLEX__\",\"__STDC_IEC_559__\",\"__STDC_ISO_10646__\",\"__STDC_NO_THREADS__\",\"__STDC_UTF_16__\",\"__STDC_UTF_32__\",\"__STDC_VERSION__\",\"__STDC__\",\"__STRICT_ANSI__\",\"__TBM__\",\"__TIMESTAMP__\",\"__UINT16_C\",\"__UINT16_MAX__\",\"__UINT16_TYPE__\",\"__UINT32_C\",\"__UINT32_MAX__\",\"__UINT32_TYPE__\",\"__UINT64_C\",\"__UINT64_MAX__\",\"__UINT64_TYPE__\",\"__UINT8_C\",\"__UINT8_MAX__\",\"__UINT8_TYPE__\",\"__UINTMAX_C\",\"__UINTMAX_MAX__\",\"__UINTMAX_TYPE__\",\"__UINTPTR_MAX__\",\"__UINTPTR_TYPE__\",\"__UINT_FAST16_MAX__\",\"__UINT_FAST16_TYPE__\",\"__UINT_FAST32_MAX__\",\"__UINT_FAST32_TYPE__\",\"__UINT_FAST64_MAX__\",\"__UINT_FAST64_TYPE__\",\"__UINT_FAST8_MAX__\",\"__UINT_FAST8_TYPE__\",\"__UINT_LEAST16_MAX__\",\"__UINT_LEAST16_TYPE__\",\"__UINT_LEAST32_MAX__\",\"__UINT_LEAST32_TYPE__\",\"__UINT_LEAST64_MAX__\",\"__UINT_LEAST64_TYPE__\",\"__UINT_LEAST8_MAX__\",\"__UINT_LEAST8_TYPE__\",\"__USER_LABEL_PREFIX__\",\"__USING_SJLJ_EXCEPTIONS__\",\"__VA_ARGS__\",\"__VERSION__\",\"__WCHAR_MAX__\",\"__WCHAR_MIN__\",\"__WCHAR_TYPE__\",\"__WCHAR_UNSIGNED__\",\"__WINT_MAX__\",\"__WINT_MIN__\",\"__WINT_TYPE__\",\"__XOP__\",\"__XSAVEOPT__\",\"__XSAVE__\",\"__amd64\",\"__amd64__\",\"__amdfam10\",\"__amdfam10__\",\"__athlon\",\"__athlon__\",\"__athlon_sse__\",\"__atom\",\"__atom__\",\"__bdver1\",\"__bdver1__\",\"__bdver2\",\"__bdver2__\",\"__bdver3\",\"__bdver3__\",\"__btver1\",\"__btver1__\",\"__btver2\",\"__btver2__\",\"__code_model_32__\",\"__code_model_small__\",\"__core2\",\"__core2__\",\"__core_avx2\",\"__core_avx2__\",\"__corei7\",\"__corei7__\",\"__cplusplus\",\"__geode\",\"__geode__\",\"__gnu_linux__\",\"__i386\",\"__i386__\",\"__i486\",\"__i486__\",\"__i586\",\"__i586__\",\"__i686\",\"__i686__\",\"__k6\",\"__k6_2__\",\"__k6_3__\",\"__k6__\",\"__k8\",\"__k8__\",\"__linux\",\"__linux__\",\"__nocona\",\"__nocona__\",\"__pentium\",\"__pentium4\",\"__pentium4__\",\"__pentium__\",\"__pentium_mmx__\",\"__pentiumpro\",\"__pentiumpro__\",\"__pic__\",\"__pie__\",\"__tune_amdfam10__\",\"__tune_athlon__\",\"__tune_athlon_sse__\",\"__tune_atom__\",\"__tune_bdver1__\",\"__tune_bdver2__\",\"__tune_bdver3__\",\"__tune_btver1__\",\"__tune_btver2__\",\"__tune_core2__\",\"__tune_core_avx2__\",\"__tune_corei7__\",\"__tune_geode__\",\"__tune_i386__\",\"__tune_i486__\",\"__tune_i586__\",\"__tune_i686__\",\"__tune_k6_2__\",\"__tune_k6_3__\",\"__tune_k6__\",\"__tune_k8__\",\"__tune_nocona__\",\"__tune_pentium2__\",\"__tune_pentium3__\",\"__tune_pentium4__\",\"__tune_pentium__\",\"__tune_pentium_mmx__\",\"__tune_pentiumpro__\",\"__unix\",\"__unix__\",\"__x86_64\",\"__x86_64__\",\"i386\",\"linux\",\"unix\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"__atomic_add_fetch\",\"__atomic_always_lock_free\",\"__atomic_and_fetch\",\"__atomic_clear\",\"__atomic_compare_exchange\",\"__atomic_compare_exchange_n\",\"__atomic_exchange\",\"__atomic_exchange_n\",\"__atomic_fetch_add\",\"__atomic_fetch_and\",\"__atomic_fetch_nand\",\"__atomic_fetch_or\",\"__atomic_fetch_sub\",\"__atomic_fetch_xor\",\"__atomic_is_lock_free\",\"__atomic_load\",\"__atomic_load_n\",\"__atomic_nand_fetch\",\"__atomic_or_fetch\",\"__atomic_signal_fence\",\"__atomic_store\",\"__atomic_store_n\",\"__atomic_sub_fetch\",\"__atomic_test_and_set\",\"__atomic_thread_fence\",\"__atomic_xor_fetch\",\"__has_nothrow_assign\",\"__has_nothrow_constructor\",\"__has_nothrow_copy\",\"__has_trivial_assign\",\"__has_trivial_constructor\",\"__has_trivial_copy\",\"__has_trivial_destructor\",\"__has_virtual_destructor\",\"__is_abstract\",\"__is_base_of\",\"__is_class\",\"__is_empty\",\"__is_enum\",\"__is_pod\",\"__is_polymorphic\",\"__is_union\",\"__sync_add_and_fetch\",\"__sync_and_and_fetch\",\"__sync_bool_compare_and_swap\",\"__sync_fetch_and_add\",\"__sync_fetch_and_and\",\"__sync_fetch_and_nand\",\"__sync_fetch_and_or\",\"__sync_fetch_and_sub\",\"__sync_fetch_and_xor\",\"__sync_lock_release\",\"__sync_lock_test_and_set\",\"__sync_nand_and_fetch\",\"__sync_or_and_fetch\",\"__sync_sub_and_fetch\",\"__sync_synchronize\",\"__sync_val_compare_and_swap\",\"__sync_xor_and_fetch\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"_Accum\",\"_Decimal128\",\"_Decimal32\",\"_Decimal64\",\"_Fract\",\"_Sat\",\"__float128\",\"__float80\",\"__fp16\",\"__int128\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"__attribute__\", rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"GCCExtensions\",\"AttrArgs\")]},Rule {rMatcher = StringDetect \"__declspec\", rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"GCCExtensions\",\"AttrArgs\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"__alignof__\",\"__asm__\",\"__complex__\",\"__const__\",\"__extension__\",\"__imag__\",\"__inline__\",\"__label__\",\"__real__\",\"__restrict\",\"__restrict__\",\"__thread\",\"__typeof__\",\"typeof\"])), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"__builtin_[a-zA-Z0-9_]+\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"0[Bb][01]+([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\\\\b\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"GNUMacros\",Context {cName = \"GNUMacros\", cSyntax = \"GCCExtensions\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"_FORTIFY_SOURCE\",\"_GNU_SOURCE\",\"_ILP32\",\"_LP64\",\"_REENTRANT\",\"_STDC_PREDEF_H\",\"__3dNOW_A__\",\"__3dNOW__\",\"__ABM__\",\"__ADX__\",\"__AES__\",\"__ATOMIC_ACQUIRE\",\"__ATOMIC_ACQ_REL\",\"__ATOMIC_CONSUME\",\"__ATOMIC_HLE_ACQUIRE\",\"__ATOMIC_HLE_RELEASE\",\"__ATOMIC_RELAXED\",\"__ATOMIC_RELEASE\",\"__ATOMIC_SEQ_CST\",\"__AVX2__\",\"__AVX__\",\"__BASE_FILE__\",\"__BIGGEST_ALIGNMENT__\",\"__BMI2__\",\"__BMI__\",\"__BYTE_ORDER__\",\"__CHAR16_TYPE__\",\"__CHAR32_TYPE__\",\"__CHAR_BIT__\",\"__CHAR_UNSIGNED__\",\"__COUNTER__\",\"__DBL_DECIMAL_DIG__\",\"__DBL_DENORM_MIN__\",\"__DBL_DIG__\",\"__DBL_EPSILON__\",\"__DBL_HAS_DENORM__\",\"__DBL_HAS_INFINITY__\",\"__DBL_HAS_QUIET_NAN__\",\"__DBL_MANT_DIG__\",\"__DBL_MAX_10_EXP__\",\"__DBL_MAX_EXP__\",\"__DBL_MAX__\",\"__DBL_MIN_10_EXP__\",\"__DBL_MIN_EXP__\",\"__DBL_MIN__\",\"__DEC128_EPSILON__\",\"__DEC128_MANT_DIG__\",\"__DEC128_MAX_EXP__\",\"__DEC128_MAX__\",\"__DEC128_MIN_EXP__\",\"__DEC128_MIN__\",\"__DEC128_SUBNORMAL_MIN__\",\"__DEC32_EPSILON__\",\"__DEC32_MANT_DIG__\",\"__DEC32_MAX_EXP__\",\"__DEC32_MAX__\",\"__DEC32_MIN_EXP__\",\"__DEC32_MIN__\",\"__DEC32_SUBNORMAL_MIN__\",\"__DEC64_EPSILON__\",\"__DEC64_MANT_DIG__\",\"__DEC64_MAX_EXP__\",\"__DEC64_MAX__\",\"__DEC64_MIN_EXP__\",\"__DEC64_MIN__\",\"__DEC64_SUBNORMAL_MIN__\",\"__DECIMAL_BID_FORMAT__\",\"__DECIMAL_DIG__\",\"__DEC_EVAL_METHOD__\",\"__DEPRECATED\",\"__ELF__\",\"__EXCEPTIONS\",\"__F16C__\",\"__FAST_MATH__\",\"__FINITE_MATH_ONLY__\",\"__FLOAT_WORD_ORDER__\",\"__FLT_DECIMAL_DIG__\",\"__FLT_DENORM_MIN__\",\"__FLT_DIG__\",\"__FLT_EPSILON__\",\"__FLT_EVAL_METHOD__\",\"__FLT_HAS_DENORM__\",\"__FLT_HAS_INFINITY__\",\"__FLT_HAS_QUIET_NAN__\",\"__FLT_MANT_DIG__\",\"__FLT_MAX_10_EXP__\",\"__FLT_MAX_EXP__\",\"__FLT_MAX__\",\"__FLT_MIN_10_EXP__\",\"__FLT_MIN_EXP__\",\"__FLT_MIN__\",\"__FLT_RADIX__\",\"__FMA4__\",\"__FMA__\",\"__FP_FAST_FMA\",\"__FP_FAST_FMAF\",\"__FSGSBASE__\",\"__FUNCTION__\",\"__FXSR__\",\"__GCC_ATOMIC_BOOL_LOCK_FREE\",\"__GCC_ATOMIC_CHAR16_T_LOCK_FREE\",\"__GCC_ATOMIC_CHAR32_T_LOCK_FREE\",\"__GCC_ATOMIC_CHAR_LOCK_FREE\",\"__GCC_ATOMIC_INT_LOCK_FREE\",\"__GCC_ATOMIC_LLONG_LOCK_FREE\",\"__GCC_ATOMIC_LONG_LOCK_FREE\",\"__GCC_ATOMIC_POINTER_LOCK_FREE\",\"__GCC_ATOMIC_SHORT_LOCK_FREE\",\"__GCC_ATOMIC_TEST_AND_SET_TRUEVAL\",\"__GCC_ATOMIC_WCHAR_T_LOCK_FREE\",\"__GCC_HAVE_DWARF2_CFI_ASM\",\"__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1\",\"__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16\",\"__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2\",\"__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4\",\"__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8\",\"__GFORTRAN__\",\"__GNUC_GNU_INLINE__\",\"__GNUC_MINOR__\",\"__GNUC_PATCHLEVEL__\",\"__GNUC_STDC_INLINE__\",\"__GNUC__\",\"__GNUG__\",\"__GXX_ABI_VERSION\",\"__GXX_EXPERIMENTAL_CXX0X__\",\"__GXX_RTTI\",\"__GXX_WEAK__\",\"__ILP32__\",\"__INCLUDE_LEVEL__\",\"__INT16_C\",\"__INT16_MAX__\",\"__INT16_TYPE__\",\"__INT32_C\",\"__INT32_MAX__\",\"__INT32_TYPE__\",\"__INT64_C\",\"__INT64_MAX__\",\"__INT64_TYPE__\",\"__INT8_C\",\"__INT8_MAX__\",\"__INT8_TYPE__\",\"__INTMAX_C\",\"__INTMAX_MAX__\",\"__INTMAX_TYPE__\",\"__INTPTR_MAX__\",\"__INTPTR_TYPE__\",\"__INT_FAST16_MAX__\",\"__INT_FAST16_TYPE__\",\"__INT_FAST32_MAX__\",\"__INT_FAST32_TYPE__\",\"__INT_FAST64_MAX__\",\"__INT_FAST64_TYPE__\",\"__INT_FAST8_MAX__\",\"__INT_FAST8_TYPE__\",\"__INT_LEAST16_MAX__\",\"__INT_LEAST16_TYPE__\",\"__INT_LEAST32_MAX__\",\"__INT_LEAST32_TYPE__\",\"__INT_LEAST64_MAX__\",\"__INT_LEAST64_TYPE__\",\"__INT_LEAST8_MAX__\",\"__INT_LEAST8_TYPE__\",\"__INT_MAX__\",\"__LDBL_DENORM_MIN__\",\"__LDBL_DIG__\",\"__LDBL_EPSILON__\",\"__LDBL_HAS_DENORM__\",\"__LDBL_HAS_INFINITY__\",\"__LDBL_HAS_QUIET_NAN__\",\"__LDBL_MANT_DIG__\",\"__LDBL_MAX_10_EXP__\",\"__LDBL_MAX_EXP__\",\"__LDBL_MAX__\",\"__LDBL_MIN_10_EXP__\",\"__LDBL_MIN_EXP__\",\"__LDBL_MIN__\",\"__LONG_LONG_MAX__\",\"__LONG_MAX__\",\"__LP64__\",\"__LWP__\",\"__LZCNT__\",\"__MMX__\",\"__NEXT_RUNTIME__\",\"__NO_INLINE__\",\"__OPTIMIZE_SIZE__\",\"__OPTIMIZE__\",\"__ORDER_BIG_ENDIAN__\",\"__ORDER_LITTLE_ENDIAN__\",\"__ORDER_PDP_ENDIAN__\",\"__PCLMUL__\",\"__PIC__\",\"__PIE__\",\"__POPCNT__\",\"__PRAGMA_REDEFINE_EXTNAME\",\"__PRETTY_FUNCTION__\",\"__PRFCHW__\",\"__PTRDIFF_MAX__\",\"__PTRDIFF_TYPE__\",\"__RDRND__\",\"__RDSEED__\",\"__REGISTER_PREFIX__\",\"__RTM__\",\"__SANITIZE_ADDRESS__\",\"__SCHAR_MAX__\",\"__SHRT_MAX__\",\"__SIG_ATOMIC_MAX__\",\"__SIG_ATOMIC_MIN__\",\"__SIG_ATOMIC_TYPE__\",\"__SIZEOF_DOUBLE__\",\"__SIZEOF_FLOAT__\",\"__SIZEOF_INT128__\",\"__SIZEOF_INT__\",\"__SIZEOF_LONG_DOUBLE__\",\"__SIZEOF_LONG_LONG__\",\"__SIZEOF_LONG__\",\"__SIZEOF_POINTER__\",\"__SIZEOF_PTRDIFF_T__\",\"__SIZEOF_SHORT__\",\"__SIZEOF_SIZE_T__\",\"__SIZEOF_WCHAR_T__\",\"__SIZEOF_WINT_T__\",\"__SIZE_MAX__\",\"__SIZE_TYPE__\",\"__SSE2_MATH__\",\"__SSE2__\",\"__SSE3__\",\"__SSE4A__\",\"__SSE4_1__\",\"__SSE4_2__\",\"__SSE_MATH__\",\"__SSE__\",\"__SSP_ALL__\",\"__SSP__\",\"__SSSE3__\",\"__STDC_HOSTED__\",\"__STDC_IEC_559_COMPLEX__\",\"__STDC_IEC_559__\",\"__STDC_ISO_10646__\",\"__STDC_NO_THREADS__\",\"__STDC_UTF_16__\",\"__STDC_UTF_32__\",\"__STDC_VERSION__\",\"__STDC__\",\"__STRICT_ANSI__\",\"__TBM__\",\"__TIMESTAMP__\",\"__UINT16_C\",\"__UINT16_MAX__\",\"__UINT16_TYPE__\",\"__UINT32_C\",\"__UINT32_MAX__\",\"__UINT32_TYPE__\",\"__UINT64_C\",\"__UINT64_MAX__\",\"__UINT64_TYPE__\",\"__UINT8_C\",\"__UINT8_MAX__\",\"__UINT8_TYPE__\",\"__UINTMAX_C\",\"__UINTMAX_MAX__\",\"__UINTMAX_TYPE__\",\"__UINTPTR_MAX__\",\"__UINTPTR_TYPE__\",\"__UINT_FAST16_MAX__\",\"__UINT_FAST16_TYPE__\",\"__UINT_FAST32_MAX__\",\"__UINT_FAST32_TYPE__\",\"__UINT_FAST64_MAX__\",\"__UINT_FAST64_TYPE__\",\"__UINT_FAST8_MAX__\",\"__UINT_FAST8_TYPE__\",\"__UINT_LEAST16_MAX__\",\"__UINT_LEAST16_TYPE__\",\"__UINT_LEAST32_MAX__\",\"__UINT_LEAST32_TYPE__\",\"__UINT_LEAST64_MAX__\",\"__UINT_LEAST64_TYPE__\",\"__UINT_LEAST8_MAX__\",\"__UINT_LEAST8_TYPE__\",\"__USER_LABEL_PREFIX__\",\"__USING_SJLJ_EXCEPTIONS__\",\"__VA_ARGS__\",\"__VERSION__\",\"__WCHAR_MAX__\",\"__WCHAR_MIN__\",\"__WCHAR_TYPE__\",\"__WCHAR_UNSIGNED__\",\"__WINT_MAX__\",\"__WINT_MIN__\",\"__WINT_TYPE__\",\"__XOP__\",\"__XSAVEOPT__\",\"__XSAVE__\",\"__amd64\",\"__amd64__\",\"__amdfam10\",\"__amdfam10__\",\"__athlon\",\"__athlon__\",\"__athlon_sse__\",\"__atom\",\"__atom__\",\"__bdver1\",\"__bdver1__\",\"__bdver2\",\"__bdver2__\",\"__bdver3\",\"__bdver3__\",\"__btver1\",\"__btver1__\",\"__btver2\",\"__btver2__\",\"__code_model_32__\",\"__code_model_small__\",\"__core2\",\"__core2__\",\"__core_avx2\",\"__core_avx2__\",\"__corei7\",\"__corei7__\",\"__cplusplus\",\"__geode\",\"__geode__\",\"__gnu_linux__\",\"__i386\",\"__i386__\",\"__i486\",\"__i486__\",\"__i586\",\"__i586__\",\"__i686\",\"__i686__\",\"__k6\",\"__k6_2__\",\"__k6_3__\",\"__k6__\",\"__k8\",\"__k8__\",\"__linux\",\"__linux__\",\"__nocona\",\"__nocona__\",\"__pentium\",\"__pentium4\",\"__pentium4__\",\"__pentium__\",\"__pentium_mmx__\",\"__pentiumpro\",\"__pentiumpro__\",\"__pic__\",\"__pie__\",\"__tune_amdfam10__\",\"__tune_athlon__\",\"__tune_athlon_sse__\",\"__tune_atom__\",\"__tune_bdver1__\",\"__tune_bdver2__\",\"__tune_bdver3__\",\"__tune_btver1__\",\"__tune_btver2__\",\"__tune_core2__\",\"__tune_core_avx2__\",\"__tune_corei7__\",\"__tune_geode__\",\"__tune_i386__\",\"__tune_i486__\",\"__tune_i586__\",\"__tune_i686__\",\"__tune_k6_2__\",\"__tune_k6_3__\",\"__tune_k6__\",\"__tune_k8__\",\"__tune_nocona__\",\"__tune_pentium2__\",\"__tune_pentium3__\",\"__tune_pentium4__\",\"__tune_pentium__\",\"__tune_pentium_mmx__\",\"__tune_pentiumpro__\",\"__unix\",\"__unix__\",\"__x86_64\",\"__x86_64__\",\"i386\",\"linux\",\"unix\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Alex Turbov (i.zaufi@gmail.com)\", sVersion = \"1\", sLicense = \"LGPL\", sExtensions = [\"*.c++\",\"*.cxx\",\"*.cpp\",\"*.cc\",\"*.C\",\"*.h\",\"*.hh\",\"*.H\",\"*.h++\",\"*.hxx\",\"*.hpp\",\"*.hcc\"], sStartingContext = \"DetectGccExtensions\"}"
diff --git a/src/Skylighting/Syntax/Glsl.hs b/src/Skylighting/Syntax/Glsl.hs
--- a/src/Skylighting/Syntax/Glsl.hs
+++ b/src/Skylighting/Syntax/Glsl.hs
@@ -2,1512 +2,6 @@
 module Skylighting.Syntax.Glsl (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "GLSL"
-  , sFilename = "glsl.xml"
-  , sShortname = "Glsl"
-  , sContexts =
-      fromList
-        [ ( "Commentar 1"
-          , Context
-              { cName = "Commentar 1"
-              , cSyntax = "GLSL"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "BUG" , "FIXME" , "TODO" ])
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Commentar 2"
-          , Context
-              { cName = "Commentar 2"
-              , cSyntax = "GLSL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "BUG" , "FIXME" , "TODO" ])
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Member"
-          , Context
-              { cName = "Member"
-              , cSyntax = "GLSL"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[_\\w][_\\w\\d]*(?=[\\s]*)"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b[_\\w][_\\w\\d]*(?=[\\s]*)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "GLSL"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "break"
-                               , "buffer"
-                               , "continue"
-                               , "discard"
-                               , "do"
-                               , "else"
-                               , "false"
-                               , "for"
-                               , "if"
-                               , "invariant"
-                               , "layout"
-                               , "return"
-                               , "struct"
-                               , "subroutine"
-                               , "true"
-                               , "uniform"
-                               , "while"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "atomic_uint"
-                               , "bool"
-                               , "bvec2"
-                               , "bvec3"
-                               , "bvec4"
-                               , "float"
-                               , "int"
-                               , "isampler1D"
-                               , "isampler1DArray"
-                               , "isampler1DArrayShadow"
-                               , "isampler1DShadow"
-                               , "isampler2D"
-                               , "isampler2DArray"
-                               , "isampler2DArrayShadow"
-                               , "isampler2DMS"
-                               , "isampler2DMSArray"
-                               , "isampler2DRect"
-                               , "isampler2DRectShadow"
-                               , "isampler2DShadow"
-                               , "isampler3D"
-                               , "isamplerBuffer"
-                               , "isamplerCube"
-                               , "isamplerCubeArray"
-                               , "isamplerCubeArrayShadow"
-                               , "isamplerCubeShadow"
-                               , "ivec2"
-                               , "ivec3"
-                               , "ivec4"
-                               , "mat2"
-                               , "mat3"
-                               , "mat4"
-                               , "sampler1D"
-                               , "sampler1DArray"
-                               , "sampler1DArrayShadow"
-                               , "sampler1DShadow"
-                               , "sampler2D"
-                               , "sampler2DArray"
-                               , "sampler2DArrayShadow"
-                               , "sampler2DMS"
-                               , "sampler2DMSArray"
-                               , "sampler2DRect"
-                               , "sampler2DRectShadow"
-                               , "sampler2DShadow"
-                               , "sampler3D"
-                               , "samplerBuffer"
-                               , "samplerCube"
-                               , "samplerCubeArray"
-                               , "samplerCubeArrayShadow"
-                               , "samplerCubeShadow"
-                               , "usampler1D"
-                               , "usampler1DArray"
-                               , "usampler1DArrayShadow"
-                               , "usampler1DShadow"
-                               , "usampler2D"
-                               , "usampler2DArray"
-                               , "usampler2DArrayShadow"
-                               , "usampler2DMS"
-                               , "usampler2DMSArray"
-                               , "usampler2DRect"
-                               , "usampler2DRectShadow"
-                               , "usampler2DShadow"
-                               , "usampler3D"
-                               , "usamplerBuffer"
-                               , "usamplerCube"
-                               , "usamplerCubeArray"
-                               , "usamplerCubeArrayShadow"
-                               , "usamplerCubeShadow"
-                               , "vec2"
-                               , "vec3"
-                               , "vec4"
-                               , "void"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "attribute"
-                               , "binding"
-                               , "ccw"
-                               , "coherent"
-                               , "component"
-                               , "const"
-                               , "cw"
-                               , "early_fragment_tests"
-                               , "equal_spacing"
-                               , "flat"
-                               , "fractional_even_spacing"
-                               , "fractional_odd_spacing"
-                               , "in"
-                               , "index"
-                               , "inout"
-                               , "invocations"
-                               , "isolines"
-                               , "line_strip"
-                               , "lines"
-                               , "lines_adjacency"
-                               , "location"
-                               , "max_vertices"
-                               , "noperspective"
-                               , "offset"
-                               , "origin_upper_left"
-                               , "out"
-                               , "packed"
-                               , "pixel_center_integer"
-                               , "point_mode"
-                               , "points"
-                               , "quads"
-                               , "readonly"
-                               , "restrict"
-                               , "row_major"
-                               , "shared"
-                               , "smooth"
-                               , "std140"
-                               , "std430"
-                               , "stream"
-                               , "triangle_strip"
-                               , "triangles"
-                               , "triangles_adjacency"
-                               , "varying"
-                               , "vertices"
-                               , "volatile"
-                               , "writeonly"
-                               , "xfb_buffer"
-                               , "xfb_offset"
-                               , "xfb_stride"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "EmitStreamVertex"
-                               , "EmitVertex"
-                               , "EndPrimitive"
-                               , "EndStreamPrimitive"
-                               , "abs"
-                               , "acos"
-                               , "acosh"
-                               , "all"
-                               , "any"
-                               , "asin"
-                               , "asinh"
-                               , "atan"
-                               , "atanh"
-                               , "atomicAdd"
-                               , "atomicAnd"
-                               , "atomicCompSwap"
-                               , "atomicCounter"
-                               , "atomicCounterDecrement"
-                               , "atomicCounterIncrement"
-                               , "atomicExchange"
-                               , "atomicMax"
-                               , "atomicMin"
-                               , "atomicOr"
-                               , "atomicXor"
-                               , "barrier"
-                               , "bitCount"
-                               , "bitfieldExtract"
-                               , "bitfieldInsert"
-                               , "bitfieldReverse"
-                               , "ceil"
-                               , "clamp"
-                               , "cos"
-                               , "cosh"
-                               , "cross"
-                               , "dFdx"
-                               , "dFdxCoarse"
-                               , "dFdxFine"
-                               , "dFdy"
-                               , "dFdyCoarse"
-                               , "dFdyFine"
-                               , "degrees"
-                               , "determinant"
-                               , "distance"
-                               , "dot"
-                               , "equal"
-                               , "exp"
-                               , "exp2"
-                               , "faceforward"
-                               , "findLSB"
-                               , "findMSB"
-                               , "floatBitsToInt"
-                               , "floatBitsToUint"
-                               , "floor"
-                               , "fma"
-                               , "fract"
-                               , "frexp"
-                               , "fwidth"
-                               , "fwidthCoarse"
-                               , "fwidthFine"
-                               , "glActiveShaderProgram"
-                               , "glActiveTexture"
-                               , "glAttachShader"
-                               , "glBeginConditionalRender"
-                               , "glBeginQuery"
-                               , "glBeginQueryIndexed"
-                               , "glBeginTransformFeedback"
-                               , "glBindAttribLocation"
-                               , "glBindBuffer"
-                               , "glBindBufferBase"
-                               , "glBindBufferRange"
-                               , "glBindBuffersBase"
-                               , "glBindBuffersRange"
-                               , "glBindFragDataLocation"
-                               , "glBindFragDataLocationIndexed"
-                               , "glBindFramebuffer"
-                               , "glBindImageTexture"
-                               , "glBindImageTextures"
-                               , "glBindProgramPipeline"
-                               , "glBindRenderbuffer"
-                               , "glBindSampler"
-                               , "glBindSamplers"
-                               , "glBindTexture"
-                               , "glBindTextureUnit"
-                               , "glBindTextures"
-                               , "glBindTransformFeedback"
-                               , "glBindVertexArray"
-                               , "glBindVertexBuffer"
-                               , "glBindVertexBuffers"
-                               , "glBlendColor"
-                               , "glBlendEquation"
-                               , "glBlendEquationSeparate"
-                               , "glBlendEquationSeparatei"
-                               , "glBlendEquationi"
-                               , "glBlendFunc"
-                               , "glBlendFuncSeparate"
-                               , "glBlendFuncSeparatei"
-                               , "glBlendFunci"
-                               , "glBlitFramebuffer"
-                               , "glBlitNamedFramebuffer"
-                               , "glBufferData"
-                               , "glBufferStorage"
-                               , "glBufferSubData"
-                               , "glCheckFramebufferStatus"
-                               , "glCheckNamedFramebufferStatus"
-                               , "glClampColor"
-                               , "glClear"
-                               , "glClearBuffer"
-                               , "glClearBufferData"
-                               , "glClearBufferSubData"
-                               , "glClearBufferfi"
-                               , "glClearBufferfv"
-                               , "glClearBufferiv"
-                               , "glClearBufferuiv"
-                               , "glClearColor"
-                               , "glClearDepth"
-                               , "glClearDepthf"
-                               , "glClearNamedBufferData"
-                               , "glClearNamedBufferSubData"
-                               , "glClearNamedFramebufferfi"
-                               , "glClearNamedFramebufferfv"
-                               , "glClearNamedFramebufferiv"
-                               , "glClearNamedFramebufferuiv"
-                               , "glClearStencil"
-                               , "glClearTexImage"
-                               , "glClearTexSubImage"
-                               , "glClientWaitSync"
-                               , "glClipControl"
-                               , "glColorMask"
-                               , "glColorMaski"
-                               , "glCompileShader"
-                               , "glCompressedTexImage1D"
-                               , "glCompressedTexImage2D"
-                               , "glCompressedTexImage3D"
-                               , "glCompressedTexSubImage1D"
-                               , "glCompressedTexSubImage2D"
-                               , "glCompressedTexSubImage3D"
-                               , "glCompressedTextureSubImage1D"
-                               , "glCompressedTextureSubImage2D"
-                               , "glCompressedTextureSubImage3D"
-                               , "glCopyBufferSubData"
-                               , "glCopyImageSubData"
-                               , "glCopyNamedBufferSubData"
-                               , "glCopyTexImage1D"
-                               , "glCopyTexImage2D"
-                               , "glCopyTexSubImage1D"
-                               , "glCopyTexSubImage2D"
-                               , "glCopyTexSubImage3D"
-                               , "glCopyTextureSubImage1D"
-                               , "glCopyTextureSubImage2D"
-                               , "glCopyTextureSubImage3D"
-                               , "glCreateBuffers"
-                               , "glCreateFramebuffers"
-                               , "glCreateProgram"
-                               , "glCreateProgramPipelines"
-                               , "glCreateQueries"
-                               , "glCreateRenderbuffers"
-                               , "glCreateSamplers"
-                               , "glCreateShader"
-                               , "glCreateShaderProgram"
-                               , "glCreateShaderProgramv"
-                               , "glCreateTextures"
-                               , "glCreateTransformFeedbacks"
-                               , "glCreateVertexArrays"
-                               , "glCullFace"
-                               , "glDebugMessageCallback"
-                               , "glDebugMessageControl"
-                               , "glDebugMessageInsert"
-                               , "glDeleteBuffers"
-                               , "glDeleteFramebuffers"
-                               , "glDeleteProgram"
-                               , "glDeleteProgramPipelines"
-                               , "glDeleteQueries"
-                               , "glDeleteRenderbuffers"
-                               , "glDeleteSamplers"
-                               , "glDeleteShader"
-                               , "glDeleteSync"
-                               , "glDeleteTextures"
-                               , "glDeleteTransformFeedbacks"
-                               , "glDeleteVertexArrays"
-                               , "glDepthFunc"
-                               , "glDepthMask"
-                               , "glDepthRange"
-                               , "glDepthRangeArray"
-                               , "glDepthRangeArrayv"
-                               , "glDepthRangeIndexed"
-                               , "glDepthRangef"
-                               , "glDetachShader"
-                               , "glDisable"
-                               , "glDisableVertexArrayAttrib"
-                               , "glDisableVertexAttribArray"
-                               , "glDisablei"
-                               , "glDispatchCompute"
-                               , "glDispatchComputeIndirect"
-                               , "glDrawArrays"
-                               , "glDrawArraysIndirect"
-                               , "glDrawArraysInstanced"
-                               , "glDrawArraysInstancedBaseInstance"
-                               , "glDrawBuffer"
-                               , "glDrawBuffers"
-                               , "glDrawElements"
-                               , "glDrawElementsBaseVertex"
-                               , "glDrawElementsIndirect"
-                               , "glDrawElementsInstanced"
-                               , "glDrawElementsInstancedBaseInstance"
-                               , "glDrawElementsInstancedBaseVertex"
-                               , "glDrawElementsInstancedBaseVertexBaseInstance"
-                               , "glDrawRangeElements"
-                               , "glDrawRangeElementsBaseVertex"
-                               , "glDrawTransformFeedback"
-                               , "glDrawTransformFeedbackInstanced"
-                               , "glDrawTransformFeedbackStream"
-                               , "glDrawTransformFeedbackStreamInstanced"
-                               , "glEnable"
-                               , "glEnableVertexArrayAttrib"
-                               , "glEnableVertexAttribArray"
-                               , "glEnablei"
-                               , "glEndConditionalRender"
-                               , "glEndQuery"
-                               , "glEndQueryIndexed"
-                               , "glEndTransformFeedback"
-                               , "glFenceSync"
-                               , "glFinish"
-                               , "glFlush"
-                               , "glFlushMappedBufferRange"
-                               , "glFlushMappedNamedBufferRange"
-                               , "glFramebufferParameteri"
-                               , "glFramebufferRenderbuffer"
-                               , "glFramebufferTexture"
-                               , "glFramebufferTexture1D"
-                               , "glFramebufferTexture2D"
-                               , "glFramebufferTexture3D"
-                               , "glFramebufferTextureLayer"
-                               , "glFrontFace"
-                               , "glGenBuffers"
-                               , "glGenFramebuffers"
-                               , "glGenProgramPipelines"
-                               , "glGenQueries"
-                               , "glGenRenderbuffers"
-                               , "glGenSamplers"
-                               , "glGenTextures"
-                               , "glGenTransformFeedbacks"
-                               , "glGenVertexArrays"
-                               , "glGenerateMipmap"
-                               , "glGenerateTextureMipmap"
-                               , "glGet"
-                               , "glGetActiveAtomicCounterBufferiv"
-                               , "glGetActiveAttrib"
-                               , "glGetActiveSubroutineName"
-                               , "glGetActiveSubroutineUniform"
-                               , "glGetActiveSubroutineUniformName"
-                               , "glGetActiveSubroutineUniformiv"
-                               , "glGetActiveUniform"
-                               , "glGetActiveUniformBlock"
-                               , "glGetActiveUniformBlockName"
-                               , "glGetActiveUniformBlockiv"
-                               , "glGetActiveUniformName"
-                               , "glGetActiveUniformsiv"
-                               , "glGetAttachedShaders"
-                               , "glGetAttribLocation"
-                               , "glGetBooleani_v"
-                               , "glGetBooleanv"
-                               , "glGetBufferParameter"
-                               , "glGetBufferParameteri64v"
-                               , "glGetBufferParameteriv"
-                               , "glGetBufferPointerv"
-                               , "glGetBufferSubData"
-                               , "glGetCompressedTexImage"
-                               , "glGetCompressedTextureImage"
-                               , "glGetCompressedTextureSubImage"
-                               , "glGetDebugMessageLog"
-                               , "glGetDoublei_v"
-                               , "glGetDoublev"
-                               , "glGetError"
-                               , "glGetFloati_v"
-                               , "glGetFloatv"
-                               , "glGetFragDataIndex"
-                               , "glGetFragDataLocation"
-                               , "glGetFramebufferAttachmentParameter"
-                               , "glGetFramebufferAttachmentParameteriv"
-                               , "glGetFramebufferParameter"
-                               , "glGetFramebufferParameteriv"
-                               , "glGetGraphicsResetStatus"
-                               , "glGetInteger64i_v"
-                               , "glGetInteger64v"
-                               , "glGetIntegeri_v"
-                               , "glGetIntegerv"
-                               , "glGetInternalformat"
-                               , "glGetInternalformati64v"
-                               , "glGetInternalformativ"
-                               , "glGetMultisample"
-                               , "glGetMultisamplefv"
-                               , "glGetNamedBufferParameteri64v"
-                               , "glGetNamedBufferParameteriv"
-                               , "glGetNamedBufferPointerv"
-                               , "glGetNamedBufferSubData"
-                               , "glGetNamedFramebufferAttachmentParameteriv"
-                               , "glGetNamedFramebufferParameteriv"
-                               , "glGetNamedRenderbufferParameteriv"
-                               , "glGetObjectLabel"
-                               , "glGetObjectPtrLabel"
-                               , "glGetPointerv"
-                               , "glGetProgram"
-                               , "glGetProgramBinary"
-                               , "glGetProgramInfoLog"
-                               , "glGetProgramInterface"
-                               , "glGetProgramInterfaceiv"
-                               , "glGetProgramPipeline"
-                               , "glGetProgramPipelineInfoLog"
-                               , "glGetProgramPipelineiv"
-                               , "glGetProgramResource"
-                               , "glGetProgramResourceIndex"
-                               , "glGetProgramResourceLocation"
-                               , "glGetProgramResourceLocationIndex"
-                               , "glGetProgramResourceName"
-                               , "glGetProgramResourceiv"
-                               , "glGetProgramStage"
-                               , "glGetProgramStageiv"
-                               , "glGetProgramiv"
-                               , "glGetQueryIndexed"
-                               , "glGetQueryIndexediv"
-                               , "glGetQueryObject"
-                               , "glGetQueryObjecti64v"
-                               , "glGetQueryObjectiv"
-                               , "glGetQueryObjectui64v"
-                               , "glGetQueryObjectuiv"
-                               , "glGetQueryiv"
-                               , "glGetRenderbufferParameter"
-                               , "glGetRenderbufferParameteriv"
-                               , "glGetSamplerParameter"
-                               , "glGetSamplerParameterIiv"
-                               , "glGetSamplerParameterIuiv"
-                               , "glGetSamplerParameterfv"
-                               , "glGetSamplerParameteriv"
-                               , "glGetShader"
-                               , "glGetShaderInfoLog"
-                               , "glGetShaderPrecisionFormat"
-                               , "glGetShaderSource"
-                               , "glGetShaderiv"
-                               , "glGetString"
-                               , "glGetStringi"
-                               , "glGetSubroutineIndex"
-                               , "glGetSubroutineUniformLocation"
-                               , "glGetSync"
-                               , "glGetSynciv"
-                               , "glGetTexImage"
-                               , "glGetTexLevelParameter"
-                               , "glGetTexLevelParameterfv"
-                               , "glGetTexLevelParameteriv"
-                               , "glGetTexParameter"
-                               , "glGetTexParameterIiv"
-                               , "glGetTexParameterIuiv"
-                               , "glGetTexParameterfv"
-                               , "glGetTexParameteriv"
-                               , "glGetTextureImage"
-                               , "glGetTextureLevelParameterfv"
-                               , "glGetTextureLevelParameteriv"
-                               , "glGetTextureParameterIiv"
-                               , "glGetTextureParameterIuiv"
-                               , "glGetTextureParameterfv"
-                               , "glGetTextureParameteriv"
-                               , "glGetTextureSubImage"
-                               , "glGetTransformFeedback"
-                               , "glGetTransformFeedbackVarying"
-                               , "glGetTransformFeedbacki64_v"
-                               , "glGetTransformFeedbacki_v"
-                               , "glGetTransformFeedbackiv"
-                               , "glGetUniform"
-                               , "glGetUniformBlockIndex"
-                               , "glGetUniformIndices"
-                               , "glGetUniformLocation"
-                               , "glGetUniformSubroutine"
-                               , "glGetUniformSubroutineuiv"
-                               , "glGetUniformdv"
-                               , "glGetUniformfv"
-                               , "glGetUniformiv"
-                               , "glGetUniformuiv"
-                               , "glGetVertexArrayIndexed"
-                               , "glGetVertexArrayIndexed64iv"
-                               , "glGetVertexArrayIndexediv"
-                               , "glGetVertexArrayiv"
-                               , "glGetVertexAttrib"
-                               , "glGetVertexAttribIiv"
-                               , "glGetVertexAttribIuiv"
-                               , "glGetVertexAttribLdv"
-                               , "glGetVertexAttribPointerv"
-                               , "glGetVertexAttribdv"
-                               , "glGetVertexAttribfv"
-                               , "glGetVertexAttribiv"
-                               , "glGetnCompressedTexImage"
-                               , "glGetnTexImage"
-                               , "glGetnUniformdv"
-                               , "glGetnUniformfv"
-                               , "glGetnUniformiv"
-                               , "glGetnUniformuiv"
-                               , "glHint"
-                               , "glInvalidateBufferData"
-                               , "glInvalidateBufferSubData"
-                               , "glInvalidateFramebuffer"
-                               , "glInvalidateNamedFramebufferData"
-                               , "glInvalidateNamedFramebufferSubData"
-                               , "glInvalidateSubFramebuffer"
-                               , "glInvalidateTexImage"
-                               , "glInvalidateTexSubImage"
-                               , "glIsBuffer"
-                               , "glIsEnabled"
-                               , "glIsEnabledi"
-                               , "glIsFramebuffer"
-                               , "glIsProgram"
-                               , "glIsProgramPipeline"
-                               , "glIsQuery"
-                               , "glIsRenderbuffer"
-                               , "glIsSampler"
-                               , "glIsShader"
-                               , "glIsSync"
-                               , "glIsTexture"
-                               , "glIsTransformFeedback"
-                               , "glIsVertexArray"
-                               , "glLineWidth"
-                               , "glLinkProgram"
-                               , "glLogicOp"
-                               , "glMapBuffer"
-                               , "glMapBufferRange"
-                               , "glMapNamedBuffer"
-                               , "glMapNamedBufferRange"
-                               , "glMemoryBarrier"
-                               , "glMemoryBarrierByRegion"
-                               , "glMinSampleShading"
-                               , "glMultiDrawArrays"
-                               , "glMultiDrawArraysIndirect"
-                               , "glMultiDrawElements"
-                               , "glMultiDrawElementsBaseVertex"
-                               , "glMultiDrawElementsIndirect"
-                               , "glNamedBufferData"
-                               , "glNamedBufferStorage"
-                               , "glNamedBufferSubData"
-                               , "glNamedFramebufferDrawBuffer"
-                               , "glNamedFramebufferDrawBuffers"
-                               , "glNamedFramebufferParameteri"
-                               , "glNamedFramebufferReadBuffer"
-                               , "glNamedFramebufferRenderbuffer"
-                               , "glNamedFramebufferTexture"
-                               , "glNamedFramebufferTextureLayer"
-                               , "glNamedRenderbufferStorage"
-                               , "glNamedRenderbufferStorageMultisample"
-                               , "glObjectLabel"
-                               , "glObjectPtrLabel"
-                               , "glPatchParameter"
-                               , "glPatchParameterfv"
-                               , "glPatchParameteri"
-                               , "glPauseTransformFeedback"
-                               , "glPixelStore"
-                               , "glPixelStoref"
-                               , "glPixelStorei"
-                               , "glPointParameter"
-                               , "glPointParameterf"
-                               , "glPointParameterfv"
-                               , "glPointParameteri"
-                               , "glPointParameteriv"
-                               , "glPointSize"
-                               , "glPolygonMode"
-                               , "glPolygonOffset"
-                               , "glPopDebugGroup"
-                               , "glPrimitiveRestartIndex"
-                               , "glProgramBinary"
-                               , "glProgramParameter"
-                               , "glProgramParameteri"
-                               , "glProgramUniform"
-                               , "glProgramUniform1f"
-                               , "glProgramUniform1fv"
-                               , "glProgramUniform1i"
-                               , "glProgramUniform1iv"
-                               , "glProgramUniform1ui"
-                               , "glProgramUniform1uiv"
-                               , "glProgramUniform2f"
-                               , "glProgramUniform2fv"
-                               , "glProgramUniform2i"
-                               , "glProgramUniform2iv"
-                               , "glProgramUniform2ui"
-                               , "glProgramUniform2uiv"
-                               , "glProgramUniform3f"
-                               , "glProgramUniform3fv"
-                               , "glProgramUniform3i"
-                               , "glProgramUniform3iv"
-                               , "glProgramUniform3ui"
-                               , "glProgramUniform3uiv"
-                               , "glProgramUniform4f"
-                               , "glProgramUniform4fv"
-                               , "glProgramUniform4i"
-                               , "glProgramUniform4iv"
-                               , "glProgramUniform4ui"
-                               , "glProgramUniform4uiv"
-                               , "glProgramUniformMatrix2fv"
-                               , "glProgramUniformMatrix2x3fv"
-                               , "glProgramUniformMatrix2x4fv"
-                               , "glProgramUniformMatrix3fv"
-                               , "glProgramUniformMatrix3x2fv"
-                               , "glProgramUniformMatrix3x4fv"
-                               , "glProgramUniformMatrix4fv"
-                               , "glProgramUniformMatrix4x2fv"
-                               , "glProgramUniformMatrix4x3fv"
-                               , "glProvokingVertex"
-                               , "glPushDebugGroup"
-                               , "glQueryCounter"
-                               , "glReadBuffer"
-                               , "glReadPixels"
-                               , "glReadnPixels"
-                               , "glReleaseShaderCompiler"
-                               , "glRenderbufferStorage"
-                               , "glRenderbufferStorageMultisample"
-                               , "glResumeTransformFeedback"
-                               , "glSampleCoverage"
-                               , "glSampleMaski"
-                               , "glSamplerParameter"
-                               , "glSamplerParameterIiv"
-                               , "glSamplerParameterIuiv"
-                               , "glSamplerParameterf"
-                               , "glSamplerParameterfv"
-                               , "glSamplerParameteri"
-                               , "glSamplerParameteriv"
-                               , "glScissor"
-                               , "glScissorArray"
-                               , "glScissorArrayv"
-                               , "glScissorIndexed"
-                               , "glScissorIndexedv"
-                               , "glShaderBinary"
-                               , "glShaderSource"
-                               , "glShaderStorageBlockBinding"
-                               , "glStencilFunc"
-                               , "glStencilFuncSeparate"
-                               , "glStencilMask"
-                               , "glStencilMaskSeparate"
-                               , "glStencilOp"
-                               , "glStencilOpSeparate"
-                               , "glTexBuffer"
-                               , "glTexBufferRange"
-                               , "glTexImage1D"
-                               , "glTexImage2D"
-                               , "glTexImage2DMultisample"
-                               , "glTexImage3D"
-                               , "glTexImage3DMultisample"
-                               , "glTexParameter"
-                               , "glTexParameterIiv"
-                               , "glTexParameterIuiv"
-                               , "glTexParameterf"
-                               , "glTexParameterfv"
-                               , "glTexParameteri"
-                               , "glTexParameteriv"
-                               , "glTexStorage1D"
-                               , "glTexStorage2D"
-                               , "glTexStorage2DMultisample"
-                               , "glTexStorage3D"
-                               , "glTexStorage3DMultisample"
-                               , "glTexSubImage1D"
-                               , "glTexSubImage2D"
-                               , "glTexSubImage3D"
-                               , "glTextureBarrier"
-                               , "glTextureBuffer"
-                               , "glTextureBufferRange"
-                               , "glTextureParameterIiv"
-                               , "glTextureParameterIuiv"
-                               , "glTextureParameterf"
-                               , "glTextureParameterfv"
-                               , "glTextureParameteri"
-                               , "glTextureParameteriv"
-                               , "glTextureStorage1D"
-                               , "glTextureStorage2D"
-                               , "glTextureStorage2DMultisample"
-                               , "glTextureStorage3D"
-                               , "glTextureStorage3DMultisample"
-                               , "glTextureSubImage1D"
-                               , "glTextureSubImage2D"
-                               , "glTextureSubImage3D"
-                               , "glTextureView"
-                               , "glTransformFeedbackBufferBase"
-                               , "glTransformFeedbackBufferRange"
-                               , "glTransformFeedbackVaryings"
-                               , "glUniform"
-                               , "glUniform1f"
-                               , "glUniform1fv"
-                               , "glUniform1i"
-                               , "glUniform1iv"
-                               , "glUniform1ui"
-                               , "glUniform1uiv"
-                               , "glUniform2f"
-                               , "glUniform2fv"
-                               , "glUniform2i"
-                               , "glUniform2iv"
-                               , "glUniform2ui"
-                               , "glUniform2uiv"
-                               , "glUniform3f"
-                               , "glUniform3fv"
-                               , "glUniform3i"
-                               , "glUniform3iv"
-                               , "glUniform3ui"
-                               , "glUniform3uiv"
-                               , "glUniform4f"
-                               , "glUniform4fv"
-                               , "glUniform4i"
-                               , "glUniform4iv"
-                               , "glUniform4ui"
-                               , "glUniform4uiv"
-                               , "glUniformBlockBinding"
-                               , "glUniformMatrix2fv"
-                               , "glUniformMatrix2x3fv"
-                               , "glUniformMatrix2x4fv"
-                               , "glUniformMatrix3fv"
-                               , "glUniformMatrix3x2fv"
-                               , "glUniformMatrix3x4fv"
-                               , "glUniformMatrix4fv"
-                               , "glUniformMatrix4x2fv"
-                               , "glUniformMatrix4x3fv"
-                               , "glUniformSubroutines"
-                               , "glUniformSubroutinesuiv"
-                               , "glUnmapBuffer"
-                               , "glUnmapNamedBuffer"
-                               , "glUseProgram"
-                               , "glUseProgramStages"
-                               , "glValidateProgram"
-                               , "glValidateProgramPipeline"
-                               , "glVertexArrayAttribBinding"
-                               , "glVertexArrayAttribFormat"
-                               , "glVertexArrayAttribIFormat"
-                               , "glVertexArrayAttribLFormat"
-                               , "glVertexArrayBindingDivisor"
-                               , "glVertexArrayElementBuffer"
-                               , "glVertexArrayVertexBuffer"
-                               , "glVertexArrayVertexBuffers"
-                               , "glVertexAttrib"
-                               , "glVertexAttrib1d"
-                               , "glVertexAttrib1dv"
-                               , "glVertexAttrib1f"
-                               , "glVertexAttrib1fv"
-                               , "glVertexAttrib1s"
-                               , "glVertexAttrib1sv"
-                               , "glVertexAttrib2d"
-                               , "glVertexAttrib2dv"
-                               , "glVertexAttrib2f"
-                               , "glVertexAttrib2fv"
-                               , "glVertexAttrib2s"
-                               , "glVertexAttrib2sv"
-                               , "glVertexAttrib3d"
-                               , "glVertexAttrib3dv"
-                               , "glVertexAttrib3f"
-                               , "glVertexAttrib3fv"
-                               , "glVertexAttrib3s"
-                               , "glVertexAttrib3sv"
-                               , "glVertexAttrib4Nbv"
-                               , "glVertexAttrib4Niv"
-                               , "glVertexAttrib4Nsv"
-                               , "glVertexAttrib4Nub"
-                               , "glVertexAttrib4Nubv"
-                               , "glVertexAttrib4Nuiv"
-                               , "glVertexAttrib4Nusv"
-                               , "glVertexAttrib4bv"
-                               , "glVertexAttrib4d"
-                               , "glVertexAttrib4dv"
-                               , "glVertexAttrib4f"
-                               , "glVertexAttrib4fv"
-                               , "glVertexAttrib4iv"
-                               , "glVertexAttrib4s"
-                               , "glVertexAttrib4sv"
-                               , "glVertexAttrib4ubv"
-                               , "glVertexAttrib4uiv"
-                               , "glVertexAttrib4usv"
-                               , "glVertexAttribBinding"
-                               , "glVertexAttribDivisor"
-                               , "glVertexAttribFormat"
-                               , "glVertexAttribI1i"
-                               , "glVertexAttribI1iv"
-                               , "glVertexAttribI1ui"
-                               , "glVertexAttribI1uiv"
-                               , "glVertexAttribI2i"
-                               , "glVertexAttribI2iv"
-                               , "glVertexAttribI2ui"
-                               , "glVertexAttribI2uiv"
-                               , "glVertexAttribI3i"
-                               , "glVertexAttribI3iv"
-                               , "glVertexAttribI3ui"
-                               , "glVertexAttribI3uiv"
-                               , "glVertexAttribI4bv"
-                               , "glVertexAttribI4i"
-                               , "glVertexAttribI4iv"
-                               , "glVertexAttribI4sv"
-                               , "glVertexAttribI4ubv"
-                               , "glVertexAttribI4ui"
-                               , "glVertexAttribI4uiv"
-                               , "glVertexAttribI4usv"
-                               , "glVertexAttribIFormat"
-                               , "glVertexAttribIPointer"
-                               , "glVertexAttribL1d"
-                               , "glVertexAttribL1dv"
-                               , "glVertexAttribL2d"
-                               , "glVertexAttribL2dv"
-                               , "glVertexAttribL3d"
-                               , "glVertexAttribL3dv"
-                               , "glVertexAttribL4d"
-                               , "glVertexAttribL4dv"
-                               , "glVertexAttribLFormat"
-                               , "glVertexAttribLPointer"
-                               , "glVertexAttribP1ui"
-                               , "glVertexAttribP2ui"
-                               , "glVertexAttribP3ui"
-                               , "glVertexAttribP4ui"
-                               , "glVertexAttribPointer"
-                               , "glVertexBindingDivisor"
-                               , "glViewport"
-                               , "glViewportArray"
-                               , "glViewportArrayv"
-                               , "glViewportIndexed"
-                               , "glViewportIndexedf"
-                               , "glViewportIndexedfv"
-                               , "glWaitSync"
-                               , "gl_ClipDistance"
-                               , "gl_CullDistance"
-                               , "gl_FragCoord"
-                               , "gl_FragDepth"
-                               , "gl_FrontFacing"
-                               , "gl_GlobalInvocationID"
-                               , "gl_HelperInvocation"
-                               , "gl_InstanceID"
-                               , "gl_InvocationID"
-                               , "gl_Layer"
-                               , "gl_LocalInvocationID"
-                               , "gl_LocalInvocationIndex"
-                               , "gl_NumSamples"
-                               , "gl_NumWorkGroups"
-                               , "gl_PatchVerticesIn"
-                               , "gl_PointCoord"
-                               , "gl_PointSize"
-                               , "gl_Position"
-                               , "gl_PrimitiveID"
-                               , "gl_PrimitiveIDIn"
-                               , "gl_SampleID"
-                               , "gl_SampleMask"
-                               , "gl_SampleMaskIn"
-                               , "gl_SamplePosition"
-                               , "gl_TessCoord"
-                               , "gl_TessLevelInner"
-                               , "gl_TessLevelOuter"
-                               , "gl_VertexID"
-                               , "gl_ViewportIndex"
-                               , "gl_WorkGroupID"
-                               , "gl_WorkGroupSize"
-                               , "greaterThan"
-                               , "greaterThanEqual"
-                               , "groupMemoryBarrier"
-                               , "imageAtomicAdd"
-                               , "imageAtomicAnd"
-                               , "imageAtomicCompSwap"
-                               , "imageAtomicExchange"
-                               , "imageAtomicMax"
-                               , "imageAtomicMin"
-                               , "imageAtomicOr"
-                               , "imageAtomicXor"
-                               , "imageLoad"
-                               , "imageSamples"
-                               , "imageSize"
-                               , "imageStore"
-                               , "imulExtended"
-                               , "intBitsToFloat"
-                               , "interpolateAtCentroid"
-                               , "interpolateAtOffset"
-                               , "interpolateAtSample"
-                               , "inverse"
-                               , "inversesqrt"
-                               , "isinf"
-                               , "isnan"
-                               , "ldexp"
-                               , "length"
-                               , "lessThan"
-                               , "lessThanEqual"
-                               , "log"
-                               , "log2"
-                               , "matrixCompMult"
-                               , "max"
-                               , "memoryBarrier"
-                               , "memoryBarrierAtomicCounter"
-                               , "memoryBarrierBuffer"
-                               , "memoryBarrierImage"
-                               , "memoryBarrierShared"
-                               , "min"
-                               , "mix"
-                               , "mod"
-                               , "modf"
-                               , "noise"
-                               , "noise1"
-                               , "noise2"
-                               , "noise3"
-                               , "noise4"
-                               , "normalize"
-                               , "not"
-                               , "notEqual"
-                               , "outerProduct"
-                               , "packDouble2x32"
-                               , "packHalf2x16"
-                               , "packSnorm2x16"
-                               , "packSnorm4x8"
-                               , "packUnorm"
-                               , "packUnorm2x16"
-                               , "packUnorm4x8"
-                               , "pow"
-                               , "radians"
-                               , "reflect"
-                               , "refract"
-                               , "removedTypes"
-                               , "round"
-                               , "roundEven"
-                               , "sign"
-                               , "sin"
-                               , "sinh"
-                               , "smoothstep"
-                               , "sqrt"
-                               , "step"
-                               , "tan"
-                               , "tanh"
-                               , "texelFetch"
-                               , "texelFetchOffset"
-                               , "texture"
-                               , "textureGather"
-                               , "textureGatherOffset"
-                               , "textureGatherOffsets"
-                               , "textureGrad"
-                               , "textureGradOffset"
-                               , "textureLod"
-                               , "textureLodOffset"
-                               , "textureOffset"
-                               , "textureProj"
-                               , "textureProjGrad"
-                               , "textureProjGradOffset"
-                               , "textureProjLod"
-                               , "textureProjLodOffset"
-                               , "textureProjOffset"
-                               , "textureQueryLevels"
-                               , "textureQueryLod"
-                               , "textureSamples"
-                               , "textureSize"
-                               , "transpose"
-                               , "trunc"
-                               , "uaddCarry"
-                               , "uintBitsToFloat"
-                               , "umulExtended"
-                               , "unpackDouble2x32"
-                               , "unpackHalf2x16"
-                               , "unpackSnorm2x16"
-                               , "unpackSnorm4x8"
-                               , "unpackUnorm"
-                               , "unpackUnorm2x16"
-                               , "unpackUnorm4x8"
-                               , "usubBorrow"
-                               ])
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "gl_BackColor"
-                               , "gl_BackLightModelProduct"
-                               , "gl_BackLightProduct"
-                               , "gl_BackMaterial"
-                               , "gl_BackSecondaryColor"
-                               , "gl_ClipDistance"
-                               , "gl_ClipPlane"
-                               , "gl_ClipVertex"
-                               , "gl_Color"
-                               , "gl_DepthRange"
-                               , "gl_DepthRangeParameters"
-                               , "gl_EyePlaneQ"
-                               , "gl_EyePlaneR"
-                               , "gl_EyePlaneS"
-                               , "gl_EyePlaneT"
-                               , "gl_Fog"
-                               , "gl_FogColor"
-                               , "gl_FogFragCoord"
-                               , "gl_FogParameters"
-                               , "gl_FragColor"
-                               , "gl_FragCoord"
-                               , "gl_FragData"
-                               , "gl_FragDepth"
-                               , "gl_FragFacing"
-                               , "gl_FrontColor"
-                               , "gl_FrontLightModelProduct"
-                               , "gl_FrontLightProduct"
-                               , "gl_FrontMaterial"
-                               , "gl_FrontSecondaryColor"
-                               , "gl_InvocationID"
-                               , "gl_Layer"
-                               , "gl_LightModel"
-                               , "gl_LightModelParameters"
-                               , "gl_LightModelProducts"
-                               , "gl_LightProducts"
-                               , "gl_LightSource"
-                               , "gl_LightSourceParameters"
-                               , "gl_MaterialParameters"
-                               , "gl_MaxClipPlanes"
-                               , "gl_MaxCombinedTextureImageUnits"
-                               , "gl_MaxDrawBuffers"
-                               , "gl_MaxFragmentUniformComponents"
-                               , "gl_MaxLights"
-                               , "gl_MaxPatchVertices"
-                               , "gl_MaxTextureCoords"
-                               , "gl_MaxTextureImageUnits"
-                               , "gl_MaxTextureUnits"
-                               , "gl_MaxVaryingFloats"
-                               , "gl_MaxVertexAttributes"
-                               , "gl_MaxVertexTextureImageUnits"
-                               , "gl_MaxVertexUniformComponents"
-                               , "gl_ModelViewMatrix"
-                               , "gl_ModelViewMatrixInverse"
-                               , "gl_ModelViewMatrixInverseTranspose"
-                               , "gl_ModelViewMatrixTranspose"
-                               , "gl_ModelViewProjectionMatrix"
-                               , "gl_ModelViewProjectionMatrixInverse"
-                               , "gl_ModelViewProjectionMatrixInverseTranspose"
-                               , "gl_ModelViewProjectionMatrixTranspose"
-                               , "gl_MultiTexCoord0"
-                               , "gl_MultiTexCoord1"
-                               , "gl_MultiTexCoord2"
-                               , "gl_MultiTexCoord3"
-                               , "gl_MultiTexCoord4"
-                               , "gl_MultiTexCoord5"
-                               , "gl_MultiTexCoord6"
-                               , "gl_MultiTexCoord7"
-                               , "gl_NormScale"
-                               , "gl_Normal"
-                               , "gl_NormalMatrix"
-                               , "gl_ObjectPlaneQ"
-                               , "gl_ObjectPlaneR"
-                               , "gl_ObjectPlaneS"
-                               , "gl_ObjectPlaneT"
-                               , "gl_PatchVerticesIn"
-                               , "gl_Point"
-                               , "gl_PointParameters"
-                               , "gl_PointSize"
-                               , "gl_Position"
-                               , "gl_PrimitiveID"
-                               , "gl_PrimitiveIDIn"
-                               , "gl_ProjectionMatrix"
-                               , "gl_ProjectionMatrixInverse"
-                               , "gl_ProjectionMatrixInverseTranspose"
-                               , "gl_ProjectionMatrixTranspose"
-                               , "gl_SecondaryColor"
-                               , "gl_TessCoord"
-                               , "gl_TessLevelInner"
-                               , "gl_TessLevelOuter"
-                               , "gl_TexCoord"
-                               , "gl_TextureEnvColor"
-                               , "gl_TextureMatrix"
-                               , "gl_TextureMatrixInverse"
-                               , "gl_TextureMatrixInverseTranspose"
-                               , "gl_TextureMatrixTranspose"
-                               , "gl_Vertex"
-                               , "gl_ViewportIndex"
-                               , "gl_in"
-                               , "gl_out"
-                               ])
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , 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 ( "GLSL" , "Commentar 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "GLSL" , "Commentar 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "GLSL" , "Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[_\\w][_\\w\\d]*(?=[\\s]*[(])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b[_\\w][_\\w\\d]*(?=[\\s]*[(])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[.]{1,1}"
-                              , reCompiled = Just (compileRegex True "[.]{1,1}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "GLSL" , "Member" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ".+-/*%<>[]()^|&~=!:;,?;"
-                      , 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
-              }
-          )
-        , ( "Preprocessor"
-          , Context
-              { cName = "Preprocessor"
-              , cSyntax = "GLSL"
-              , cRules = []
-              , cAttribute = PreprocessorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Oliver Richers (o.richers@tu-bs.de)"
-  , sVersion = "3"
-  , sLicense = "LGPL"
-  , sExtensions =
-      [ "*.glsl" , "*.vert" , "*.frag" , "*.geom" , "*.tcs" , "*.tes" ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"GLSL\", sFilename = \"glsl.xml\", sShortname = \"Glsl\", sContexts = fromList [(\"Commentar 1\",Context {cName = \"Commentar 1\", cSyntax = \"GLSL\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"BUG\",\"FIXME\",\"TODO\"])), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Commentar 2\",Context {cName = \"Commentar 2\", cSyntax = \"GLSL\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"BUG\",\"FIXME\",\"TODO\"])), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Member\",Context {cName = \"Member\", cSyntax = \"GLSL\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[_\\\\w][_\\\\w\\\\d]*(?=[\\\\s]*)\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"GLSL\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"break\",\"buffer\",\"continue\",\"discard\",\"do\",\"else\",\"false\",\"for\",\"if\",\"invariant\",\"layout\",\"return\",\"struct\",\"subroutine\",\"true\",\"uniform\",\"while\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"atomic_uint\",\"bool\",\"bvec2\",\"bvec3\",\"bvec4\",\"float\",\"int\",\"isampler1D\",\"isampler1DArray\",\"isampler1DArrayShadow\",\"isampler1DShadow\",\"isampler2D\",\"isampler2DArray\",\"isampler2DArrayShadow\",\"isampler2DMS\",\"isampler2DMSArray\",\"isampler2DRect\",\"isampler2DRectShadow\",\"isampler2DShadow\",\"isampler3D\",\"isamplerBuffer\",\"isamplerCube\",\"isamplerCubeArray\",\"isamplerCubeArrayShadow\",\"isamplerCubeShadow\",\"ivec2\",\"ivec3\",\"ivec4\",\"mat2\",\"mat3\",\"mat4\",\"sampler1D\",\"sampler1DArray\",\"sampler1DArrayShadow\",\"sampler1DShadow\",\"sampler2D\",\"sampler2DArray\",\"sampler2DArrayShadow\",\"sampler2DMS\",\"sampler2DMSArray\",\"sampler2DRect\",\"sampler2DRectShadow\",\"sampler2DShadow\",\"sampler3D\",\"samplerBuffer\",\"samplerCube\",\"samplerCubeArray\",\"samplerCubeArrayShadow\",\"samplerCubeShadow\",\"usampler1D\",\"usampler1DArray\",\"usampler1DArrayShadow\",\"usampler1DShadow\",\"usampler2D\",\"usampler2DArray\",\"usampler2DArrayShadow\",\"usampler2DMS\",\"usampler2DMSArray\",\"usampler2DRect\",\"usampler2DRectShadow\",\"usampler2DShadow\",\"usampler3D\",\"usamplerBuffer\",\"usamplerCube\",\"usamplerCubeArray\",\"usamplerCubeArrayShadow\",\"usamplerCubeShadow\",\"vec2\",\"vec3\",\"vec4\",\"void\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"attribute\",\"binding\",\"ccw\",\"coherent\",\"component\",\"const\",\"cw\",\"early_fragment_tests\",\"equal_spacing\",\"flat\",\"fractional_even_spacing\",\"fractional_odd_spacing\",\"in\",\"index\",\"inout\",\"invocations\",\"isolines\",\"line_strip\",\"lines\",\"lines_adjacency\",\"location\",\"max_vertices\",\"noperspective\",\"offset\",\"origin_upper_left\",\"out\",\"packed\",\"pixel_center_integer\",\"point_mode\",\"points\",\"quads\",\"readonly\",\"restrict\",\"row_major\",\"shared\",\"smooth\",\"std140\",\"std430\",\"stream\",\"triangle_strip\",\"triangles\",\"triangles_adjacency\",\"varying\",\"vertices\",\"volatile\",\"writeonly\",\"xfb_buffer\",\"xfb_offset\",\"xfb_stride\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"EmitStreamVertex\",\"EmitVertex\",\"EndPrimitive\",\"EndStreamPrimitive\",\"abs\",\"acos\",\"acosh\",\"all\",\"any\",\"asin\",\"asinh\",\"atan\",\"atanh\",\"atomicAdd\",\"atomicAnd\",\"atomicCompSwap\",\"atomicCounter\",\"atomicCounterDecrement\",\"atomicCounterIncrement\",\"atomicExchange\",\"atomicMax\",\"atomicMin\",\"atomicOr\",\"atomicXor\",\"barrier\",\"bitCount\",\"bitfieldExtract\",\"bitfieldInsert\",\"bitfieldReverse\",\"ceil\",\"clamp\",\"cos\",\"cosh\",\"cross\",\"dFdx\",\"dFdxCoarse\",\"dFdxFine\",\"dFdy\",\"dFdyCoarse\",\"dFdyFine\",\"degrees\",\"determinant\",\"distance\",\"dot\",\"equal\",\"exp\",\"exp2\",\"faceforward\",\"findLSB\",\"findMSB\",\"floatBitsToInt\",\"floatBitsToUint\",\"floor\",\"fma\",\"fract\",\"frexp\",\"fwidth\",\"fwidthCoarse\",\"fwidthFine\",\"glActiveShaderProgram\",\"glActiveTexture\",\"glAttachShader\",\"glBeginConditionalRender\",\"glBeginQuery\",\"glBeginQueryIndexed\",\"glBeginTransformFeedback\",\"glBindAttribLocation\",\"glBindBuffer\",\"glBindBufferBase\",\"glBindBufferRange\",\"glBindBuffersBase\",\"glBindBuffersRange\",\"glBindFragDataLocation\",\"glBindFragDataLocationIndexed\",\"glBindFramebuffer\",\"glBindImageTexture\",\"glBindImageTextures\",\"glBindProgramPipeline\",\"glBindRenderbuffer\",\"glBindSampler\",\"glBindSamplers\",\"glBindTexture\",\"glBindTextureUnit\",\"glBindTextures\",\"glBindTransformFeedback\",\"glBindVertexArray\",\"glBindVertexBuffer\",\"glBindVertexBuffers\",\"glBlendColor\",\"glBlendEquation\",\"glBlendEquationSeparate\",\"glBlendEquationSeparatei\",\"glBlendEquationi\",\"glBlendFunc\",\"glBlendFuncSeparate\",\"glBlendFuncSeparatei\",\"glBlendFunci\",\"glBlitFramebuffer\",\"glBlitNamedFramebuffer\",\"glBufferData\",\"glBufferStorage\",\"glBufferSubData\",\"glCheckFramebufferStatus\",\"glCheckNamedFramebufferStatus\",\"glClampColor\",\"glClear\",\"glClearBuffer\",\"glClearBufferData\",\"glClearBufferSubData\",\"glClearBufferfi\",\"glClearBufferfv\",\"glClearBufferiv\",\"glClearBufferuiv\",\"glClearColor\",\"glClearDepth\",\"glClearDepthf\",\"glClearNamedBufferData\",\"glClearNamedBufferSubData\",\"glClearNamedFramebufferfi\",\"glClearNamedFramebufferfv\",\"glClearNamedFramebufferiv\",\"glClearNamedFramebufferuiv\",\"glClearStencil\",\"glClearTexImage\",\"glClearTexSubImage\",\"glClientWaitSync\",\"glClipControl\",\"glColorMask\",\"glColorMaski\",\"glCompileShader\",\"glCompressedTexImage1D\",\"glCompressedTexImage2D\",\"glCompressedTexImage3D\",\"glCompressedTexSubImage1D\",\"glCompressedTexSubImage2D\",\"glCompressedTexSubImage3D\",\"glCompressedTextureSubImage1D\",\"glCompressedTextureSubImage2D\",\"glCompressedTextureSubImage3D\",\"glCopyBufferSubData\",\"glCopyImageSubData\",\"glCopyNamedBufferSubData\",\"glCopyTexImage1D\",\"glCopyTexImage2D\",\"glCopyTexSubImage1D\",\"glCopyTexSubImage2D\",\"glCopyTexSubImage3D\",\"glCopyTextureSubImage1D\",\"glCopyTextureSubImage2D\",\"glCopyTextureSubImage3D\",\"glCreateBuffers\",\"glCreateFramebuffers\",\"glCreateProgram\",\"glCreateProgramPipelines\",\"glCreateQueries\",\"glCreateRenderbuffers\",\"glCreateSamplers\",\"glCreateShader\",\"glCreateShaderProgram\",\"glCreateShaderProgramv\",\"glCreateTextures\",\"glCreateTransformFeedbacks\",\"glCreateVertexArrays\",\"glCullFace\",\"glDebugMessageCallback\",\"glDebugMessageControl\",\"glDebugMessageInsert\",\"glDeleteBuffers\",\"glDeleteFramebuffers\",\"glDeleteProgram\",\"glDeleteProgramPipelines\",\"glDeleteQueries\",\"glDeleteRenderbuffers\",\"glDeleteSamplers\",\"glDeleteShader\",\"glDeleteSync\",\"glDeleteTextures\",\"glDeleteTransformFeedbacks\",\"glDeleteVertexArrays\",\"glDepthFunc\",\"glDepthMask\",\"glDepthRange\",\"glDepthRangeArray\",\"glDepthRangeArrayv\",\"glDepthRangeIndexed\",\"glDepthRangef\",\"glDetachShader\",\"glDisable\",\"glDisableVertexArrayAttrib\",\"glDisableVertexAttribArray\",\"glDisablei\",\"glDispatchCompute\",\"glDispatchComputeIndirect\",\"glDrawArrays\",\"glDrawArraysIndirect\",\"glDrawArraysInstanced\",\"glDrawArraysInstancedBaseInstance\",\"glDrawBuffer\",\"glDrawBuffers\",\"glDrawElements\",\"glDrawElementsBaseVertex\",\"glDrawElementsIndirect\",\"glDrawElementsInstanced\",\"glDrawElementsInstancedBaseInstance\",\"glDrawElementsInstancedBaseVertex\",\"glDrawElementsInstancedBaseVertexBaseInstance\",\"glDrawRangeElements\",\"glDrawRangeElementsBaseVertex\",\"glDrawTransformFeedback\",\"glDrawTransformFeedbackInstanced\",\"glDrawTransformFeedbackStream\",\"glDrawTransformFeedbackStreamInstanced\",\"glEnable\",\"glEnableVertexArrayAttrib\",\"glEnableVertexAttribArray\",\"glEnablei\",\"glEndConditionalRender\",\"glEndQuery\",\"glEndQueryIndexed\",\"glEndTransformFeedback\",\"glFenceSync\",\"glFinish\",\"glFlush\",\"glFlushMappedBufferRange\",\"glFlushMappedNamedBufferRange\",\"glFramebufferParameteri\",\"glFramebufferRenderbuffer\",\"glFramebufferTexture\",\"glFramebufferTexture1D\",\"glFramebufferTexture2D\",\"glFramebufferTexture3D\",\"glFramebufferTextureLayer\",\"glFrontFace\",\"glGenBuffers\",\"glGenFramebuffers\",\"glGenProgramPipelines\",\"glGenQueries\",\"glGenRenderbuffers\",\"glGenSamplers\",\"glGenTextures\",\"glGenTransformFeedbacks\",\"glGenVertexArrays\",\"glGenerateMipmap\",\"glGenerateTextureMipmap\",\"glGet\",\"glGetActiveAtomicCounterBufferiv\",\"glGetActiveAttrib\",\"glGetActiveSubroutineName\",\"glGetActiveSubroutineUniform\",\"glGetActiveSubroutineUniformName\",\"glGetActiveSubroutineUniformiv\",\"glGetActiveUniform\",\"glGetActiveUniformBlock\",\"glGetActiveUniformBlockName\",\"glGetActiveUniformBlockiv\",\"glGetActiveUniformName\",\"glGetActiveUniformsiv\",\"glGetAttachedShaders\",\"glGetAttribLocation\",\"glGetBooleani_v\",\"glGetBooleanv\",\"glGetBufferParameter\",\"glGetBufferParameteri64v\",\"glGetBufferParameteriv\",\"glGetBufferPointerv\",\"glGetBufferSubData\",\"glGetCompressedTexImage\",\"glGetCompressedTextureImage\",\"glGetCompressedTextureSubImage\",\"glGetDebugMessageLog\",\"glGetDoublei_v\",\"glGetDoublev\",\"glGetError\",\"glGetFloati_v\",\"glGetFloatv\",\"glGetFragDataIndex\",\"glGetFragDataLocation\",\"glGetFramebufferAttachmentParameter\",\"glGetFramebufferAttachmentParameteriv\",\"glGetFramebufferParameter\",\"glGetFramebufferParameteriv\",\"glGetGraphicsResetStatus\",\"glGetInteger64i_v\",\"glGetInteger64v\",\"glGetIntegeri_v\",\"glGetIntegerv\",\"glGetInternalformat\",\"glGetInternalformati64v\",\"glGetInternalformativ\",\"glGetMultisample\",\"glGetMultisamplefv\",\"glGetNamedBufferParameteri64v\",\"glGetNamedBufferParameteriv\",\"glGetNamedBufferPointerv\",\"glGetNamedBufferSubData\",\"glGetNamedFramebufferAttachmentParameteriv\",\"glGetNamedFramebufferParameteriv\",\"glGetNamedRenderbufferParameteriv\",\"glGetObjectLabel\",\"glGetObjectPtrLabel\",\"glGetPointerv\",\"glGetProgram\",\"glGetProgramBinary\",\"glGetProgramInfoLog\",\"glGetProgramInterface\",\"glGetProgramInterfaceiv\",\"glGetProgramPipeline\",\"glGetProgramPipelineInfoLog\",\"glGetProgramPipelineiv\",\"glGetProgramResource\",\"glGetProgramResourceIndex\",\"glGetProgramResourceLocation\",\"glGetProgramResourceLocationIndex\",\"glGetProgramResourceName\",\"glGetProgramResourceiv\",\"glGetProgramStage\",\"glGetProgramStageiv\",\"glGetProgramiv\",\"glGetQueryIndexed\",\"glGetQueryIndexediv\",\"glGetQueryObject\",\"glGetQueryObjecti64v\",\"glGetQueryObjectiv\",\"glGetQueryObjectui64v\",\"glGetQueryObjectuiv\",\"glGetQueryiv\",\"glGetRenderbufferParameter\",\"glGetRenderbufferParameteriv\",\"glGetSamplerParameter\",\"glGetSamplerParameterIiv\",\"glGetSamplerParameterIuiv\",\"glGetSamplerParameterfv\",\"glGetSamplerParameteriv\",\"glGetShader\",\"glGetShaderInfoLog\",\"glGetShaderPrecisionFormat\",\"glGetShaderSource\",\"glGetShaderiv\",\"glGetString\",\"glGetStringi\",\"glGetSubroutineIndex\",\"glGetSubroutineUniformLocation\",\"glGetSync\",\"glGetSynciv\",\"glGetTexImage\",\"glGetTexLevelParameter\",\"glGetTexLevelParameterfv\",\"glGetTexLevelParameteriv\",\"glGetTexParameter\",\"glGetTexParameterIiv\",\"glGetTexParameterIuiv\",\"glGetTexParameterfv\",\"glGetTexParameteriv\",\"glGetTextureImage\",\"glGetTextureLevelParameterfv\",\"glGetTextureLevelParameteriv\",\"glGetTextureParameterIiv\",\"glGetTextureParameterIuiv\",\"glGetTextureParameterfv\",\"glGetTextureParameteriv\",\"glGetTextureSubImage\",\"glGetTransformFeedback\",\"glGetTransformFeedbackVarying\",\"glGetTransformFeedbacki64_v\",\"glGetTransformFeedbacki_v\",\"glGetTransformFeedbackiv\",\"glGetUniform\",\"glGetUniformBlockIndex\",\"glGetUniformIndices\",\"glGetUniformLocation\",\"glGetUniformSubroutine\",\"glGetUniformSubroutineuiv\",\"glGetUniformdv\",\"glGetUniformfv\",\"glGetUniformiv\",\"glGetUniformuiv\",\"glGetVertexArrayIndexed\",\"glGetVertexArrayIndexed64iv\",\"glGetVertexArrayIndexediv\",\"glGetVertexArrayiv\",\"glGetVertexAttrib\",\"glGetVertexAttribIiv\",\"glGetVertexAttribIuiv\",\"glGetVertexAttribLdv\",\"glGetVertexAttribPointerv\",\"glGetVertexAttribdv\",\"glGetVertexAttribfv\",\"glGetVertexAttribiv\",\"glGetnCompressedTexImage\",\"glGetnTexImage\",\"glGetnUniformdv\",\"glGetnUniformfv\",\"glGetnUniformiv\",\"glGetnUniformuiv\",\"glHint\",\"glInvalidateBufferData\",\"glInvalidateBufferSubData\",\"glInvalidateFramebuffer\",\"glInvalidateNamedFramebufferData\",\"glInvalidateNamedFramebufferSubData\",\"glInvalidateSubFramebuffer\",\"glInvalidateTexImage\",\"glInvalidateTexSubImage\",\"glIsBuffer\",\"glIsEnabled\",\"glIsEnabledi\",\"glIsFramebuffer\",\"glIsProgram\",\"glIsProgramPipeline\",\"glIsQuery\",\"glIsRenderbuffer\",\"glIsSampler\",\"glIsShader\",\"glIsSync\",\"glIsTexture\",\"glIsTransformFeedback\",\"glIsVertexArray\",\"glLineWidth\",\"glLinkProgram\",\"glLogicOp\",\"glMapBuffer\",\"glMapBufferRange\",\"glMapNamedBuffer\",\"glMapNamedBufferRange\",\"glMemoryBarrier\",\"glMemoryBarrierByRegion\",\"glMinSampleShading\",\"glMultiDrawArrays\",\"glMultiDrawArraysIndirect\",\"glMultiDrawElements\",\"glMultiDrawElementsBaseVertex\",\"glMultiDrawElementsIndirect\",\"glNamedBufferData\",\"glNamedBufferStorage\",\"glNamedBufferSubData\",\"glNamedFramebufferDrawBuffer\",\"glNamedFramebufferDrawBuffers\",\"glNamedFramebufferParameteri\",\"glNamedFramebufferReadBuffer\",\"glNamedFramebufferRenderbuffer\",\"glNamedFramebufferTexture\",\"glNamedFramebufferTextureLayer\",\"glNamedRenderbufferStorage\",\"glNamedRenderbufferStorageMultisample\",\"glObjectLabel\",\"glObjectPtrLabel\",\"glPatchParameter\",\"glPatchParameterfv\",\"glPatchParameteri\",\"glPauseTransformFeedback\",\"glPixelStore\",\"glPixelStoref\",\"glPixelStorei\",\"glPointParameter\",\"glPointParameterf\",\"glPointParameterfv\",\"glPointParameteri\",\"glPointParameteriv\",\"glPointSize\",\"glPolygonMode\",\"glPolygonOffset\",\"glPopDebugGroup\",\"glPrimitiveRestartIndex\",\"glProgramBinary\",\"glProgramParameter\",\"glProgramParameteri\",\"glProgramUniform\",\"glProgramUniform1f\",\"glProgramUniform1fv\",\"glProgramUniform1i\",\"glProgramUniform1iv\",\"glProgramUniform1ui\",\"glProgramUniform1uiv\",\"glProgramUniform2f\",\"glProgramUniform2fv\",\"glProgramUniform2i\",\"glProgramUniform2iv\",\"glProgramUniform2ui\",\"glProgramUniform2uiv\",\"glProgramUniform3f\",\"glProgramUniform3fv\",\"glProgramUniform3i\",\"glProgramUniform3iv\",\"glProgramUniform3ui\",\"glProgramUniform3uiv\",\"glProgramUniform4f\",\"glProgramUniform4fv\",\"glProgramUniform4i\",\"glProgramUniform4iv\",\"glProgramUniform4ui\",\"glProgramUniform4uiv\",\"glProgramUniformMatrix2fv\",\"glProgramUniformMatrix2x3fv\",\"glProgramUniformMatrix2x4fv\",\"glProgramUniformMatrix3fv\",\"glProgramUniformMatrix3x2fv\",\"glProgramUniformMatrix3x4fv\",\"glProgramUniformMatrix4fv\",\"glProgramUniformMatrix4x2fv\",\"glProgramUniformMatrix4x3fv\",\"glProvokingVertex\",\"glPushDebugGroup\",\"glQueryCounter\",\"glReadBuffer\",\"glReadPixels\",\"glReadnPixels\",\"glReleaseShaderCompiler\",\"glRenderbufferStorage\",\"glRenderbufferStorageMultisample\",\"glResumeTransformFeedback\",\"glSampleCoverage\",\"glSampleMaski\",\"glSamplerParameter\",\"glSamplerParameterIiv\",\"glSamplerParameterIuiv\",\"glSamplerParameterf\",\"glSamplerParameterfv\",\"glSamplerParameteri\",\"glSamplerParameteriv\",\"glScissor\",\"glScissorArray\",\"glScissorArrayv\",\"glScissorIndexed\",\"glScissorIndexedv\",\"glShaderBinary\",\"glShaderSource\",\"glShaderStorageBlockBinding\",\"glStencilFunc\",\"glStencilFuncSeparate\",\"glStencilMask\",\"glStencilMaskSeparate\",\"glStencilOp\",\"glStencilOpSeparate\",\"glTexBuffer\",\"glTexBufferRange\",\"glTexImage1D\",\"glTexImage2D\",\"glTexImage2DMultisample\",\"glTexImage3D\",\"glTexImage3DMultisample\",\"glTexParameter\",\"glTexParameterIiv\",\"glTexParameterIuiv\",\"glTexParameterf\",\"glTexParameterfv\",\"glTexParameteri\",\"glTexParameteriv\",\"glTexStorage1D\",\"glTexStorage2D\",\"glTexStorage2DMultisample\",\"glTexStorage3D\",\"glTexStorage3DMultisample\",\"glTexSubImage1D\",\"glTexSubImage2D\",\"glTexSubImage3D\",\"glTextureBarrier\",\"glTextureBuffer\",\"glTextureBufferRange\",\"glTextureParameterIiv\",\"glTextureParameterIuiv\",\"glTextureParameterf\",\"glTextureParameterfv\",\"glTextureParameteri\",\"glTextureParameteriv\",\"glTextureStorage1D\",\"glTextureStorage2D\",\"glTextureStorage2DMultisample\",\"glTextureStorage3D\",\"glTextureStorage3DMultisample\",\"glTextureSubImage1D\",\"glTextureSubImage2D\",\"glTextureSubImage3D\",\"glTextureView\",\"glTransformFeedbackBufferBase\",\"glTransformFeedbackBufferRange\",\"glTransformFeedbackVaryings\",\"glUniform\",\"glUniform1f\",\"glUniform1fv\",\"glUniform1i\",\"glUniform1iv\",\"glUniform1ui\",\"glUniform1uiv\",\"glUniform2f\",\"glUniform2fv\",\"glUniform2i\",\"glUniform2iv\",\"glUniform2ui\",\"glUniform2uiv\",\"glUniform3f\",\"glUniform3fv\",\"glUniform3i\",\"glUniform3iv\",\"glUniform3ui\",\"glUniform3uiv\",\"glUniform4f\",\"glUniform4fv\",\"glUniform4i\",\"glUniform4iv\",\"glUniform4ui\",\"glUniform4uiv\",\"glUniformBlockBinding\",\"glUniformMatrix2fv\",\"glUniformMatrix2x3fv\",\"glUniformMatrix2x4fv\",\"glUniformMatrix3fv\",\"glUniformMatrix3x2fv\",\"glUniformMatrix3x4fv\",\"glUniformMatrix4fv\",\"glUniformMatrix4x2fv\",\"glUniformMatrix4x3fv\",\"glUniformSubroutines\",\"glUniformSubroutinesuiv\",\"glUnmapBuffer\",\"glUnmapNamedBuffer\",\"glUseProgram\",\"glUseProgramStages\",\"glValidateProgram\",\"glValidateProgramPipeline\",\"glVertexArrayAttribBinding\",\"glVertexArrayAttribFormat\",\"glVertexArrayAttribIFormat\",\"glVertexArrayAttribLFormat\",\"glVertexArrayBindingDivisor\",\"glVertexArrayElementBuffer\",\"glVertexArrayVertexBuffer\",\"glVertexArrayVertexBuffers\",\"glVertexAttrib\",\"glVertexAttrib1d\",\"glVertexAttrib1dv\",\"glVertexAttrib1f\",\"glVertexAttrib1fv\",\"glVertexAttrib1s\",\"glVertexAttrib1sv\",\"glVertexAttrib2d\",\"glVertexAttrib2dv\",\"glVertexAttrib2f\",\"glVertexAttrib2fv\",\"glVertexAttrib2s\",\"glVertexAttrib2sv\",\"glVertexAttrib3d\",\"glVertexAttrib3dv\",\"glVertexAttrib3f\",\"glVertexAttrib3fv\",\"glVertexAttrib3s\",\"glVertexAttrib3sv\",\"glVertexAttrib4Nbv\",\"glVertexAttrib4Niv\",\"glVertexAttrib4Nsv\",\"glVertexAttrib4Nub\",\"glVertexAttrib4Nubv\",\"glVertexAttrib4Nuiv\",\"glVertexAttrib4Nusv\",\"glVertexAttrib4bv\",\"glVertexAttrib4d\",\"glVertexAttrib4dv\",\"glVertexAttrib4f\",\"glVertexAttrib4fv\",\"glVertexAttrib4iv\",\"glVertexAttrib4s\",\"glVertexAttrib4sv\",\"glVertexAttrib4ubv\",\"glVertexAttrib4uiv\",\"glVertexAttrib4usv\",\"glVertexAttribBinding\",\"glVertexAttribDivisor\",\"glVertexAttribFormat\",\"glVertexAttribI1i\",\"glVertexAttribI1iv\",\"glVertexAttribI1ui\",\"glVertexAttribI1uiv\",\"glVertexAttribI2i\",\"glVertexAttribI2iv\",\"glVertexAttribI2ui\",\"glVertexAttribI2uiv\",\"glVertexAttribI3i\",\"glVertexAttribI3iv\",\"glVertexAttribI3ui\",\"glVertexAttribI3uiv\",\"glVertexAttribI4bv\",\"glVertexAttribI4i\",\"glVertexAttribI4iv\",\"glVertexAttribI4sv\",\"glVertexAttribI4ubv\",\"glVertexAttribI4ui\",\"glVertexAttribI4uiv\",\"glVertexAttribI4usv\",\"glVertexAttribIFormat\",\"glVertexAttribIPointer\",\"glVertexAttribL1d\",\"glVertexAttribL1dv\",\"glVertexAttribL2d\",\"glVertexAttribL2dv\",\"glVertexAttribL3d\",\"glVertexAttribL3dv\",\"glVertexAttribL4d\",\"glVertexAttribL4dv\",\"glVertexAttribLFormat\",\"glVertexAttribLPointer\",\"glVertexAttribP1ui\",\"glVertexAttribP2ui\",\"glVertexAttribP3ui\",\"glVertexAttribP4ui\",\"glVertexAttribPointer\",\"glVertexBindingDivisor\",\"glViewport\",\"glViewportArray\",\"glViewportArrayv\",\"glViewportIndexed\",\"glViewportIndexedf\",\"glViewportIndexedfv\",\"glWaitSync\",\"gl_ClipDistance\",\"gl_CullDistance\",\"gl_FragCoord\",\"gl_FragDepth\",\"gl_FrontFacing\",\"gl_GlobalInvocationID\",\"gl_HelperInvocation\",\"gl_InstanceID\",\"gl_InvocationID\",\"gl_Layer\",\"gl_LocalInvocationID\",\"gl_LocalInvocationIndex\",\"gl_NumSamples\",\"gl_NumWorkGroups\",\"gl_PatchVerticesIn\",\"gl_PointCoord\",\"gl_PointSize\",\"gl_Position\",\"gl_PrimitiveID\",\"gl_PrimitiveIDIn\",\"gl_SampleID\",\"gl_SampleMask\",\"gl_SampleMaskIn\",\"gl_SamplePosition\",\"gl_TessCoord\",\"gl_TessLevelInner\",\"gl_TessLevelOuter\",\"gl_VertexID\",\"gl_ViewportIndex\",\"gl_WorkGroupID\",\"gl_WorkGroupSize\",\"greaterThan\",\"greaterThanEqual\",\"groupMemoryBarrier\",\"imageAtomicAdd\",\"imageAtomicAnd\",\"imageAtomicCompSwap\",\"imageAtomicExchange\",\"imageAtomicMax\",\"imageAtomicMin\",\"imageAtomicOr\",\"imageAtomicXor\",\"imageLoad\",\"imageSamples\",\"imageSize\",\"imageStore\",\"imulExtended\",\"intBitsToFloat\",\"interpolateAtCentroid\",\"interpolateAtOffset\",\"interpolateAtSample\",\"inverse\",\"inversesqrt\",\"isinf\",\"isnan\",\"ldexp\",\"length\",\"lessThan\",\"lessThanEqual\",\"log\",\"log2\",\"matrixCompMult\",\"max\",\"memoryBarrier\",\"memoryBarrierAtomicCounter\",\"memoryBarrierBuffer\",\"memoryBarrierImage\",\"memoryBarrierShared\",\"min\",\"mix\",\"mod\",\"modf\",\"noise\",\"noise1\",\"noise2\",\"noise3\",\"noise4\",\"normalize\",\"not\",\"notEqual\",\"outerProduct\",\"packDouble2x32\",\"packHalf2x16\",\"packSnorm2x16\",\"packSnorm4x8\",\"packUnorm\",\"packUnorm2x16\",\"packUnorm4x8\",\"pow\",\"radians\",\"reflect\",\"refract\",\"removedTypes\",\"round\",\"roundEven\",\"sign\",\"sin\",\"sinh\",\"smoothstep\",\"sqrt\",\"step\",\"tan\",\"tanh\",\"texelFetch\",\"texelFetchOffset\",\"texture\",\"textureGather\",\"textureGatherOffset\",\"textureGatherOffsets\",\"textureGrad\",\"textureGradOffset\",\"textureLod\",\"textureLodOffset\",\"textureOffset\",\"textureProj\",\"textureProjGrad\",\"textureProjGradOffset\",\"textureProjLod\",\"textureProjLodOffset\",\"textureProjOffset\",\"textureQueryLevels\",\"textureQueryLod\",\"textureSamples\",\"textureSize\",\"transpose\",\"trunc\",\"uaddCarry\",\"uintBitsToFloat\",\"umulExtended\",\"unpackDouble2x32\",\"unpackHalf2x16\",\"unpackSnorm2x16\",\"unpackSnorm4x8\",\"unpackUnorm\",\"unpackUnorm2x16\",\"unpackUnorm4x8\",\"usubBorrow\"])), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"gl_BackColor\",\"gl_BackLightModelProduct\",\"gl_BackLightProduct\",\"gl_BackMaterial\",\"gl_BackSecondaryColor\",\"gl_ClipDistance\",\"gl_ClipPlane\",\"gl_ClipVertex\",\"gl_Color\",\"gl_DepthRange\",\"gl_DepthRangeParameters\",\"gl_EyePlaneQ\",\"gl_EyePlaneR\",\"gl_EyePlaneS\",\"gl_EyePlaneT\",\"gl_Fog\",\"gl_FogColor\",\"gl_FogFragCoord\",\"gl_FogParameters\",\"gl_FragColor\",\"gl_FragCoord\",\"gl_FragData\",\"gl_FragDepth\",\"gl_FragFacing\",\"gl_FrontColor\",\"gl_FrontLightModelProduct\",\"gl_FrontLightProduct\",\"gl_FrontMaterial\",\"gl_FrontSecondaryColor\",\"gl_InvocationID\",\"gl_Layer\",\"gl_LightModel\",\"gl_LightModelParameters\",\"gl_LightModelProducts\",\"gl_LightProducts\",\"gl_LightSource\",\"gl_LightSourceParameters\",\"gl_MaterialParameters\",\"gl_MaxClipPlanes\",\"gl_MaxCombinedTextureImageUnits\",\"gl_MaxDrawBuffers\",\"gl_MaxFragmentUniformComponents\",\"gl_MaxLights\",\"gl_MaxPatchVertices\",\"gl_MaxTextureCoords\",\"gl_MaxTextureImageUnits\",\"gl_MaxTextureUnits\",\"gl_MaxVaryingFloats\",\"gl_MaxVertexAttributes\",\"gl_MaxVertexTextureImageUnits\",\"gl_MaxVertexUniformComponents\",\"gl_ModelViewMatrix\",\"gl_ModelViewMatrixInverse\",\"gl_ModelViewMatrixInverseTranspose\",\"gl_ModelViewMatrixTranspose\",\"gl_ModelViewProjectionMatrix\",\"gl_ModelViewProjectionMatrixInverse\",\"gl_ModelViewProjectionMatrixInverseTranspose\",\"gl_ModelViewProjectionMatrixTranspose\",\"gl_MultiTexCoord0\",\"gl_MultiTexCoord1\",\"gl_MultiTexCoord2\",\"gl_MultiTexCoord3\",\"gl_MultiTexCoord4\",\"gl_MultiTexCoord5\",\"gl_MultiTexCoord6\",\"gl_MultiTexCoord7\",\"gl_NormScale\",\"gl_Normal\",\"gl_NormalMatrix\",\"gl_ObjectPlaneQ\",\"gl_ObjectPlaneR\",\"gl_ObjectPlaneS\",\"gl_ObjectPlaneT\",\"gl_PatchVerticesIn\",\"gl_Point\",\"gl_PointParameters\",\"gl_PointSize\",\"gl_Position\",\"gl_PrimitiveID\",\"gl_PrimitiveIDIn\",\"gl_ProjectionMatrix\",\"gl_ProjectionMatrixInverse\",\"gl_ProjectionMatrixInverseTranspose\",\"gl_ProjectionMatrixTranspose\",\"gl_SecondaryColor\",\"gl_TessCoord\",\"gl_TessLevelInner\",\"gl_TessLevelOuter\",\"gl_TexCoord\",\"gl_TextureEnvColor\",\"gl_TextureMatrix\",\"gl_TextureMatrixInverse\",\"gl_TextureMatrixInverseTranspose\",\"gl_TextureMatrixTranspose\",\"gl_Vertex\",\"gl_ViewportIndex\",\"gl_in\",\"gl_out\"])), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, 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 (\"GLSL\",\"Commentar 1\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"GLSL\",\"Commentar 2\")]},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '#', rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"GLSL\",\"Preprocessor\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[_\\\\w][_\\\\w\\\\d]*(?=[\\\\s]*[(])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[.]{1,1}\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"GLSL\",\"Member\")]},Rule {rMatcher = AnyChar \".+-/*%<>[]()^|&~=!:;,?;\", 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}),(\"Preprocessor\",Context {cName = \"Preprocessor\", cSyntax = \"GLSL\", cRules = [], cAttribute = PreprocessorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Oliver Richers (o.richers@tu-bs.de)\", sVersion = \"3\", sLicense = \"LGPL\", sExtensions = [\"*.glsl\",\"*.vert\",\"*.frag\",\"*.geom\",\"*.tcs\",\"*.tes\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Gnuassembler.hs b/src/Skylighting/Syntax/Gnuassembler.hs
--- a/src/Skylighting/Syntax/Gnuassembler.hs
+++ b/src/Skylighting/Syntax/Gnuassembler.hs
@@ -2,687 +2,6 @@
 module Skylighting.Syntax.Gnuassembler (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "GNU Assembler"
-  , sFilename = "gnuassembler.xml"
-  , sShortname = "Gnuassembler"
-  , sContexts =
-      fromList
-        [ ( "Commentar 1"
-          , Context
-              { cName = "Commentar 1"
-              , cSyntax = "GNU Assembler"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , 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 ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Commentar 2"
-          , Context
-              { cName = "Commentar 2"
-              , cSyntax = "GNU Assembler"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Define"
-          , Context
-              { cName = "Define"
-              , cSyntax = "GNU Assembler"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = PreprocessorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "GNU Assembler"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[_\\w\\d-]*\\s*:"
-                              , reCompiled = Just (compileRegex True "[_\\w\\d-]*\\s*:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ ".abort"
-                               , ".align"
-                               , ".app-file"
-                               , ".appline"
-                               , ".arm"
-                               , ".ascii"
-                               , ".asciz"
-                               , ".att_syntax"
-                               , ".balign"
-                               , ".balignl"
-                               , ".balignw"
-                               , ".bss"
-                               , ".byte"
-                               , ".code"
-                               , ".code16"
-                               , ".code32"
-                               , ".comm"
-                               , ".common"
-                               , ".common.s"
-                               , ".data"
-                               , ".dc"
-                               , ".dc.b"
-                               , ".dc.d"
-                               , ".dc.l"
-                               , ".dc.s"
-                               , ".dc.w"
-                               , ".dc.x"
-                               , ".dcb"
-                               , ".dcb.b"
-                               , ".dcb.d"
-                               , ".dcb.l"
-                               , ".dcb.s"
-                               , ".dcb.w"
-                               , ".dcb.x"
-                               , ".debug"
-                               , ".def"
-                               , ".desc"
-                               , ".dim"
-                               , ".double"
-                               , ".ds"
-                               , ".ds.b"
-                               , ".ds.d"
-                               , ".ds.l"
-                               , ".ds.p"
-                               , ".ds.s"
-                               , ".ds.w"
-                               , ".ds.x"
-                               , ".dsect"
-                               , ".eject"
-                               , ".else"
-                               , ".elsec"
-                               , ".elseif"
-                               , ".end"
-                               , ".endc"
-                               , ".endef"
-                               , ".endfunc"
-                               , ".endif"
-                               , ".endm"
-                               , ".endr"
-                               , ".equ"
-                               , ".equiv"
-                               , ".err"
-                               , ".even"
-                               , ".exitm"
-                               , ".extend"
-                               , ".extern"
-                               , ".fail"
-                               , ".file"
-                               , ".fill"
-                               , ".float"
-                               , ".force_thumb"
-                               , ".format"
-                               , ".func"
-                               , ".global"
-                               , ".globl"
-                               , ".hidden"
-                               , ".hword"
-                               , ".ident"
-                               , ".if"
-                               , ".ifc"
-                               , ".ifdef"
-                               , ".ifeq"
-                               , ".ifeqs"
-                               , ".ifge"
-                               , ".ifgt"
-                               , ".ifle"
-                               , ".iflt"
-                               , ".ifnc"
-                               , ".ifndef"
-                               , ".ifne"
-                               , ".ifnes"
-                               , ".ifnotdef"
-                               , ".include"
-                               , ".int"
-                               , ".intel_syntax"
-                               , ".internal"
-                               , ".irep"
-                               , ".irepc"
-                               , ".irp"
-                               , ".irpc"
-                               , ".lcomm"
-                               , ".ldouble"
-                               , ".lflags"
-                               , ".line"
-                               , ".linkonce"
-                               , ".list"
-                               , ".llen"
-                               , ".ln"
-                               , ".loc"
-                               , ".long"
-                               , ".lsym"
-                               , ".ltorg"
-                               , ".macro"
-                               , ".mexit"
-                               , ".name"
-                               , ".noformat"
-                               , ".nolist"
-                               , ".nopage"
-                               , ".octa"
-                               , ".offset"
-                               , ".org"
-                               , ".p2align"
-                               , ".p2alignl"
-                               , ".p2alignw"
-                               , ".packed"
-                               , ".page"
-                               , ".plen"
-                               , ".pool"
-                               , ".popsection"
-                               , ".previous"
-                               , ".print"
-                               , ".protected"
-                               , ".psize"
-                               , ".purgem"
-                               , ".pushsection"
-                               , ".quad"
-                               , ".rep"
-                               , ".rept"
-                               , ".req"
-                               , ".rodata"
-                               , ".rva"
-                               , ".sbttl"
-                               , ".scl"
-                               , ".sect"
-                               , ".sect.s"
-                               , ".section"
-                               , ".section.s"
-                               , ".set"
-                               , ".short"
-                               , ".single"
-                               , ".size"
-                               , ".skip"
-                               , ".sleb128"
-                               , ".space"
-                               , ".spc"
-                               , ".stabd"
-                               , ".stabn"
-                               , ".stabs"
-                               , ".string"
-                               , ".struct"
-                               , ".subsection"
-                               , ".symver"
-                               , ".tag"
-                               , ".text"
-                               , ".thumb"
-                               , ".thumb_func"
-                               , ".thumb_set"
-                               , ".title"
-                               , ".ttl"
-                               , ".type"
-                               , ".uleb128"
-                               , ".use"
-                               , ".val"
-                               , ".version"
-                               , ".vtable_entry"
-                               , ".vtable_inherit"
-                               , ".weak"
-                               , ".word"
-                               , ".xcom"
-                               , ".xdef"
-                               , ".xref"
-                               , ".xstabs"
-                               , ".zero"
-                               , "noprefix"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "0[bB][01]+"
-                              , reCompiled = Just (compileRegex True "0[bB][01]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "0[fFeEdD][-+]?[0-9]*\\.?[0-9]*[eE]?[-+]?[0-9]+"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "0[fFeEdD][-+]?[0-9]*\\.?[0-9]*[eE]?[-+]?[0-9]+")
-                              , 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-z_.$][A-Za-z0-9_.$]*"
-                              , reCompiled =
-                                  Just (compileRegex True "[A-Za-z_.$][A-Za-z0-9_.$]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "'(\\\\x[0-9a-fA-F][0-9a-fA-F]?|\\\\[0-7]?[0-7]?[0-7]?|\\\\.|.)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "'(\\\\x[0-9a-fA-F][0-9a-fA-F]?|\\\\[0-7]?[0-7]?[0-7]?|\\\\.|.)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "GNU Assembler" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*if(?:def|ndef)?(?=\\s+\\S)"
-                              , reCompiled =
-                                  Just (compileRegex False "#\\s*if(?:def|ndef)?(?=\\s+\\S)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "GNU Assembler" , "Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*endif"
-                              , reCompiled = Just (compileRegex False "#\\s*endif")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "GNU Assembler" , "Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*define.*((?=\\\\))"
-                              , reCompiled = Just (compileRegex False "#\\s*define.*((?=\\\\))")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "GNU Assembler" , "Define" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "#\\s*(?:el(?:se|if)|include(?:_next)?|define|undef|line|error|warning|pragma)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "#\\s*(?:el(?:se|if)|include(?:_next)?|define|undef|line|error|warning|pragma)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "GNU Assembler" , "Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "GNU Assembler" , "Commentar 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "@;#"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "GNU Assembler" , "Commentar 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "!#%&*()+,-<=>?/:[]^{|}~"
-                      , 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
-              }
-          )
-        , ( "Preprocessor"
-          , Context
-              { cName = "Preprocessor"
-              , cSyntax = "GNU Assembler"
-              , cRules = []
-              , cAttribute = PreprocessorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Some Context"
-          , Context
-              { cName = "Some Context"
-              , cSyntax = "GNU Assembler"
-              , cRules = []
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "GNU Assembler"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "GNU Assembler" , "Some Context" ) ]
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor =
-      "John Zaitseff (J.Zaitseff@zap.org.au), Roland Pabel (roland@pabel.name), Miquel Sabat\233 (mikisabate@gmail.com)"
-  , sVersion = "3"
-  , sLicense = "GPLv2+"
-  , sExtensions = [ "*.s" , "*.S" ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"GNU Assembler\", sFilename = \"gnuassembler.xml\", sShortname = \"Gnuassembler\", sContexts = fromList [(\"Commentar 1\",Context {cName = \"Commentar 1\", cSyntax = \"GNU Assembler\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), 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]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Commentar 2\",Context {cName = \"Commentar 2\", cSyntax = \"GNU Assembler\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Define\",Context {cName = \"Define\", cSyntax = \"GNU Assembler\", cRules = [Rule {rMatcher = LineContinue, rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = PreprocessorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"GNU Assembler\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[_\\\\w\\\\d-]*\\\\s*:\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\".abort\",\".align\",\".app-file\",\".appline\",\".arm\",\".ascii\",\".asciz\",\".att_syntax\",\".balign\",\".balignl\",\".balignw\",\".bss\",\".byte\",\".code\",\".code16\",\".code32\",\".comm\",\".common\",\".common.s\",\".data\",\".dc\",\".dc.b\",\".dc.d\",\".dc.l\",\".dc.s\",\".dc.w\",\".dc.x\",\".dcb\",\".dcb.b\",\".dcb.d\",\".dcb.l\",\".dcb.s\",\".dcb.w\",\".dcb.x\",\".debug\",\".def\",\".desc\",\".dim\",\".double\",\".ds\",\".ds.b\",\".ds.d\",\".ds.l\",\".ds.p\",\".ds.s\",\".ds.w\",\".ds.x\",\".dsect\",\".eject\",\".else\",\".elsec\",\".elseif\",\".end\",\".endc\",\".endef\",\".endfunc\",\".endif\",\".endm\",\".endr\",\".equ\",\".equiv\",\".err\",\".even\",\".exitm\",\".extend\",\".extern\",\".fail\",\".file\",\".fill\",\".float\",\".force_thumb\",\".format\",\".func\",\".global\",\".globl\",\".hidden\",\".hword\",\".ident\",\".if\",\".ifc\",\".ifdef\",\".ifeq\",\".ifeqs\",\".ifge\",\".ifgt\",\".ifle\",\".iflt\",\".ifnc\",\".ifndef\",\".ifne\",\".ifnes\",\".ifnotdef\",\".include\",\".int\",\".intel_syntax\",\".internal\",\".irep\",\".irepc\",\".irp\",\".irpc\",\".lcomm\",\".ldouble\",\".lflags\",\".line\",\".linkonce\",\".list\",\".llen\",\".ln\",\".loc\",\".long\",\".lsym\",\".ltorg\",\".macro\",\".mexit\",\".name\",\".noformat\",\".nolist\",\".nopage\",\".octa\",\".offset\",\".org\",\".p2align\",\".p2alignl\",\".p2alignw\",\".packed\",\".page\",\".plen\",\".pool\",\".popsection\",\".previous\",\".print\",\".protected\",\".psize\",\".purgem\",\".pushsection\",\".quad\",\".rep\",\".rept\",\".req\",\".rodata\",\".rva\",\".sbttl\",\".scl\",\".sect\",\".sect.s\",\".section\",\".section.s\",\".set\",\".short\",\".single\",\".size\",\".skip\",\".sleb128\",\".space\",\".spc\",\".stabd\",\".stabn\",\".stabs\",\".string\",\".struct\",\".subsection\",\".symver\",\".tag\",\".text\",\".thumb\",\".thumb_func\",\".thumb_set\",\".title\",\".ttl\",\".type\",\".uleb128\",\".use\",\".val\",\".version\",\".vtable_entry\",\".vtable_inherit\",\".weak\",\".word\",\".xcom\",\".xdef\",\".xref\",\".xstabs\",\".zero\",\"noprefix\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"0[bB][01]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"0[fFeEdD][-+]?[0-9]*\\\\.?[0-9]*[eE]?[-+]?[0-9]+\", 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-z_.$][A-Za-z0-9_.$]*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"'(\\\\\\\\x[0-9a-fA-F][0-9a-fA-F]?|\\\\\\\\[0-7]?[0-7]?[0-7]?|\\\\\\\\.|.)\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"GNU Assembler\",\"String\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*if(?:def|ndef)?(?=\\\\s+\\\\S)\", reCaseSensitive = False}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"GNU Assembler\",\"Preprocessor\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*endif\", reCaseSensitive = False}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"GNU Assembler\",\"Preprocessor\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*define.*((?=\\\\\\\\))\", reCaseSensitive = False}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"GNU Assembler\",\"Define\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*(?:el(?:se|if)|include(?:_next)?|define|undef|line|error|warning|pragma)\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"GNU Assembler\",\"Preprocessor\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"GNU Assembler\",\"Commentar 1\")]},Rule {rMatcher = AnyChar \"@;#\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"GNU Assembler\",\"Commentar 2\")]},Rule {rMatcher = AnyChar \"!#%&*()+,-<=>?/:[]^{|}~\", 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}),(\"Preprocessor\",Context {cName = \"Preprocessor\", cSyntax = \"GNU Assembler\", cRules = [], cAttribute = PreprocessorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Some Context\",Context {cName = \"Some Context\", cSyntax = \"GNU Assembler\", cRules = [], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"GNU Assembler\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"GNU Assembler\",\"Some Context\")]},Rule {rMatcher = HlCStringChar, rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"John Zaitseff (J.Zaitseff@zap.org.au), Roland Pabel (roland@pabel.name), Miquel Sabat\\233 (mikisabate@gmail.com)\", sVersion = \"3\", sLicense = \"GPLv2+\", sExtensions = [\"*.s\",\"*.S\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Go.hs b/src/Skylighting/Syntax/Go.hs
--- a/src/Skylighting/Syntax/Go.hs
+++ b/src/Skylighting/Syntax/Go.hs
@@ -2,561 +2,6 @@
 module Skylighting.Syntax.Go (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Go"
-  , sFilename = "go.xml"
-  , sShortname = "Go"
-  , sContexts =
-      fromList
-        [ ( "Commentar 1"
-          , Context
-              { cName = "Commentar 1"
-              , cSyntax = "Go"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Commentar 2"
-          , Context
-              { cName = "Commentar 2"
-              , cSyntax = "Go"
-              , 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
-              }
-          )
-        , ( "Multiline String"
-          , Context
-              { cName = "Multiline String"
-              , cSyntax = "Go"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Go"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "normal"
-          , Context
-              { cName = "normal"
-              , cSyntax = "Go"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "break"
-                               , "case"
-                               , "chan"
-                               , "const"
-                               , "continue"
-                               , "default"
-                               , "defer"
-                               , "else"
-                               , "fallthrough"
-                               , "for"
-                               , "func"
-                               , "go"
-                               , "goto"
-                               , "if"
-                               , "import"
-                               , "interface"
-                               , "map"
-                               , "package"
-                               , "range"
-                               , "return"
-                               , "select"
-                               , "struct"
-                               , "switch"
-                               , "type"
-                               , "var"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "false" , "iota" , "nil" , "true" ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "bool"
-                               , "byte"
-                               , "complex128"
-                               , "complex64"
-                               , "error"
-                               , "float32"
-                               , "float64"
-                               , "int"
-                               , "int16"
-                               , "int32"
-                               , "int64"
-                               , "int8"
-                               , "rune"
-                               , "string"
-                               , "uint"
-                               , "uint16"
-                               , "uint32"
-                               , "uint64"
-                               , "uint8"
-                               , "uintptr"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "append"
-                               , "cap"
-                               , "close"
-                               , "complex"
-                               , "copy"
-                               , "delete"
-                               , "imag"
-                               , "len"
-                               , "make"
-                               , "new"
-                               , "panic"
-                               , "print"
-                               , "println"
-                               , "real"
-                               , "recover"
-                               ])
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , 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 ( "Go" , "Commentar 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Go" , "Commentar 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Go" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Go" , "Multiline String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ":!%&()+,-/.*<=>?[]|~^;"
-                      , 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
-              }
-          )
-        ]
-  , sAuthor = "Miquel Sabat\233 (mikisabate@gmail.com)"
-  , sVersion = "3"
-  , sLicense = "GPLv2+"
-  , sExtensions = [ "*.go" ]
-  , sStartingContext = "normal"
-  }
+syntax = read $! "Syntax {sName = \"Go\", sFilename = \"go.xml\", sShortname = \"Go\", sContexts = fromList [(\"Commentar 1\",Context {cName = \"Commentar 1\", cSyntax = \"Go\", cRules = [Rule {rMatcher = LineContinue, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},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 = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Commentar 2\",Context {cName = \"Commentar 2\", cSyntax = \"Go\", 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}),(\"Multiline String\",Context {cName = \"Multiline String\", cSyntax = \"Go\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCStringChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '`', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Go\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCStringChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"normal\",Context {cName = \"normal\", cSyntax = \"Go\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"break\",\"case\",\"chan\",\"const\",\"continue\",\"default\",\"defer\",\"else\",\"fallthrough\",\"for\",\"func\",\"go\",\"goto\",\"if\",\"import\",\"interface\",\"map\",\"package\",\"range\",\"return\",\"select\",\"struct\",\"switch\",\"type\",\"var\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"false\",\"iota\",\"nil\",\"true\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"bool\",\"byte\",\"complex128\",\"complex64\",\"error\",\"float32\",\"float64\",\"int\",\"int16\",\"int32\",\"int64\",\"int8\",\"rune\",\"string\",\"uint\",\"uint16\",\"uint32\",\"uint64\",\"uint8\",\"uintptr\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"append\",\"cap\",\"close\",\"complex\",\"copy\",\"delete\",\"imag\",\"len\",\"make\",\"new\",\"panic\",\"print\",\"println\",\"real\",\"recover\"])), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, 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 (\"Go\",\"Commentar 1\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Go\",\"Commentar 2\")]},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Go\",\"String\")]},Rule {rMatcher = DetectChar '`', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Go\",\"Multiline String\")]},Rule {rMatcher = AnyChar \":!%&()+,-/.*<=>?[]|~^;\", 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})], sAuthor = \"Miquel Sabat\\233 (mikisabate@gmail.com)\", sVersion = \"3\", sLicense = \"GPLv2+\", sExtensions = [\"*.go\"], sStartingContext = \"normal\"}"
diff --git a/src/Skylighting/Syntax/Hamlet.hs b/src/Skylighting/Syntax/Hamlet.hs
--- a/src/Skylighting/Syntax/Hamlet.hs
+++ b/src/Skylighting/Syntax/Hamlet.hs
@@ -2,687 +2,6 @@
 module Skylighting.Syntax.Hamlet (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Hamlet"
-  , sFilename = "hamlet.xml"
-  , sShortname = "Hamlet"
-  , sContexts =
-      fromList
-        [ ( "Assignment"
-          , Context
-              { cName = "Assignment"
-              , cSyntax = "Hamlet"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<-"
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Hamlet" , "Codeline" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Haskell" , "" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Attribute"
-          , Context
-              { cName = "Attribute"
-              , cSyntax = "Hamlet"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Hamlet" , "Value" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , 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
-              }
-          )
-        , ( "Code"
-          , Context
-              { cName = "Code"
-              , cSyntax = "Hamlet"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Haskell" , "" )
-                      , 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
-              }
-          )
-        , ( "Codeline"
-          , Context
-              { cName = "Codeline"
-              , cSyntax = "Hamlet"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Haskell" , "" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Logic"
-          , Context
-              { cName = "Logic"
-              , cSyntax = "Hamlet"
-              , cRules =
-                  [ Rule
-                      { rMatcher = WordDetect "if"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Hamlet" , "Codeline" ) ]
-                      }
-                  , Rule
-                      { rMatcher = WordDetect "elseif"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Hamlet" , "Codeline" ) ]
-                      }
-                  , Rule
-                      { rMatcher = WordDetect "forall"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Hamlet" , "Assignment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = WordDetect "maybe"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Hamlet" , "Assignment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = WordDetect "else"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = WordDetect "nothing"
-                      , rAttribute = KeywordTok
-                      , 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 = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal Text"
-          , Context
-              { cName = "Normal Text"
-              , cSyntax = "Hamlet"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<(?![0-9])[\\w_:][\\w.:_-]*\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "<(?![0-9])[\\w_:][\\w.:_-]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Hamlet" , "element" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "^{"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Hamlet" , "Code" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "#{"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Hamlet" , "Code" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@{"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Hamlet" , "Code" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "_{"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Hamlet" , "Code" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Hamlet" , "Logic" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Value"
-          , Context
-              { cName = "Value"
-              , cSyntax = "Hamlet"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Hamlet" , "Value DQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Hamlet" , "Value SQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@{"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Hamlet" , "Value Code" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "#{"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Hamlet" , "Value Code" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^\"'>\\s]+"
-                              , reCompiled = Just (compileRegex True "[^\"'>\\s]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , 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 = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Value Code"
-          , Context
-              { cName = "Value Code"
-              , cSyntax = "Hamlet"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Haskell" , "" )
-                      , 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
-              }
-          )
-        , ( "Value DQ"
-          , Context
-              { cName = "Value DQ"
-              , cSyntax = "Hamlet"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Value SQ"
-          , Context
-              { cName = "Value SQ"
-              , cSyntax = "Hamlet"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "element"
-          , Context
-              { cName = "element"
-              , cSyntax = "Hamlet"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(?![0-9])[\\w_:][\\w.:_-]*"
-                              , reCompiled =
-                                  Just (compileRegex True "(?![0-9])[\\w_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Hamlet" , "Attribute" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s+(?![0-9])[\\w_:][\\w.:_-]*"
-                              , reCompiled =
-                                  Just (compileRegex True "\\s+(?![0-9])[\\w_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Hamlet" , "Attribute" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.(?![0-9])[\\w_:][\\w.:_-]*"
-                              , reCompiled =
-                                  Just (compileRegex True "\\.(?![0-9])[\\w_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , 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 = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Bastian Holst (bastianholst@gmx.de)"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.hamlet" ]
-  , sStartingContext = "Normal Text"
-  }
+syntax = read $! "Syntax {sName = \"Hamlet\", sFilename = \"hamlet.xml\", sShortname = \"Hamlet\", sContexts = fromList [(\"Assignment\",Context {cName = \"Assignment\", cSyntax = \"Hamlet\", cRules = [Rule {rMatcher = StringDetect \"<-\", rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Hamlet\",\"Codeline\")]},Rule {rMatcher = IncludeRules (\"Haskell\",\"\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Attribute\",Context {cName = \"Attribute\", cSyntax = \"Hamlet\", cRules = [Rule {rMatcher = DetectChar '=', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Hamlet\",\"Value\")]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"Code\",Context {cName = \"Code\", cSyntax = \"Hamlet\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Haskell\",\"\"), 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}),(\"Codeline\",Context {cName = \"Codeline\", cSyntax = \"Hamlet\", cRules = [Rule {rMatcher = IncludeRules (\"Haskell\",\"\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Logic\",Context {cName = \"Logic\", cSyntax = \"Hamlet\", cRules = [Rule {rMatcher = WordDetect \"if\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Hamlet\",\"Codeline\")]},Rule {rMatcher = WordDetect \"elseif\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Hamlet\",\"Codeline\")]},Rule {rMatcher = WordDetect \"forall\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Hamlet\",\"Assignment\")]},Rule {rMatcher = WordDetect \"maybe\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Hamlet\",\"Assignment\")]},Rule {rMatcher = WordDetect \"else\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = WordDetect \"nothing\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal Text\",Context {cName = \"Normal Text\", cSyntax = \"Hamlet\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<(?![0-9])[\\\\w_:][\\\\w.:_-]*\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Hamlet\",\"element\")]},Rule {rMatcher = StringDetect \"^{\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Hamlet\",\"Code\")]},Rule {rMatcher = StringDetect \"#{\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Hamlet\",\"Code\")]},Rule {rMatcher = StringDetect \"@{\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Hamlet\",\"Code\")]},Rule {rMatcher = StringDetect \"_{\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Hamlet\",\"Code\")]},Rule {rMatcher = DetectChar '$', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Hamlet\",\"Logic\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Value\",Context {cName = \"Value\", cSyntax = \"Hamlet\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Hamlet\",\"Value DQ\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Hamlet\",\"Value SQ\")]},Rule {rMatcher = StringDetect \"@{\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Hamlet\",\"Value Code\")]},Rule {rMatcher = StringDetect \"#{\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Hamlet\",\"Value Code\")]},Rule {rMatcher = RegExpr (RE {reString = \"[^\\\"'>\\\\s]+\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Value Code\",Context {cName = \"Value Code\", cSyntax = \"Hamlet\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = IncludeRules (\"Haskell\",\"\"), 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}),(\"Value DQ\",Context {cName = \"Value DQ\", cSyntax = \"Hamlet\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Value SQ\",Context {cName = \"Value SQ\", cSyntax = \"Hamlet\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"element\",Context {cName = \"element\", cSyntax = \"Hamlet\", cRules = [Rule {rMatcher = Detect2Chars '/' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(?![0-9])[\\\\w_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Hamlet\",\"Attribute\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+(?![0-9])[\\\\w_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Hamlet\",\"Attribute\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.(?![0-9])[\\\\w_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Bastian Holst (bastianholst@gmx.de)\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [\"*.hamlet\"], sStartingContext = \"Normal Text\"}"
diff --git a/src/Skylighting/Syntax/Haskell.hs b/src/Skylighting/Syntax/Haskell.hs
--- a/src/Skylighting/Syntax/Haskell.hs
+++ b/src/Skylighting/Syntax/Haskell.hs
@@ -2,2007 +2,6 @@
 module Skylighting.Syntax.Haskell (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Haskell"
-  , sFilename = "haskell.xml"
-  , sShortname = "Haskell"
-  , sContexts =
-      fromList
-        [ ( "C Preprocessor"
-          , Context
-              { cName = "C Preprocessor"
-              , cSyntax = "Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "defined" , "if" , "ifdef" , "ifndef" , "include" , "undef" ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ".*>$"
-                              , reCompiled = Just (compileRegex True ".*>$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Haddock"
-          , Context
-              { cName = "Haddock"
-              , cSyntax = "Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'([A-Z][a-zA-Z0-9_']*\\.)*[a-z_][a-zA-Z0-9_']*'"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "'([A-Z][a-zA-Z0-9_']*\\.)*[a-z_][a-zA-Z0-9_']*'")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\"([A-Z][a-zA-Z0-9_']*\\.)*[A-Z][a-zA-Z0-9_']*\""
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\"([A-Z][a-zA-Z0-9_']*\\.)*[A-Z][a-zA-Z0-9_']*\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "/.*/"
-                              , reCompiled = Just (compileRegex True "/.*/")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Haskell" , "Start Haddock Emphasis" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "__.*__"
-                              , reCompiled = Just (compileRegex True "__.*__")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haskell" , "Start Haddock Bold" ) ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Haddock Bold"
-          , Context
-              { cName = "Haddock Bold"
-              , cSyntax = "Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '_' '_'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Haskell" , "Haddock" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Haddock Emphasis"
-          , Context
-              { cName = "Haddock Emphasis"
-              , cSyntax = "Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Haskell" , "Haddock" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Hamlet"
-          , Context
-              { cName = "Hamlet"
-              , cSyntax = "Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Haskell" , "QuasiQuote" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Hamlet" , "" )
-                      , 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
-              }
-          )
-        , ( "QuasiQuote"
-          , Context
-              { cName = "QuasiQuote"
-              , cSyntax = "Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '|' ']'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Start Haddock Bold"
-          , Context
-              { cName = "Start Haddock Bold"
-              , cSyntax = "Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '_' '_'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haskell" , "Haddock Bold" ) ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Start Haddock Emphasis"
-          , Context
-              { cName = "Start Haddock Emphasis"
-              , cSyntax = "Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haskell" , "Haddock Emphasis" ) ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "c2hs directive"
-          , Context
-              { cName = "c2hs directive"
-              , cSyntax = "Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '#' '}'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "as"
-                               , "call"
-                               , "foreign"
-                               , "get"
-                               , "lib"
-                               , "nocode"
-                               , "prefix"
-                               , "pure"
-                               , "qualified"
-                               , "set"
-                               , "stable"
-                               , "unsafe"
-                               , "with"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "context"
-                              , reCompiled = Just (compileRegex True "context")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "call"
-                              , reCompiled = Just (compileRegex True "call")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "sizeof"
-                              , reCompiled = Just (compileRegex True "sizeof")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "alignof"
-                              , reCompiled = Just (compileRegex True "alignof")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "fun"
-                              , reCompiled = Just (compileRegex True "fun")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haskell" , "c2hs fun" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "pointer"
-                              , reCompiled = Just (compileRegex True "pointer")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haskell" , "c2hs pointer" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "enum"
-                              , reCompiled = Just (compileRegex True "enum")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haskell" , "c2hs enum" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "import"
-                              , reCompiled = Just (compileRegex True "import")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haskell" , "c2hs import" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "c2hs enum"
-          , Context
-              { cName = "c2hs enum"
-              , cSyntax = "Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([A-Z][a-zA-Z0-9_']*\\.)*[A-Z][a-zA-Z0-9_']*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "([A-Z][a-zA-Z0-9_']*\\.)*[A-Z][a-zA-Z0-9_']*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '}'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "c2hs fun"
-          , Context
-              { cName = "c2hs fun"
-              , cSyntax = "Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "as"
-                               , "call"
-                               , "foreign"
-                               , "get"
-                               , "lib"
-                               , "nocode"
-                               , "prefix"
-                               , "pure"
-                               , "qualified"
-                               , "set"
-                               , "stable"
-                               , "unsafe"
-                               , "with"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "`[^']*'"
-                              , reCompiled = Just (compileRegex True "`[^']*'")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '}'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "c2hs import"
-          , Context
-              { cName = "c2hs import"
-              , cSyntax = "Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([A-Z][a-zA-Z0-9_']*\\.)*[A-Z][a-zA-Z0-9_']*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "([A-Z][a-zA-Z0-9_']*\\.)*[A-Z][a-zA-Z0-9_']*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '}'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "c2hs pointer"
-          , Context
-              { cName = "c2hs pointer"
-              , cSyntax = "Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "as"
-                               , "call"
-                               , "foreign"
-                               , "get"
-                               , "lib"
-                               , "nocode"
-                               , "prefix"
-                               , "pure"
-                               , "qualified"
-                               , "set"
-                               , "stable"
-                               , "unsafe"
-                               , "with"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "newtype"
-                              , reCompiled = Just (compileRegex True "newtype")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([A-Z][a-zA-Z0-9_']*\\.)*[A-Z][a-zA-Z0-9_']*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "([A-Z][a-zA-Z0-9_']*\\.)*[A-Z][a-zA-Z0-9_']*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '}'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "char"
-          , Context
-              { cName = "char"
-              , cSyntax = "Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\."
-                              , reCompiled = Just (compileRegex True "\\\\.")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "code"
-          , Context
-              { cName = "code"
-              , cSyntax = "Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\{-#.*#-\\}"
-                              , reCompiled = Just (compileRegex True "\\{-#.*#-\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{--}"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\{-[^#]?"
-                              , reCompiled = Just (compileRegex True "\\{-[^#]?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haskell" , "comments" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "--[\\-]*([^!#\\$%&\\*\\+\\./<=>\\?@\\\\^\\|\\-~:]|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "--[\\-]*([^!#\\$%&\\*\\+\\./<=>\\?@\\\\^\\|\\-~:]|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haskell" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "import\\s+"
-                              , reCompiled = Just (compileRegex True "import\\s+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haskell" , "import" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '{' '#'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haskell" , "c2hs directive" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Haskell" , "C Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "case"
-                               , "class"
-                               , "data"
-                               , "deriving"
-                               , "do"
-                               , "else"
-                               , "if"
-                               , "in"
-                               , "infixl"
-                               , "infixr"
-                               , "instance"
-                               , "let"
-                               , "module"
-                               , "newtype"
-                               , "of"
-                               , "primitive"
-                               , "then"
-                               , "type"
-                               , "where"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "FilePath"
-                               , "IOError"
-                               , "abs"
-                               , "acos"
-                               , "acosh"
-                               , "all"
-                               , "and"
-                               , "any"
-                               , "appendFile"
-                               , "approxRational"
-                               , "asTypeOf"
-                               , "asin"
-                               , "asinh"
-                               , "atan"
-                               , "atan2"
-                               , "atanh"
-                               , "basicIORun"
-                               , "break"
-                               , "catch"
-                               , "ceiling"
-                               , "chr"
-                               , "compare"
-                               , "concat"
-                               , "concatMap"
-                               , "const"
-                               , "cos"
-                               , "cosh"
-                               , "curry"
-                               , "cycle"
-                               , "decodeFloat"
-                               , "denominator"
-                               , "digitToInt"
-                               , "div"
-                               , "divMod"
-                               , "drop"
-                               , "dropWhile"
-                               , "either"
-                               , "elem"
-                               , "encodeFloat"
-                               , "enumFrom"
-                               , "enumFromThen"
-                               , "enumFromThenTo"
-                               , "enumFromTo"
-                               , "error"
-                               , "even"
-                               , "exp"
-                               , "exponent"
-                               , "fail"
-                               , "filter"
-                               , "flip"
-                               , "floatDigits"
-                               , "floatRadix"
-                               , "floatRange"
-                               , "floor"
-                               , "fmap"
-                               , "foldMap"
-                               , "foldl"
-                               , "foldl1"
-                               , "foldr"
-                               , "foldr1"
-                               , "fromDouble"
-                               , "fromEnum"
-                               , "fromInt"
-                               , "fromInteger"
-                               , "fromIntegral"
-                               , "fromRational"
-                               , "fst"
-                               , "gcd"
-                               , "getChar"
-                               , "getContents"
-                               , "getLine"
-                               , "group"
-                               , "head"
-                               , "id"
-                               , "inRange"
-                               , "index"
-                               , "init"
-                               , "intToDigit"
-                               , "interact"
-                               , "ioError"
-                               , "isAlpha"
-                               , "isAlphaNum"
-                               , "isAscii"
-                               , "isControl"
-                               , "isDenormalized"
-                               , "isDigit"
-                               , "isHexDigit"
-                               , "isIEEE"
-                               , "isInfinite"
-                               , "isLower"
-                               , "isNaN"
-                               , "isNegativeZero"
-                               , "isOctDigit"
-                               , "isPrint"
-                               , "isSpace"
-                               , "isUpper"
-                               , "iterate"
-                               , "last"
-                               , "lcm"
-                               , "length"
-                               , "lex"
-                               , "lexDigits"
-                               , "lexLitChar"
-                               , "lines"
-                               , "log"
-                               , "logBase"
-                               , "lookup"
-                               , "map"
-                               , "mapM"
-                               , "mapM_"
-                               , "mappend"
-                               , "max"
-                               , "maxBound"
-                               , "maximum"
-                               , "maybe"
-                               , "mconcat"
-                               , "mempty"
-                               , "min"
-                               , "minBound"
-                               , "minimum"
-                               , "mod"
-                               , "negate"
-                               , "not"
-                               , "notElem"
-                               , "null"
-                               , "numerator"
-                               , "odd"
-                               , "or"
-                               , "ord"
-                               , "otherwise"
-                               , "pack"
-                               , "pi"
-                               , "pred"
-                               , "primExitWith"
-                               , "print"
-                               , "product"
-                               , "properFraction"
-                               , "pure"
-                               , "putChar"
-                               , "putStr"
-                               , "putStrLn"
-                               , "quot"
-                               , "quotRem"
-                               , "range"
-                               , "rangeSize"
-                               , "read"
-                               , "readDec"
-                               , "readFile"
-                               , "readFloat"
-                               , "readHex"
-                               , "readIO"
-                               , "readInt"
-                               , "readList"
-                               , "readLitChar"
-                               , "readLn"
-                               , "readOct"
-                               , "readParen"
-                               , "readSigned"
-                               , "reads"
-                               , "readsPrec"
-                               , "realToFrac"
-                               , "recip"
-                               , "rem"
-                               , "repeat"
-                               , "replicate"
-                               , "return"
-                               , "reverse"
-                               , "round"
-                               , "scaleFloat"
-                               , "scanl"
-                               , "scanl1"
-                               , "scanr"
-                               , "scanr1"
-                               , "seq"
-                               , "sequence"
-                               , "sequenceA"
-                               , "sequence_"
-                               , "show"
-                               , "showChar"
-                               , "showInt"
-                               , "showList"
-                               , "showLitChar"
-                               , "showParen"
-                               , "showSigned"
-                               , "showString"
-                               , "shows"
-                               , "showsPrec"
-                               , "significand"
-                               , "signum"
-                               , "sin"
-                               , "sinh"
-                               , "snd"
-                               , "sort"
-                               , "span"
-                               , "splitAt"
-                               , "sqrt"
-                               , "subtract"
-                               , "succ"
-                               , "sum"
-                               , "tail"
-                               , "take"
-                               , "takeWhile"
-                               , "tan"
-                               , "tanh"
-                               , "threadToIOResult"
-                               , "toEnum"
-                               , "toInt"
-                               , "toInteger"
-                               , "toLower"
-                               , "toRational"
-                               , "toUpper"
-                               , "traverse"
-                               , "truncate"
-                               , "uncurry"
-                               , "undefined"
-                               , "unlines"
-                               , "until"
-                               , "unwords"
-                               , "unzip"
-                               , "unzip3"
-                               , "userError"
-                               , "words"
-                               , "writeFile"
-                               , "zip"
-                               , "zip3"
-                               , "zipWith"
-                               , "zipWith3"
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Bool"
-                               , "ByteString"
-                               , "Char"
-                               , "Double"
-                               , "Either"
-                               , "FilePath"
-                               , "Float"
-                               , "IO"
-                               , "IOError"
-                               , "Int"
-                               , "Integer"
-                               , "Maybe"
-                               , "Ordering"
-                               , "Ratio"
-                               , "Rational"
-                               , "ReadS"
-                               , "ShowS"
-                               , "String"
-                               , "Word"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "EQ"
-                               , "False"
-                               , "GT"
-                               , "Just"
-                               , "LT"
-                               , "Left"
-                               , "Nothing"
-                               , "Right"
-                               , "True"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Applicative"
-                               , "Bounded"
-                               , "Enum"
-                               , "Eq"
-                               , "Floating"
-                               , "Foldable"
-                               , "Fractional"
-                               , "Functor"
-                               , "Integral"
-                               , "Ix"
-                               , "Monad"
-                               , "Monoid"
-                               , "Num"
-                               , "Ord"
-                               , "Read"
-                               , "Real"
-                               , "RealFloat"
-                               , "RealFrac"
-                               , "Show"
-                               , "Traversable"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(::|=>|\\->|<\\-)"
-                              , reCompiled = Just (compileRegex True "(::|=>|\\->|<\\-)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "\8759\8658\8594\8592\8704\8707"
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\s*[a-z_][a-zA-Z0-9_']*\\s*(?=::([^\\-!#\\$%&\\*\\+/<=>\\?\\@\\^\\|~\\.:]|$))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\s*[a-z_][a-zA-Z0-9_']*\\s*(?=::([^\\-!#\\$%&\\*\\+/<=>\\?\\@\\^\\|~\\.:]|$))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\s*(\\([\\-!#\\$%&\\*\\+/<=>\\?\\@\\^\\|~\\.:]*\\))*\\s*(?=::[^\\-!#\\$%&\\*\\+/<=>\\?\\@\\^\\|~\\.:])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\s*(\\([\\-!#\\$%&\\*\\+/<=>\\?\\@\\^\\|~\\.:]*\\))*\\s*(?=::[^\\-!#\\$%&\\*\\+/<=>\\?\\@\\^\\|~\\.:])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([A-Z][a-zA-Z0-9_']*\\.)*[a-z_][a-zA-Z0-9_']*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "([A-Z][a-zA-Z0-9_']*\\.)*[a-z_][a-zA-Z0-9_']*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "([A-Z][a-zA-Z0-0_']*\\.)*[\\-!#\\$%&\\*\\+/<=>\\?\\@\\^\\|~\\.:]+"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "([A-Z][a-zA-Z0-0_']*\\.)*[\\-!#\\$%&\\*\\+/<=>\\?\\@\\^\\|~\\.:]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([A-Z][a-zA-Z0-9_']*\\.)*[A-Z][a-zA-Z0-9_']*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "([A-Z][a-zA-Z0-9_']*\\.)*[A-Z][a-zA-Z0-9_']*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\d+\\.\\d+([Ee][+-]?\\d+)?|\\d+[Ee][+-]?\\d+"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\d+\\.\\d+([Ee][+-]?\\d+)?|\\d+[Ee][+-]?\\d+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "0[Oo][0-7]+"
-                              , reCompiled = Just (compileRegex True "0[Oo][0-7]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "0[Xx][0-9A-Fa-f]+"
-                              , reCompiled = Just (compileRegex True "0[Xx][0-9A-Fa-f]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haskell" , "char" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haskell" , "string" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haskell" , "infix" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '.' '.'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "\8229"
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[[wx]?hamlet\\|"
-                              , reCompiled = Just (compileRegex True "\\[[wx]?hamlet\\|")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haskell" , "Hamlet" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[[a-zA-Z_'](\\w|[_'])*\\|"
-                              , reCompiled =
-                                  Just (compileRegex True "\\[[a-zA-Z_'](\\w|[_'])*\\|")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haskell" , "QuasiQuote" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "comment"
-          , Context
-              { cName = "comment"
-              , cSyntax = "Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Haskell" , "Haddock" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "comments"
-          , Context
-              { cName = "comments"
-              , cSyntax = "Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '{' '-'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haskell" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '-' '}'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Haskell" , "Haddock" )
-                      , 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
-              }
-          )
-        , ( "import"
-          , Context
-              { cName = "import"
-              , cSyntax = "Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "as" , "hiding" , "qualified" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([A-Z][a-zA-Z0-9_']*\\.)*[a-z][a-zA-Z0-9_']*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "([A-Z][a-zA-Z0-9_']*\\.)*[a-z][a-zA-Z0-9_']*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([A-Z][a-zA-Z0-9_']*\\.)*[A-Z][a-zA-Z0-9_']*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "([A-Z][a-zA-Z0-9_']*\\.)*[A-Z][a-zA-Z0-9_']*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\{-#.*#-\\}"
-                              , reCompiled = Just (compileRegex True "\\{-#.*#-\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\{-[^#]?"
-                              , reCompiled = Just (compileRegex True "\\{-[^#]?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haskell" , "comments" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "--[^\\-!#\\$%&\\*\\+/<=>\\?\\@\\^\\|~\\.:].*$"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "--[^\\-!#\\$%&\\*\\+/<=>\\?\\@\\^\\|~\\.:].*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haskell" , "comment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "infix"
-          , Context
-              { cName = "infix"
-              , cSyntax = "Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "string"
-          , Context
-              { cName = "string"
-              , cSyntax = "Haskell"
-              , 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 = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Nicolas Wu (zenzike@gmail.com)"
-  , sVersion = "4"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.hs" , "*.chs" ]
-  , sStartingContext = "code"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Haskell\", sFilename = \"haskell.xml\", sShortname = \"Haskell\", sContexts = fromList [(\"C Preprocessor\",Context {cName = \"C Preprocessor\", cSyntax = \"Haskell\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"defined\",\"if\",\"ifdef\",\"ifndef\",\"include\",\"undef\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \".*>$\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Haddock\",Context {cName = \"Haddock\", cSyntax = \"Haskell\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"'([A-Z][a-zA-Z0-9_']*\\\\.)*[a-z_][a-zA-Z0-9_']*'\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\"([A-Z][a-zA-Z0-9_']*\\\\.)*[A-Z][a-zA-Z0-9_']*\\\"\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"/.*/\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haskell\",\"Start Haddock Emphasis\")]},Rule {rMatcher = RegExpr (RE {reString = \"__.*__\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haskell\",\"Start Haddock Bold\")]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Haddock Bold\",Context {cName = \"Haddock Bold\", cSyntax = \"Haskell\", cRules = [Rule {rMatcher = Detect2Chars '_' '_', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Haskell\",\"Haddock\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Haddock Emphasis\",Context {cName = \"Haddock Emphasis\", cSyntax = \"Haskell\", cRules = [Rule {rMatcher = DetectChar '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Haskell\",\"Haddock\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Hamlet\",Context {cName = \"Hamlet\", cSyntax = \"Haskell\", cRules = [Rule {rMatcher = IncludeRules (\"Haskell\",\"QuasiQuote\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Hamlet\",\"\"), 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}),(\"QuasiQuote\",Context {cName = \"QuasiQuote\", cSyntax = \"Haskell\", cRules = [Rule {rMatcher = Detect2Chars '|' ']', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Start Haddock Bold\",Context {cName = \"Start Haddock Bold\", cSyntax = \"Haskell\", cRules = [Rule {rMatcher = Detect2Chars '_' '_', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haskell\",\"Haddock Bold\")]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Start Haddock Emphasis\",Context {cName = \"Start Haddock Emphasis\", cSyntax = \"Haskell\", cRules = [Rule {rMatcher = DetectChar '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haskell\",\"Haddock Emphasis\")]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"c2hs directive\",Context {cName = \"c2hs directive\", cSyntax = \"Haskell\", cRules = [Rule {rMatcher = Detect2Chars '#' '}', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"as\",\"call\",\"foreign\",\"get\",\"lib\",\"nocode\",\"prefix\",\"pure\",\"qualified\",\"set\",\"stable\",\"unsafe\",\"with\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"context\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"call\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"sizeof\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"alignof\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"fun\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haskell\",\"c2hs fun\")]},Rule {rMatcher = RegExpr (RE {reString = \"pointer\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haskell\",\"c2hs pointer\")]},Rule {rMatcher = RegExpr (RE {reString = \"enum\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haskell\",\"c2hs enum\")]},Rule {rMatcher = RegExpr (RE {reString = \"import\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haskell\",\"c2hs import\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"c2hs enum\",Context {cName = \"c2hs enum\", cSyntax = \"Haskell\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"([A-Z][a-zA-Z0-9_']*\\\\.)*[A-Z][a-zA-Z0-9_']*\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '#' '}', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"c2hs fun\",Context {cName = \"c2hs fun\", cSyntax = \"Haskell\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"as\",\"call\",\"foreign\",\"get\",\"lib\",\"nocode\",\"prefix\",\"pure\",\"qualified\",\"set\",\"stable\",\"unsafe\",\"with\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"`[^']*'\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '#' '}', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"c2hs import\",Context {cName = \"c2hs import\", cSyntax = \"Haskell\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"([A-Z][a-zA-Z0-9_']*\\\\.)*[A-Z][a-zA-Z0-9_']*\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '#' '}', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"c2hs pointer\",Context {cName = \"c2hs pointer\", cSyntax = \"Haskell\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"as\",\"call\",\"foreign\",\"get\",\"lib\",\"nocode\",\"prefix\",\"pure\",\"qualified\",\"set\",\"stable\",\"unsafe\",\"with\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"newtype\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([A-Z][a-zA-Z0-9_']*\\\\.)*[A-Z][a-zA-Z0-9_']*\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '#' '}', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"char\",Context {cName = \"char\", cSyntax = \"Haskell\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CharTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"code\",Context {cName = \"code\", cSyntax = \"Haskell\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\{-#.*#-\\\\}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"{--}\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\{-[^#]?\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haskell\",\"comments\")]},Rule {rMatcher = RegExpr (RE {reString = \"--[\\\\-]*([^!#\\\\$%&\\\\*\\\\+\\\\./<=>\\\\?@\\\\\\\\^\\\\|\\\\-~:]|$)\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haskell\",\"comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"import\\\\s+\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haskell\",\"import\")]},Rule {rMatcher = Detect2Chars '{' '#', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haskell\",\"c2hs directive\")]},Rule {rMatcher = DetectChar '#', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Haskell\",\"C Preprocessor\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"case\",\"class\",\"data\",\"deriving\",\"do\",\"else\",\"if\",\"in\",\"infixl\",\"infixr\",\"instance\",\"let\",\"module\",\"newtype\",\"of\",\"primitive\",\"then\",\"type\",\"where\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"FilePath\",\"IOError\",\"abs\",\"acos\",\"acosh\",\"all\",\"and\",\"any\",\"appendFile\",\"approxRational\",\"asTypeOf\",\"asin\",\"asinh\",\"atan\",\"atan2\",\"atanh\",\"basicIORun\",\"break\",\"catch\",\"ceiling\",\"chr\",\"compare\",\"concat\",\"concatMap\",\"const\",\"cos\",\"cosh\",\"curry\",\"cycle\",\"decodeFloat\",\"denominator\",\"digitToInt\",\"div\",\"divMod\",\"drop\",\"dropWhile\",\"either\",\"elem\",\"encodeFloat\",\"enumFrom\",\"enumFromThen\",\"enumFromThenTo\",\"enumFromTo\",\"error\",\"even\",\"exp\",\"exponent\",\"fail\",\"filter\",\"flip\",\"floatDigits\",\"floatRadix\",\"floatRange\",\"floor\",\"fmap\",\"foldMap\",\"foldl\",\"foldl1\",\"foldr\",\"foldr1\",\"fromDouble\",\"fromEnum\",\"fromInt\",\"fromInteger\",\"fromIntegral\",\"fromRational\",\"fst\",\"gcd\",\"getChar\",\"getContents\",\"getLine\",\"group\",\"head\",\"id\",\"inRange\",\"index\",\"init\",\"intToDigit\",\"interact\",\"ioError\",\"isAlpha\",\"isAlphaNum\",\"isAscii\",\"isControl\",\"isDenormalized\",\"isDigit\",\"isHexDigit\",\"isIEEE\",\"isInfinite\",\"isLower\",\"isNaN\",\"isNegativeZero\",\"isOctDigit\",\"isPrint\",\"isSpace\",\"isUpper\",\"iterate\",\"last\",\"lcm\",\"length\",\"lex\",\"lexDigits\",\"lexLitChar\",\"lines\",\"log\",\"logBase\",\"lookup\",\"map\",\"mapM\",\"mapM_\",\"mappend\",\"max\",\"maxBound\",\"maximum\",\"maybe\",\"mconcat\",\"mempty\",\"min\",\"minBound\",\"minimum\",\"mod\",\"negate\",\"not\",\"notElem\",\"null\",\"numerator\",\"odd\",\"or\",\"ord\",\"otherwise\",\"pack\",\"pi\",\"pred\",\"primExitWith\",\"print\",\"product\",\"properFraction\",\"pure\",\"putChar\",\"putStr\",\"putStrLn\",\"quot\",\"quotRem\",\"range\",\"rangeSize\",\"read\",\"readDec\",\"readFile\",\"readFloat\",\"readHex\",\"readIO\",\"readInt\",\"readList\",\"readLitChar\",\"readLn\",\"readOct\",\"readParen\",\"readSigned\",\"reads\",\"readsPrec\",\"realToFrac\",\"recip\",\"rem\",\"repeat\",\"replicate\",\"return\",\"reverse\",\"round\",\"scaleFloat\",\"scanl\",\"scanl1\",\"scanr\",\"scanr1\",\"seq\",\"sequence\",\"sequenceA\",\"sequence_\",\"show\",\"showChar\",\"showInt\",\"showList\",\"showLitChar\",\"showParen\",\"showSigned\",\"showString\",\"shows\",\"showsPrec\",\"significand\",\"signum\",\"sin\",\"sinh\",\"snd\",\"sort\",\"span\",\"splitAt\",\"sqrt\",\"subtract\",\"succ\",\"sum\",\"tail\",\"take\",\"takeWhile\",\"tan\",\"tanh\",\"threadToIOResult\",\"toEnum\",\"toInt\",\"toInteger\",\"toLower\",\"toRational\",\"toUpper\",\"traverse\",\"truncate\",\"uncurry\",\"undefined\",\"unlines\",\"until\",\"unwords\",\"unzip\",\"unzip3\",\"userError\",\"words\",\"writeFile\",\"zip\",\"zip3\",\"zipWith\",\"zipWith3\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"Bool\",\"ByteString\",\"Char\",\"Double\",\"Either\",\"FilePath\",\"Float\",\"IO\",\"IOError\",\"Int\",\"Integer\",\"Maybe\",\"Ordering\",\"Ratio\",\"Rational\",\"ReadS\",\"ShowS\",\"String\",\"Word\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"EQ\",\"False\",\"GT\",\"Just\",\"LT\",\"Left\",\"Nothing\",\"Right\",\"True\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"Applicative\",\"Bounded\",\"Enum\",\"Eq\",\"Floating\",\"Foldable\",\"Fractional\",\"Functor\",\"Integral\",\"Ix\",\"Monad\",\"Monoid\",\"Num\",\"Ord\",\"Read\",\"Real\",\"RealFloat\",\"RealFrac\",\"Show\",\"Traversable\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(::|=>|\\\\->|<\\\\-)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"\\8759\\8658\\8594\\8592\\8704\\8707\", rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*[a-z_][a-zA-Z0-9_']*\\\\s*(?=::([^\\\\-!#\\\\$%&\\\\*\\\\+/<=>\\\\?\\\\@\\\\^\\\\|~\\\\.:]|$))\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*(\\\\([\\\\-!#\\\\$%&\\\\*\\\\+/<=>\\\\?\\\\@\\\\^\\\\|~\\\\.:]*\\\\))*\\\\s*(?=::[^\\\\-!#\\\\$%&\\\\*\\\\+/<=>\\\\?\\\\@\\\\^\\\\|~\\\\.:])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([A-Z][a-zA-Z0-9_']*\\\\.)*[a-z_][a-zA-Z0-9_']*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([A-Z][a-zA-Z0-0_']*\\\\.)*[\\\\-!#\\\\$%&\\\\*\\\\+/<=>\\\\?\\\\@\\\\^\\\\|~\\\\.:]+\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([A-Z][a-zA-Z0-9_']*\\\\.)*[A-Z][a-zA-Z0-9_']*\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\d+\\\\.\\\\d+([Ee][+-]?\\\\d+)?|\\\\d+[Ee][+-]?\\\\d+\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"0[Oo][0-7]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"0[Xx][0-9A-Fa-f]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haskell\",\"char\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haskell\",\"string\")]},Rule {rMatcher = DetectChar '`', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haskell\",\"infix\")]},Rule {rMatcher = Detect2Chars '.' '.', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"\\8229\", rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[[wx]?hamlet\\\\|\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haskell\",\"Hamlet\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[[a-zA-Z_'](\\\\w|[_'])*\\\\|\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haskell\",\"QuasiQuote\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"comment\",Context {cName = \"comment\", cSyntax = \"Haskell\", cRules = [Rule {rMatcher = IncludeRules (\"Haskell\",\"Haddock\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"comments\",Context {cName = \"comments\", cSyntax = \"Haskell\", cRules = [Rule {rMatcher = Detect2Chars '{' '-', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haskell\",\"comment\")]},Rule {rMatcher = Detect2Chars '-' '}', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Haskell\",\"Haddock\"), 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}),(\"import\",Context {cName = \"import\", cSyntax = \"Haskell\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"as\",\"hiding\",\"qualified\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([A-Z][a-zA-Z0-9_']*\\\\.)*[a-z][a-zA-Z0-9_']*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([A-Z][a-zA-Z0-9_']*\\\\.)*[A-Z][a-zA-Z0-9_']*\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\{-#.*#-\\\\}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\{-[^#]?\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haskell\",\"comments\")]},Rule {rMatcher = RegExpr (RE {reString = \"--[^\\\\-!#\\\\$%&\\\\*\\\\+/<=>\\\\?\\\\@\\\\^\\\\|~\\\\.:].*$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haskell\",\"comment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"infix\",Context {cName = \"infix\", cSyntax = \"Haskell\", cRules = [Rule {rMatcher = DetectChar '`', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"string\",Context {cName = \"string\", cSyntax = \"Haskell\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Nicolas Wu (zenzike@gmail.com)\", sVersion = \"4\", sLicense = \"LGPL\", sExtensions = [\"*.hs\",\"*.chs\"], sStartingContext = \"code\"}"
diff --git a/src/Skylighting/Syntax/Haxe.hs b/src/Skylighting/Syntax/Haxe.hs
--- a/src/Skylighting/Syntax/Haxe.hs
+++ b/src/Skylighting/Syntax/Haxe.hs
@@ -2,574 +2,6 @@
 module Skylighting.Syntax.Haxe (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Haxe"
-  , sFilename = "haxe.xml"
-  , sShortname = "Haxe"
-  , sContexts =
-      fromList
-        [ ( "CommentBlock"
-          , Context
-              { cName = "CommentBlock"
-              , cSyntax = "Haxe"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CommentLine"
-          , Context
-              { cName = "CommentLine"
-              , cSyntax = "Haxe"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ModuleName"
-          , Context
-              { cName = "ModuleName"
-              , cSyntax = "Haxe"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haxe" , "CommentLine" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haxe" , "CommentBlock" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^\\s\\w.:,]"
-                              , reCompiled = Just (compileRegex True "[^\\s\\w.:,]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "RawString"
-          , Context
-              { cName = "RawString"
-              , cSyntax = "Haxe"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Haxe"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(u[\\da-fA-F]{4}|U[\\da-fA-F]{8}|&[a-zA-Z]\\w+;)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\\\(u[\\da-fA-F]{4}|U[\\da-fA-F]{8}|&[a-zA-Z]\\w+;)")
-                              , reCaseSensitive = True
-                              }
-                      , 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
-              }
-          )
-        , ( "normal"
-          , Context
-              { cName = "normal"
-              , cSyntax = "Haxe"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#if(\\s+\\w+)?"
-                              , reCompiled = Just (compileRegex True "#if(\\s+\\w+)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#(else|elseif|end|error)"
-                              , reCompiled = Just (compileRegex True "#(else|elseif|end|error)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "break"
-                               , "case"
-                               , "cast"
-                               , "catch"
-                               , "class"
-                               , "continue"
-                               , "default"
-                               , "else"
-                               , "enum"
-                               , "extends"
-                               , "false"
-                               , "for"
-                               , "function"
-                               , "if"
-                               , "implements"
-                               , "in"
-                               , "inline"
-                               , "interface"
-                               , "new"
-                               , "null"
-                               , "override"
-                               , "private"
-                               , "public"
-                               , "return"
-                               , "static"
-                               , "super"
-                               , "switch"
-                               , "this"
-                               , "throw"
-                               , "trace"
-                               , "true"
-                               , "try"
-                               , "typedef"
-                               , "untyped"
-                               , "var"
-                               , "while"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "import" , "package" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haxe" , "ModuleName" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Array"
-                               , "Bool"
-                               , "Dynamic"
-                               , "Error"
-                               , "Float"
-                               , "Int"
-                               , "List"
-                               , "String"
-                               , "Type"
-                               , "UInt"
-                               , "Unknown"
-                               , "Void"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haxe" , "RawString" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haxe" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haxe" , "CommentLine" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Haxe" , "CommentBlock" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "..."
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '.' '.'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\d][\\d]*(\\.(?!\\.)[\\d]*([eE][-+]?[\\d]+)?)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "[\\d][\\d]*(\\.(?!\\.)[\\d]*([eE][-+]?[\\d]+)?)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.[\\d][\\d]*([eE][-+]?[\\d]+)?"
-                              , reCompiled =
-                                  Just (compileRegex True "\\.[\\d][\\d]*([eE][-+]?[\\d]+)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "0[xX][\\da-fA-F]+"
-                              , reCompiled = Just (compileRegex True "0[xX][\\da-fA-F]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\d+"
-                              , reCompiled = Just (compileRegex True "\\d+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Chad Joan"
-  , sVersion = "1"
-  , sLicense = "MIT"
-  , sExtensions = [ "*.hx" , "*.Hx" , "*.hX" , "*.HX" ]
-  , sStartingContext = "normal"
-  }
+syntax = read $! "Syntax {sName = \"Haxe\", sFilename = \"haxe.xml\", sShortname = \"Haxe\", sContexts = fromList [(\"CommentBlock\",Context {cName = \"CommentBlock\", cSyntax = \"Haxe\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CommentLine\",Context {cName = \"CommentLine\", cSyntax = \"Haxe\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ModuleName\",Context {cName = \"ModuleName\", cSyntax = \"Haxe\", cRules = [Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haxe\",\"CommentLine\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haxe\",\"CommentBlock\")]},Rule {rMatcher = RegExpr (RE {reString = \"[^\\\\s\\\\w.:,]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"RawString\",Context {cName = \"RawString\", cSyntax = \"Haxe\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Haxe\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = HlCStringChar, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(u[\\\\da-fA-F]{4}|U[\\\\da-fA-F]{8}|&[a-zA-Z]\\\\w+;)\", reCaseSensitive = True}), 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}),(\"normal\",Context {cName = \"normal\", cSyntax = \"Haxe\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"#if(\\\\s+\\\\w+)?\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"#(else|elseif|end|error)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"break\",\"case\",\"cast\",\"catch\",\"class\",\"continue\",\"default\",\"else\",\"enum\",\"extends\",\"false\",\"for\",\"function\",\"if\",\"implements\",\"in\",\"inline\",\"interface\",\"new\",\"null\",\"override\",\"private\",\"public\",\"return\",\"static\",\"super\",\"switch\",\"this\",\"throw\",\"trace\",\"true\",\"try\",\"typedef\",\"untyped\",\"var\",\"while\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"import\",\"package\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haxe\",\"ModuleName\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"Array\",\"Bool\",\"Dynamic\",\"Error\",\"Float\",\"Int\",\"List\",\"String\",\"Type\",\"UInt\",\"Unknown\",\"Void\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCStringChar, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haxe\",\"RawString\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haxe\",\"String\")]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haxe\",\"CommentLine\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Haxe\",\"CommentBlock\")]},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"...\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '.' '.', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\d][\\\\d]*(\\\\.(?!\\\\.)[\\\\d]*([eE][-+]?[\\\\d]+)?)\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.[\\\\d][\\\\d]*([eE][-+]?[\\\\d]+)?\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"0[xX][\\\\da-fA-F]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\d+\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Chad Joan\", sVersion = \"1\", sLicense = \"MIT\", sExtensions = [\"*.hx\",\"*.Hx\",\"*.hX\",\"*.HX\"], sStartingContext = \"normal\"}"
diff --git a/src/Skylighting/Syntax/Html.hs b/src/Skylighting/Syntax/Html.hs
--- a/src/Skylighting/Syntax/Html.hs
+++ b/src/Skylighting/Syntax/Html.hs
@@ -2,2100 +2,6 @@
 module Skylighting.Syntax.Html (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "HTML"
-  , sFilename = "html.xml"
-  , sShortname = "Html"
-  , sContexts =
-      fromList
-        [ ( "CDATA"
-          , Context
-              { cName = "CDATA"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "]]>"
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "]]&gt;"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CSS"
-          , Context
-              { cName = "CSS"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "CSS content" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "HTML" , "FindAttributes" )
-                      , 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
-              }
-          )
-        , ( "CSS content"
-          , Context
-              { cName = "CSS content"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</style\\b"
-                              , reCompiled = Just (compileRegex False "</style\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Close 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "CSS" , "" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = True
-                      , 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 = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "-->"
-                      , rAttribute = CommentTok
-                      , 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 = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Doctype"
-          , Context
-              { cName = "Doctype"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "Doctype Internal Subset" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Doctype Internal Subset"
-          , Context
-              { cName = "Doctype Internal Subset"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "HTML" , "FindDTDRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\?[\\w:-]*"
-                              , reCompiled = Just (compileRegex True "<\\?[\\w:-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "PI" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "HTML" , "FindPEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "Doctype Markupdecl"
-          , Context
-              { cName = "Doctype Markupdecl"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "Doctype Markupdecl DQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "Doctype Markupdecl SQ" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Doctype Markupdecl DQ"
-          , Context
-              { cName = "Doctype Markupdecl DQ"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "HTML" , "FindPEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "Doctype Markupdecl SQ"
-          , Context
-              { cName = "Doctype Markupdecl SQ"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "HTML" , "FindPEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "El Close"
-          , Context
-              { cName = "El Close"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , 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
-              }
-          )
-        , ( "El Close 2"
-          , Context
-              { cName = "El Close 2"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , 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
-              }
-          )
-        , ( "El Close 3"
-          , Context
-              { cName = "El Close 3"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop , Pop ]
-                      }
-                  , 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
-              }
-          )
-        , ( "El Open"
-          , Context
-              { cName = "El Open"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "HTML" , "FindAttributes" )
-                      , 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
-              }
-          )
-        , ( "FindAttributes"
-          , Context
-              { cName = "FindAttributes"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Za-z_:][\\w.:_-]*"
-                              , reCompiled = Just (compileRegex True "[A-Za-z_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s+[A-Za-z_:][\\w.:_-]*"
-                              , reCompiled = Just (compileRegex True "\\s+[A-Za-z_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "Value" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindDTDRules"
-          , Context
-              { cName = "FindDTDRules"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<!(ELEMENT|ENTITY|ATTLIST|NOTATION)\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "<!(ELEMENT|ENTITY|ATTLIST|NOTATION)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "Doctype Markupdecl" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindEntityRefs"
-          , Context
-              { cName = "FindEntityRefs"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "&<"
-                      , 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
-              }
-          )
-        , ( "FindHTML"
-          , Context
-              { cName = "FindHTML"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<![CDATA["
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "CDATA" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<!DOCTYPE\\s+"
-                              , reCompiled = Just (compileRegex False "<!DOCTYPE\\s+")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "Doctype" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\?[\\w:-]*"
-                              , reCompiled = Just (compileRegex True "<\\?[\\w:-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "PI" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<style\\b"
-                              , reCompiled = Just (compileRegex False "<style\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "CSS" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<script\\b"
-                              , reCompiled = Just (compileRegex False "<script\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "JS" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<pre\\b"
-                              , reCompiled = Just (compileRegex False "<pre\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<div\\b"
-                              , reCompiled = Just (compileRegex False "<div\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<table\\b"
-                              , reCompiled = Just (compileRegex False "<table\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<ul\\b"
-                              , reCompiled = Just (compileRegex False "<ul\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<ol\\b"
-                              , reCompiled = Just (compileRegex False "<ol\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<dl\\b"
-                              , reCompiled = Just (compileRegex False "<dl\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<article\\b"
-                              , reCompiled = Just (compileRegex False "<article\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<aside\\b"
-                              , reCompiled = Just (compileRegex False "<aside\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<details\\b"
-                              , reCompiled = Just (compileRegex False "<details\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<figure\\b"
-                              , reCompiled = Just (compileRegex False "<figure\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<footer\\b"
-                              , reCompiled = Just (compileRegex False "<footer\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<header\\b"
-                              , reCompiled = Just (compileRegex False "<header\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<main\\b"
-                              , reCompiled = Just (compileRegex False "<main\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<nav\\b"
-                              , reCompiled = Just (compileRegex False "<nav\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<section\\b"
-                              , reCompiled = Just (compileRegex False "<section\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<[A-Za-z_:][\\w.:_-]*"
-                              , reCompiled = Just (compileRegex True "<[A-Za-z_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</pre\\b"
-                              , reCompiled = Just (compileRegex False "</pre\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</div\\b"
-                              , reCompiled = Just (compileRegex False "</div\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</table\\b"
-                              , reCompiled = Just (compileRegex False "</table\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</ul\\b"
-                              , reCompiled = Just (compileRegex False "</ul\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</ol\\b"
-                              , reCompiled = Just (compileRegex False "</ol\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</dl\\b"
-                              , reCompiled = Just (compileRegex False "</dl\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</article\\b"
-                              , reCompiled = Just (compileRegex False "</article\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</aside\\b"
-                              , reCompiled = Just (compileRegex False "</aside\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</details\\b"
-                              , reCompiled = Just (compileRegex False "</details\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</figure\\b"
-                              , reCompiled = Just (compileRegex False "</figure\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</footer\\b"
-                              , reCompiled = Just (compileRegex False "</footer\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</header\\b"
-                              , reCompiled = Just (compileRegex False "</header\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</main\\b"
-                              , reCompiled = Just (compileRegex False "</main\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</nav\\b"
-                              , reCompiled = Just (compileRegex False "</nav\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</section\\b"
-                              , reCompiled = Just (compileRegex False "</section\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</[A-Za-z_:][\\w.:_-]*"
-                              , reCompiled = Just (compileRegex True "</[A-Za-z_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "HTML" , "FindDTDRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "HTML" , "FindEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "FindPEntityRefs"
-          , Context
-              { cName = "FindPEntityRefs"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%[A-Za-z_:][\\w.:_-]*;"
-                              , reCompiled = Just (compileRegex True "%[A-Za-z_:][\\w.:_-]*;")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "&%"
-                      , 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
-              }
-          )
-        , ( "JS"
-          , Context
-              { cName = "JS"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "JS content" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "HTML" , "FindAttributes" )
-                      , 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
-              }
-          )
-        , ( "JS comment close"
-          , Context
-              { cName = "JS comment close"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</script\\b"
-                              , reCompiled = Just (compileRegex False "</script\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Close 3" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "JS content"
-          , Context
-              { cName = "JS content"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</script\\b"
-                              , reCompiled = Just (compileRegex False "</script\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "El Close 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "//(?=.*</script\\b)"
-                              , reCompiled = Just (compileRegex False "//(?=.*</script\\b)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "JS comment close" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "JavaScript" , "Normal" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = True
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "PI"
-          , Context
-              { cName = "PI"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '?' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Start"
-          , Context
-              { cName = "Start"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "HTML" , "FindHTML" )
-                      , 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
-              }
-          )
-        , ( "Value"
-          , Context
-              { cName = "Value"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "Value DQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "HTML" , "Value SQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Push ( "HTML" , "Value NQ" ) ]
-              , cDynamic = False
-              }
-          )
-        , ( "Value DQ"
-          , Context
-              { cName = "Value DQ"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "HTML" , "FindEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "Value NQ"
-          , Context
-              { cName = "Value NQ"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "HTML" , "FindEntityRefs" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 =
-                          RegExpr
-                            RE
-                              { reString = "[^/><\"'\\s]"
-                              , reCompiled = Just (compileRegex True "[^/><\"'\\s]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop , Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "Value SQ"
-          , Context
-              { cName = "Value SQ"
-              , cSyntax = "HTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "HTML" , "FindEntityRefs" )
-                      , 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 = "4"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.htm" , "*.html" , "*.shtml" , "*.shtm" ]
-  , sStartingContext = "Start"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"HTML\", sFilename = \"html.xml\", sShortname = \"Html\", sContexts = fromList [(\"CDATA\",Context {cName = \"CDATA\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"]]>\", rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"]]&gt;\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CSS\",Context {cName = \"CSS\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = Detect2Chars '/' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"CSS content\")]},Rule {rMatcher = IncludeRules (\"HTML\",\"FindAttributes\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"CSS content\",Context {cName = \"CSS content\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"</style\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Close 2\")]},Rule {rMatcher = IncludeRules (\"CSS\",\"\"), rAttribute = NormalTok, rIncludeAttribute = True, 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 = \"HTML\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},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 = []},Rule {rMatcher = StringDetect \"-->\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"-(-(?!->))+\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Doctype\",Context {cName = \"Doctype\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '[', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"Doctype Internal Subset\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Doctype Internal Subset\",Context {cName = \"Doctype Internal Subset\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = DetectChar ']', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"HTML\",\"FindDTDRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\?[\\\\w:-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"PI\")]},Rule {rMatcher = IncludeRules (\"HTML\",\"FindPEntityRefs\"), 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}),(\"Doctype Markupdecl\",Context {cName = \"Doctype Markupdecl\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"Doctype Markupdecl DQ\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"Doctype Markupdecl SQ\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Doctype Markupdecl DQ\",Context {cName = \"Doctype Markupdecl DQ\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"HTML\",\"FindPEntityRefs\"), 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}),(\"Doctype Markupdecl SQ\",Context {cName = \"Doctype Markupdecl SQ\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"HTML\",\"FindPEntityRefs\"), 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}),(\"El Close\",Context {cName = \"El Close\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"El Close 2\",Context {cName = \"El Close 2\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"El Close 3\",Context {cName = \"El Close 3\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"El Open\",Context {cName = \"El Open\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = Detect2Chars '/' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"HTML\",\"FindAttributes\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"FindAttributes\",Context {cName = \"FindAttributes\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[A-Za-z_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+[A-Za-z_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '=', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"Value\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindDTDRules\",Context {cName = \"FindDTDRules\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<!(ELEMENT|ENTITY|ATTLIST|NOTATION)\\\\b\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"Doctype Markupdecl\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindEntityRefs\",Context {cName = \"FindEntityRefs\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\\\w.:_-]*);\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"&<\", 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}),(\"FindHTML\",Context {cName = \"FindHTML\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"Comment\")]},Rule {rMatcher = StringDetect \"<![CDATA[\", rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"CDATA\")]},Rule {rMatcher = RegExpr (RE {reString = \"<!DOCTYPE\\\\s+\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"Doctype\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\?[\\\\w:-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"PI\")]},Rule {rMatcher = RegExpr (RE {reString = \"<style\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"CSS\")]},Rule {rMatcher = RegExpr (RE {reString = \"<script\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"JS\")]},Rule {rMatcher = RegExpr (RE {reString = \"<pre\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"<div\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"<table\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"<ul\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"<ol\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"<dl\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"<article\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"<aside\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"<details\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"<figure\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"<footer\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"<header\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"<main\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"<nav\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"<section\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"<[A-Za-z_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"</pre\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Close\")]},Rule {rMatcher = RegExpr (RE {reString = \"</div\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Close\")]},Rule {rMatcher = RegExpr (RE {reString = \"</table\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Close\")]},Rule {rMatcher = RegExpr (RE {reString = \"</ul\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Close\")]},Rule {rMatcher = RegExpr (RE {reString = \"</ol\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Close\")]},Rule {rMatcher = RegExpr (RE {reString = \"</dl\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Close\")]},Rule {rMatcher = RegExpr (RE {reString = \"</article\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Close\")]},Rule {rMatcher = RegExpr (RE {reString = \"</aside\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Close\")]},Rule {rMatcher = RegExpr (RE {reString = \"</details\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Close\")]},Rule {rMatcher = RegExpr (RE {reString = \"</figure\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Close\")]},Rule {rMatcher = RegExpr (RE {reString = \"</footer\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Close\")]},Rule {rMatcher = RegExpr (RE {reString = \"</header\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Close\")]},Rule {rMatcher = RegExpr (RE {reString = \"</main\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Close\")]},Rule {rMatcher = RegExpr (RE {reString = \"</nav\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Close\")]},Rule {rMatcher = RegExpr (RE {reString = \"</section\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Close\")]},Rule {rMatcher = RegExpr (RE {reString = \"</[A-Za-z_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Close\")]},Rule {rMatcher = IncludeRules (\"HTML\",\"FindDTDRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"HTML\",\"FindEntityRefs\"), 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}),(\"FindPEntityRefs\",Context {cName = \"FindPEntityRefs\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\\\w.:_-]*);\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%[A-Za-z_:][\\\\w.:_-]*;\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"&%\", 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}),(\"JS\",Context {cName = \"JS\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = Detect2Chars '/' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"JS content\")]},Rule {rMatcher = IncludeRules (\"HTML\",\"FindAttributes\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"JS comment close\",Context {cName = \"JS comment close\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"</script\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Close 3\")]},Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"JS content\",Context {cName = \"JS content\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"</script\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"El Close 2\")]},Rule {rMatcher = RegExpr (RE {reString = \"//(?=.*</script\\\\b)\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"JS comment close\")]},Rule {rMatcher = IncludeRules (\"JavaScript\",\"Normal\"), rAttribute = NormalTok, rIncludeAttribute = True, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"PI\",Context {cName = \"PI\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = Detect2Chars '?' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Start\",Context {cName = \"Start\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = IncludeRules (\"HTML\",\"FindHTML\"), 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}),(\"Value\",Context {cName = \"Value\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"Value DQ\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"HTML\",\"Value SQ\")]},Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Push (\"HTML\",\"Value NQ\")], cDynamic = False}),(\"Value DQ\",Context {cName = \"Value DQ\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"HTML\",\"FindEntityRefs\"), 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}),(\"Value NQ\",Context {cName = \"Value NQ\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = IncludeRules (\"HTML\",\"FindEntityRefs\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"/(?!>)\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[^/><\\\"'\\\\s]\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop,Pop], cDynamic = False}),(\"Value SQ\",Context {cName = \"Value SQ\", cSyntax = \"HTML\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"HTML\",\"FindEntityRefs\"), 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 = \"4\", sLicense = \"LGPL\", sExtensions = [\"*.htm\",\"*.html\",\"*.shtml\",\"*.shtm\"], sStartingContext = \"Start\"}"
diff --git a/src/Skylighting/Syntax/Idris.hs b/src/Skylighting/Syntax/Idris.hs
--- a/src/Skylighting/Syntax/Idris.hs
+++ b/src/Skylighting/Syntax/Idris.hs
@@ -2,857 +2,6 @@
 module Skylighting.Syntax.Idris (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Idris"
-  , sFilename = "idris.xml"
-  , sShortname = "Idris"
-  , sContexts =
-      fromList
-        [ ( "block comment"
-          , Context
-              { cName = "block comment"
-              , cSyntax = "Idris"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '-' '}'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '{' '-'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Idris" , "block comment" ) ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "char"
-          , Context
-              { cName = "char"
-              , cSyntax = "Idris"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\."
-                              , reCompiled = Just (compileRegex True "\\\\.")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "code"
-          , Context
-              { cName = "code"
-              , cSyntax = "Idris"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "---*[^!#\\$%&\\*\\+/<=>\\?\\@\\^\\|~\\.:]?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "---*[^!#\\$%&\\*\\+/<=>\\?\\@\\^\\|~\\.:]?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Idris" , "line comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\|\\|\\|[^\\-!#\\$%&\\*\\+/<=>\\?\\@\\^\\|~\\.:]?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\|\\|\\|[^\\-!#\\$%&\\*\\+/<=>\\?\\@\\^\\|~\\.:]?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Idris" , "line comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '{' '-'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Idris" , "block comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\s*([a-z]+\\s+)*([A-Za-z][A-Za-z0-9_]*'*|\\([\\-!#\\$%&\\*\\+\\./<=>\\?@\\\\^\\|~:]+\\))\\s*:"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\s*([a-z]+\\s+)*([A-Za-z][A-Za-z0-9_]*'*|\\([\\-!#\\$%&\\*\\+\\./<=>\\?@\\\\^\\|~:]+\\))\\s*:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Idris" , "declaration" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "abstract"
-                               , "auto"
-                               , "case"
-                               , "class"
-                               , "codata"
-                               , "covering"
-                               , "data"
-                               , "default"
-                               , "do"
-                               , "dsl"
-                               , "else"
-                               , "if"
-                               , "implicit"
-                               , "import"
-                               , "impossible"
-                               , "in"
-                               , "index_first"
-                               , "index_next"
-                               , "infix"
-                               , "infixl"
-                               , "infixr"
-                               , "instance"
-                               , "lambda"
-                               , "let"
-                               , "module"
-                               , "mututal"
-                               , "namespace"
-                               , "of"
-                               , "parameters"
-                               , "partial"
-                               , "pattern"
-                               , "postulate"
-                               , "prefix"
-                               , "private"
-                               , "proof"
-                               , "public"
-                               , "record"
-                               , "rewrite"
-                               , "static"
-                               , "syntax"
-                               , "tactics"
-                               , "term"
-                               , "then"
-                               , "total"
-                               , "using"
-                               , "variable"
-                               , "where"
-                               , "with"
-                               ])
-                      , rAttribute = KeywordTok
-                      , 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 ( "Idris" , "directive" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "applyTactic"
-                               , "attack"
-                               , "compute"
-                               , "exact"
-                               , "fill"
-                               , "focus"
-                               , "induction"
-                               , "intro"
-                               , "intros"
-                               , "let"
-                               , "refine"
-                               , "reflect"
-                               , "rewrite"
-                               , "solve"
-                               , "trivial"
-                               , "try"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Idris" , "char" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Idris" , "string" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "0[Xx][0-9A-Fa-f]+"
-                              , reCompiled = Just (compileRegex True "0[Xx][0-9A-Fa-f]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "0[Xx][0-9A-Fa-f]+"
-                              , reCompiled = Just (compileRegex True "0[Xx][0-9A-Fa-f]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\d+\\.\\d+([eE][-+]?\\d+)?"
-                              , reCompiled =
-                                  Just (compileRegex True "\\d+\\.\\d+([eE][-+]?\\d+)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([A-Z][a-zA-Z0-9_]*'*|_\\|_)"
-                              , reCompiled =
-                                  Just (compileRegex True "([A-Z][a-zA-Z0-9_]*'*|_\\|_)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-z][a-zA-Z0-9_]*'*"
-                              , reCompiled = Just (compileRegex True "[a-z][a-zA-Z0-9_]*'*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\?[a-z][A-Za-z0-9_]+'*"
-                              , reCompiled = Just (compileRegex True "\\?[a-z][A-Za-z0-9_]+'*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(:|=>|\\->|<\\-)"
-                              , reCompiled = Just (compileRegex True "(:|=>|\\->|<\\-)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([\\-!#\\$%&\\*\\+\\./<=>\\?@\\\\^\\|~:]+|\\b_\\b)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "([\\-!#\\$%&\\*\\+\\./<=>\\?@\\\\^\\|~:]+|\\b_\\b)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "`[A-Za-z][A-Za-z0-9_]*'*`"
-                              , reCompiled = Just (compileRegex True "`[A-Za-z][A-Za-z0-9_]*'*`")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "declaration"
-          , Context
-              { cName = "declaration"
-              , cSyntax = "Idris"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "abstract"
-                               , "auto"
-                               , "case"
-                               , "class"
-                               , "codata"
-                               , "covering"
-                               , "data"
-                               , "default"
-                               , "do"
-                               , "dsl"
-                               , "else"
-                               , "if"
-                               , "implicit"
-                               , "import"
-                               , "impossible"
-                               , "in"
-                               , "index_first"
-                               , "index_next"
-                               , "infix"
-                               , "infixl"
-                               , "infixr"
-                               , "instance"
-                               , "lambda"
-                               , "let"
-                               , "module"
-                               , "mututal"
-                               , "namespace"
-                               , "of"
-                               , "parameters"
-                               , "partial"
-                               , "pattern"
-                               , "postulate"
-                               , "prefix"
-                               , "private"
-                               , "proof"
-                               , "public"
-                               , "record"
-                               , "rewrite"
-                               , "static"
-                               , "syntax"
-                               , "tactics"
-                               , "term"
-                               , "then"
-                               , "total"
-                               , "using"
-                               , "variable"
-                               , "where"
-                               , "with"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([A-Z][a-zA-Z0-9_]*'*|_\\|_)"
-                              , reCompiled =
-                                  Just (compileRegex True "([A-Z][a-zA-Z0-9_]*'*|_\\|_)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-z][A-Za-z0-9_]*'*"
-                              , reCompiled = Just (compileRegex True "[a-z][A-Za-z0-9_]*'*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\([\\-!#\\$%&\\*\\+\\./<=>\\?@\\\\^\\|~:]+\\)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\([\\-!#\\$%&\\*\\+\\./<=>\\?@\\\\^\\|~:]+\\)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ':'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "directive"
-          , Context
-              { cName = "directive"
-              , cSyntax = "Idris"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "abstract"
-                               , "auto"
-                               , "case"
-                               , "class"
-                               , "codata"
-                               , "covering"
-                               , "data"
-                               , "default"
-                               , "do"
-                               , "dsl"
-                               , "else"
-                               , "if"
-                               , "implicit"
-                               , "import"
-                               , "impossible"
-                               , "in"
-                               , "index_first"
-                               , "index_next"
-                               , "infix"
-                               , "infixl"
-                               , "infixr"
-                               , "instance"
-                               , "lambda"
-                               , "let"
-                               , "module"
-                               , "mututal"
-                               , "namespace"
-                               , "of"
-                               , "parameters"
-                               , "partial"
-                               , "pattern"
-                               , "postulate"
-                               , "prefix"
-                               , "private"
-                               , "proof"
-                               , "public"
-                               , "record"
-                               , "rewrite"
-                               , "static"
-                               , "syntax"
-                               , "tactics"
-                               , "term"
-                               , "then"
-                               , "total"
-                               , "using"
-                               , "variable"
-                               , "where"
-                               , "with"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "access"
-                               , "assert_total"
-                               , "default"
-                               , "dynamic"
-                               , "elim"
-                               , "error_handlers"
-                               , "error_reverse"
-                               , "flag"
-                               , "hide"
-                               , "include"
-                               , "language"
-                               , "lib"
-                               , "link"
-                               , "name"
-                               , "provide"
-                               , "reflection"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "line comment"
-          , Context
-              { cName = "line comment"
-              , cSyntax = "Idris"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "string"
-          , Context
-              { cName = "string"
-              , cSyntax = "Idris"
-              , 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 =
-                          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 = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Alexander Shabalin"
-  , sVersion = "1.0"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.idr" ]
-  , sStartingContext = "code"
-  }
+syntax = read $! "Syntax {sName = \"Idris\", sFilename = \"idris.xml\", sShortname = \"Idris\", sContexts = fromList [(\"block comment\",Context {cName = \"block comment\", cSyntax = \"Idris\", cRules = [Rule {rMatcher = Detect2Chars '-' '}', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '{' '-', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Idris\",\"block comment\")]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"char\",Context {cName = \"char\", cSyntax = \"Idris\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CharTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"code\",Context {cName = \"code\", cSyntax = \"Idris\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"---*[^!#\\\\$%&\\\\*\\\\+/<=>\\\\?\\\\@\\\\^\\\\|~\\\\.:]?\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Idris\",\"line comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\|\\\\|\\\\|[^\\\\-!#\\\\$%&\\\\*\\\\+/<=>\\\\?\\\\@\\\\^\\\\|~\\\\.:]?\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Idris\",\"line comment\")]},Rule {rMatcher = Detect2Chars '{' '-', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Idris\",\"block comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*([a-z]+\\\\s+)*([A-Za-z][A-Za-z0-9_]*'*|\\\\([\\\\-!#\\\\$%&\\\\*\\\\+\\\\./<=>\\\\?@\\\\\\\\^\\\\|~:]+\\\\))\\\\s*:\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Idris\",\"declaration\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"abstract\",\"auto\",\"case\",\"class\",\"codata\",\"covering\",\"data\",\"default\",\"do\",\"dsl\",\"else\",\"if\",\"implicit\",\"import\",\"impossible\",\"in\",\"index_first\",\"index_next\",\"infix\",\"infixl\",\"infixr\",\"instance\",\"lambda\",\"let\",\"module\",\"mututal\",\"namespace\",\"of\",\"parameters\",\"partial\",\"pattern\",\"postulate\",\"prefix\",\"private\",\"proof\",\"public\",\"record\",\"rewrite\",\"static\",\"syntax\",\"tactics\",\"term\",\"then\",\"total\",\"using\",\"variable\",\"where\",\"with\"])), rAttribute = KeywordTok, 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 (\"Idris\",\"directive\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"applyTactic\",\"attack\",\"compute\",\"exact\",\"fill\",\"focus\",\"induction\",\"intro\",\"intros\",\"let\",\"refine\",\"reflect\",\"rewrite\",\"solve\",\"trivial\",\"try\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Idris\",\"char\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Idris\",\"string\")]},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"0[Xx][0-9A-Fa-f]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"0[Xx][0-9A-Fa-f]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\d+\\\\.\\\\d+([eE][-+]?\\\\d+)?\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([A-Z][a-zA-Z0-9_]*'*|_\\\\|_)\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-z][a-zA-Z0-9_]*'*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\?[a-z][A-Za-z0-9_]+'*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(:|=>|\\\\->|<\\\\-)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([\\\\-!#\\\\$%&\\\\*\\\\+\\\\./<=>\\\\?@\\\\\\\\^\\\\|~:]+|\\\\b_\\\\b)\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"`[A-Za-z][A-Za-z0-9_]*'*`\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"declaration\",Context {cName = \"declaration\", cSyntax = \"Idris\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"abstract\",\"auto\",\"case\",\"class\",\"codata\",\"covering\",\"data\",\"default\",\"do\",\"dsl\",\"else\",\"if\",\"implicit\",\"import\",\"impossible\",\"in\",\"index_first\",\"index_next\",\"infix\",\"infixl\",\"infixr\",\"instance\",\"lambda\",\"let\",\"module\",\"mututal\",\"namespace\",\"of\",\"parameters\",\"partial\",\"pattern\",\"postulate\",\"prefix\",\"private\",\"proof\",\"public\",\"record\",\"rewrite\",\"static\",\"syntax\",\"tactics\",\"term\",\"then\",\"total\",\"using\",\"variable\",\"where\",\"with\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([A-Z][a-zA-Z0-9_]*'*|_\\\\|_)\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-z][A-Za-z0-9_]*'*\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\([\\\\-!#\\\\$%&\\\\*\\\\+\\\\./<=>\\\\?@\\\\\\\\^\\\\|~:]+\\\\)\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ':', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"directive\",Context {cName = \"directive\", cSyntax = \"Idris\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"abstract\",\"auto\",\"case\",\"class\",\"codata\",\"covering\",\"data\",\"default\",\"do\",\"dsl\",\"else\",\"if\",\"implicit\",\"import\",\"impossible\",\"in\",\"index_first\",\"index_next\",\"infix\",\"infixl\",\"infixr\",\"instance\",\"lambda\",\"let\",\"module\",\"mututal\",\"namespace\",\"of\",\"parameters\",\"partial\",\"pattern\",\"postulate\",\"prefix\",\"private\",\"proof\",\"public\",\"record\",\"rewrite\",\"static\",\"syntax\",\"tactics\",\"term\",\"then\",\"total\",\"using\",\"variable\",\"where\",\"with\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"access\",\"assert_total\",\"default\",\"dynamic\",\"elim\",\"error_handlers\",\"error_reverse\",\"flag\",\"hide\",\"include\",\"language\",\"lib\",\"link\",\"name\",\"provide\",\"reflection\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"line comment\",Context {cName = \"line comment\", cSyntax = \"Idris\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"string\",Context {cName = \"string\", cSyntax = \"Idris\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\"\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Alexander Shabalin\", sVersion = \"1.0\", sLicense = \"LGPL\", sExtensions = [\"*.idr\"], sStartingContext = \"code\"}"
diff --git a/src/Skylighting/Syntax/Ini.hs b/src/Skylighting/Syntax/Ini.hs
--- a/src/Skylighting/Syntax/Ini.hs
+++ b/src/Skylighting/Syntax/Ini.hs
@@ -2,255 +2,6 @@
 module Skylighting.Syntax.Ini (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "INI Files"
-  , sFilename = "ini.xml"
-  , sShortname = "Ini"
-  , sContexts =
-      fromList
-        [ ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "INI Files"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Value"
-          , Context
-              { cName = "Value"
-              , cSyntax = "INI Files"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , 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
-                               [ "Default"
-                               , "Defaults"
-                               , "E_ALL"
-                               , "E_COMPILE_ERROR"
-                               , "E_COMPILE_WARNING"
-                               , "E_CORE_ERROR"
-                               , "E_CORE_WARNING"
-                               , "E_ERROR"
-                               , "E_NOTICE"
-                               , "E_PARSE"
-                               , "E_STRICT"
-                               , "E_USER_ERROR"
-                               , "E_USER_NOTICE"
-                               , "E_USER_WARNING"
-                               , "E_WARNING"
-                               , "False"
-                               , "Localhost"
-                               , "No"
-                               , "Normal"
-                               , "Null"
-                               , "Off"
-                               , "On"
-                               , "True"
-                               , "Yes"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ";.*$"
-                              , reCompiled = Just (compileRegex True ";.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , 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 = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ini"
-          , Context
-              { cName = "ini"
-              , cSyntax = "INI Files"
-              , cRules =
-                  [ Rule
-                      { rMatcher = RangeDetect '[' ']'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "INI Files" , "Value" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ';'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "INI Files" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "INI Files" , "Comment" ) ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Jan Janssen (medhefgo@web.de)"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.ini" , "*.pls" , "*.kcfgc" ]
-  , sStartingContext = "ini"
-  }
+syntax = read $! "Syntax {sName = \"INI Files\", sFilename = \"ini.xml\", sShortname = \"Ini\", sContexts = fromList [(\"Comment\",Context {cName = \"Comment\", cSyntax = \"INI Files\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},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 = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Value\",Context {cName = \"Value\", cSyntax = \"INI Files\", cRules = [Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"Default\",\"Defaults\",\"E_ALL\",\"E_COMPILE_ERROR\",\"E_COMPILE_WARNING\",\"E_CORE_ERROR\",\"E_CORE_WARNING\",\"E_ERROR\",\"E_NOTICE\",\"E_PARSE\",\"E_STRICT\",\"E_USER_ERROR\",\"E_USER_NOTICE\",\"E_USER_WARNING\",\"E_WARNING\",\"False\",\"Localhost\",\"No\",\"Normal\",\"Null\",\"Off\",\"On\",\"True\",\"Yes\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \";.*$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"#.*$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ini\",Context {cName = \"ini\", cSyntax = \"INI Files\", cRules = [Rule {rMatcher = RangeDetect '[' ']', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '=', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"INI Files\",\"Value\")]},Rule {rMatcher = DetectChar ';', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"INI Files\",\"Comment\")]},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"INI Files\",\"Comment\")]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Jan Janssen (medhefgo@web.de)\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [\"*.ini\",\"*.pls\",\"*.kcfgc\"], sStartingContext = \"ini\"}"
diff --git a/src/Skylighting/Syntax/Isocpp.hs b/src/Skylighting/Syntax/Isocpp.hs
--- a/src/Skylighting/Syntax/Isocpp.hs
+++ b/src/Skylighting/Syntax/Isocpp.hs
@@ -2,3061 +2,6 @@
 module Skylighting.Syntax.Isocpp (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "ISO C++"
-  , sFilename = "isocpp.xml"
-  , sShortname = "Isocpp"
-  , sContexts =
-      fromList
-        [ ( "AfterHash"
-          , Context
-              { cName = "AfterHash"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*(?:include|include_next)"
-                              , reCompiled =
-                                  Just (compileRegex False "#\\s*(?:include|include_next)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Include" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(#|%\\:|\\?\\?=)\\s*if(?:def|ndef)?(?=(?:\\(|\\s+)\\S)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(#|%\\:|\\?\\?=)\\s*if(?:def|ndef)?(?=(?:\\(|\\s+)\\S)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(#|%\\:|\\?\\?=)\\s*endif"
-                              , reCompiled = Just (compileRegex True "(#|%\\:|\\?\\?=)\\s*endif")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(#|%\\:|\\?\\?=)\\s*(cmake)?define.*((?=\\\\))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(#|%\\:|\\?\\?=)\\s*(cmake)?define.*((?=\\\\))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Define" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(#|%\\:|\\?\\?=)\\s*(?:el(?:se|if)|(cmake)?define|undef|line|error|warning|pragma)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(#|%\\:|\\?\\?=)\\s*(?:el(?:se|if)|(cmake)?define|undef|line|error|warning|pragma)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(#|%\\:|\\?\\?=)\\s+[0-9]+"
-                              , reCompiled =
-                                  Just (compileRegex True "(#|%\\:|\\?\\?=)\\s+[0-9]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Preprocessor" ) ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Attribute"
-          , Context
-              { cName = "Attribute"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True [ "carries_dependency" , "deprecated" , "noreturn" ])
-                      , rAttribute = AttributeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars ']' ']'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "!% &()+-/.*<=>?[]{|}~^,;"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "String" ) ]
-                      }
-                  ]
-              , cAttribute = AttributeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Boost Stuff"
-          , Context
-              { cName = "Boost Stuff"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "ISO C++" , "DetectNSEnd" )
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ExtensionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Char Literal"
-          , Context
-              { cName = "Char Literal"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "ISO C++" , "Universal Char" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Simple Esc" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment 1"
-          , Context
-              { cName = "Comment 1"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Modelines" , "" )
-                      , 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 = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment 2"
-          , Context
-              { cName = "Comment 2"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = LineContinue
-                      , 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 = IncludeRules ( "Modelines" , "" )
-                      , 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
-              }
-          )
-        , ( "Comment/Preprocessor"
-          , Context
-              { cName = "Comment/Preprocessor"
-              , cSyntax = "ISO C++"
-              , 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 = 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
-              }
-          )
-        , ( "Define"
-          , Context
-              { cName = "Define"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "__DATE__"
-                               , "__FILE__"
-                               , "__LINE__"
-                               , "__STDC_HOSTED__"
-                               , "__STDC_ISO_10646__"
-                               , "__STDC_MB_MIGHT_NEQ_WC__"
-                               , "__STDC_VERSION__"
-                               , "__STDC__"
-                               , "__TIME__"
-                               , "__cplusplus"
-                               , "__func__"
-                               ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "GCCExtensions" , "GNUMacros" )
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = PreprocessorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "DetectIdentifierEnd"
-          , Context
-              { cName = "DetectIdentifierEnd"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = AnyChar ":!% &()+-/.*<=>?[]{|}~^,;"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "DetectNSEnd"
-          , Context
-              { cName = "DetectNSEnd"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "template" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ",;"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "!% &()+-/.*<=>?[]{|}~^,;"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar " "
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Include"
-          , Context
-              { cName = "Include"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '"' '"'
-                      , rAttribute = ImportTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '<' '>'
-                      , rAttribute = ImportTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "ISO C++" , "Preprocessor" )
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = PreprocessorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Inscoped"
-          , Context
-              { cName = "Inscoped"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(#|%\\:|\\?\\?=)\\s*if\\s+(0|false)\\s*"
-                              , reCompiled =
-                                  Just (compileRegex True "(#|%\\:|\\?\\?=)\\s*if\\s+(0|false)\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Outscoped" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(#|%\\:|\\?\\?=)\\s*el(?:se|if)"
-                              , reCompiled =
-                                  Just (compileRegex True "(#|%\\:|\\?\\?=)\\s*el(?:se|if)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Outscoped 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(#|%\\:|\\?\\?=)\\s*endif"
-                              , reCompiled = Just (compileRegex True "(#|%\\:|\\?\\?=)\\s*endif")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "ISO C++" , "Main" )
-                      , 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
-              }
-          )
-        , ( "InternalsNS"
-          , Context
-              { cName = "InternalsNS"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "ISO C++" , "DetectNSEnd" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Main"
-          , Context
-              { cName = "Main"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "AfterHash" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '%' ':'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "AfterHash" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "??="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "AfterHash" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '%' ':'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "??="
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "//BEGIN"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Region Marker" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "//END"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Region Marker" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "operator\\s*\"\" _[_0-9A-Za-z]*\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "operator\\s*\"\" _[_0-9A-Za-z]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "UDLOperator" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "operator\\s*\"\" [_0-9A-Za-z]*\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "operator\\s*\"\" [_0-9A-Za-z]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "break"
-                               , "case"
-                               , "catch"
-                               , "continue"
-                               , "default"
-                               , "do"
-                               , "else"
-                               , "for"
-                               , "goto"
-                               , "if"
-                               , "return"
-                               , "switch"
-                               , "throw"
-                               , "try"
-                               , "while"
-                               ])
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "alignas"
-                               , "alignof"
-                               , "and"
-                               , "and_eq"
-                               , "asm"
-                               , "auto"
-                               , "bitand"
-                               , "bitor"
-                               , "class"
-                               , "compl"
-                               , "const_cast"
-                               , "constexpr"
-                               , "decltype"
-                               , "delete"
-                               , "dynamic_cast"
-                               , "enum"
-                               , "explicit"
-                               , "export"
-                               , "false"
-                               , "final"
-                               , "friend"
-                               , "inline"
-                               , "namespace"
-                               , "new"
-                               , "noexcept"
-                               , "not"
-                               , "not_eq"
-                               , "nullptr"
-                               , "operator"
-                               , "or"
-                               , "or_eq"
-                               , "override"
-                               , "private"
-                               , "protected"
-                               , "public"
-                               , "reinterpret_cast"
-                               , "sizeof"
-                               , "static_assert"
-                               , "static_cast"
-                               , "struct"
-                               , "template"
-                               , "this"
-                               , "true"
-                               , "typedef"
-                               , "typeid"
-                               , "typename"
-                               , "union"
-                               , "using"
-                               , "virtual"
-                               , "xor"
-                               , "xor_eq"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '[' '['
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Attribute" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "[\\+\\-]?0x[0-9A-Fa-f]('?[0-9A-Fa-f]+)*([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "[\\+\\-]?0x[0-9A-Fa-f]('?[0-9A-Fa-f]+)*([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "0[Bb][01]('?[01]+)*([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "0[Bb][01]('?[01]+)*([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = AnyChar "FfLl"
-                              , rAttribute = FloatTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = True
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "[\\+\\-]?0'?[0-7]('?[0-7]+)*([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "[\\+\\-]?0'?[0-7]('?[0-7]+)*([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "[\\+\\-]?(0|[1-9]('?[0-9]+)*)([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "[\\+\\-]?(0|[1-9]('?[0-9]+)*)([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "[\\+\\-]?(0x?|[1-9][0-9]*)[0-9A-Za-z][_0-9A-Za-z]*\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "[\\+\\-]?(0x?|[1-9][0-9]*)[0-9A-Za-z][_0-9A-Za-z]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars 'U' '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars 'u' '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars 'L' '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "u8\""
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(u|u8|U|L)?R\"([^\\(]{0,16})\\("
-                              , reCompiled =
-                                  Just (compileRegex True "(u|u8|U|L)?R\"([^\\(]{0,16})\\(")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "RawString" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(u|u8|U|L)?R\"([^\\(]{16,})\\("
-                              , reCompiled =
-                                  Just (compileRegex True "(u|u8|U|L)?R\"([^\\(]{16,})\\(")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Char Literal" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars 'L' '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Char Literal" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars 'u' '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "U-Char Literal" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars 'U' '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "U-Char Literal" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "GCCExtensions" , "DetectGccExtensions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "std::"
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Standard Classes" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "boost::"
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Boost Stuff" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "BOOST_"
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Boost Stuff" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "detail::"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "InternalsNS" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "details::"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "InternalsNS" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "aux::"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "InternalsNS" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "internals::"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "InternalsNS" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "bool"
-                               , "char"
-                               , "char16_t"
-                               , "char32_t"
-                               , "double"
-                               , "float"
-                               , "int"
-                               , "int16_t"
-                               , "int32_t"
-                               , "int64_t"
-                               , "int8_t"
-                               , "int_fast16_t"
-                               , "int_fast32_t"
-                               , "int_fast64_t"
-                               , "int_fast8_t"
-                               , "int_least16_t"
-                               , "int_least32_t"
-                               , "int_least64_t"
-                               , "int_least8_t"
-                               , "intmax_t"
-                               , "intptr_t"
-                               , "long"
-                               , "ptrdiff_t"
-                               , "short"
-                               , "sig_atomic_t"
-                               , "signed"
-                               , "size_t"
-                               , "ssize_t"
-                               , "uint16_t"
-                               , "uint32_t"
-                               , "uint64_t"
-                               , "uint8_t"
-                               , "uint_fast16_t"
-                               , "uint_fast32_t"
-                               , "uint_fast64_t"
-                               , "uint_fast8_t"
-                               , "uint_least16_t"
-                               , "uint_least32_t"
-                               , "uint_least64_t"
-                               , "uint_least8_t"
-                               , "uintmax_t"
-                               , "uintptr_t"
-                               , "unsigned"
-                               , "void"
-                               , "wchar_t"
-                               , "wint_t"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "const"
-                               , "extern"
-                               , "mutable"
-                               , "register"
-                               , "static"
-                               , "thread_local"
-                               , "volatile"
-                               ])
-                      , rAttribute = AttributeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "__DATE__"
-                               , "__FILE__"
-                               , "__LINE__"
-                               , "__STDC_HOSTED__"
-                               , "__STDC_ISO_10646__"
-                               , "__STDC_MB_MIGHT_NEQ_WC__"
-                               , "__STDC_VERSION__"
-                               , "__STDC__"
-                               , "__TIME__"
-                               , "__cplusplus"
-                               , "__func__"
-                               ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "_[a-zA-Z0-9_]+"
-                              , reCompiled = Just (compileRegex True "_[a-zA-Z0-9_]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z][a-zA-Z0-9_]*__\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "[a-zA-Z][a-zA-Z0-9_]*__\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-z][a-zA-Z0-9_]*_\\b"
-                              , reCompiled = Just (compileRegex True "[a-z][a-zA-Z0-9_]*_\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "m_[a-zA-Z0-9_]+"
-                              , reCompiled = Just (compileRegex True "m_[a-zA-Z0-9_]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "g_[a-zA-Z0-9_]+"
-                              , reCompiled = Just (compileRegex True "g_[a-zA-Z0-9_]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "s_[a-zA-Z0-9_]+"
-                              , reCompiled = Just (compileRegex True "s_[a-zA-Z0-9_]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Z][A-Z0-9_]{2,}\\b"
-                              , reCompiled = Just (compileRegex True "[A-Z][A-Z0-9_]{2,}\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z][a-zA-Z0-9_]*_t(ype)?\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "[a-zA-Z][a-zA-Z0-9_]*_t(ype)?\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "" )
-                      , rAttribute = NormalTok
-                      , 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 ( "ISO C++" , "Comment 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Comment 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ",;"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ":!% &()+-/.*<=>?[]{|}~^,;"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '@'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , 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
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(#|%\\:|\\?\\?=)\\s*if\\s+(0|false)\\s*"
-                              , reCompiled =
-                                  Just (compileRegex True "(#|%\\:|\\?\\?=)\\s*if\\s+(0|false)\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Outscoped" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(#|%\\:|\\?\\?=)\\s*if\\s+(1|true)\\s*"
-                              , reCompiled =
-                                  Just (compileRegex True "(#|%\\:|\\?\\?=)\\s*if\\s+(1|true)\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Inscoped" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "ISO C++" , "Main" )
-                      , 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
-              }
-          )
-        , ( "Outscoped"
-          , Context
-              { cName = "Outscoped"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "ISO C++" , "Outscoped Common" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(#|%\\:|\\?\\?=)\\s*el(?:se|if)"
-                              , reCompiled =
-                                  Just (compileRegex True "(#|%\\:|\\?\\?=)\\s*el(?:se|if)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(#|%\\:|\\?\\?=)\\s*endif"
-                              , reCompiled = Just (compileRegex True "(#|%\\:|\\?\\?=)\\s*endif")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Outscoped 2"
-          , Context
-              { cName = "Outscoped 2"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "ISO C++" , "Outscoped Common" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(#|%\\:|\\?\\?=)\\s*endif"
-                              , reCompiled = Just (compileRegex True "(#|%\\:|\\?\\?=)\\s*endif")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Outscoped Common"
-          , Context
-              { cName = "Outscoped Common"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Modelines" , "" )
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "" )
-                      , 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 = [ Push ( "ISO C++" , "Comment 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(#|%\\:|\\?\\?=)\\s*if"
-                              , reCompiled = Just (compileRegex True "(#|%\\:|\\?\\?=)\\s*if")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Outscoped intern" ) ]
-                      }
-                  , Rule
-                      { rMatcher = LineContinue
-                      , 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
-              }
-          )
-        , ( "Outscoped intern"
-          , Context
-              { cName = "Outscoped intern"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Modelines" , "" )
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "" )
-                      , 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 = [ Push ( "ISO C++" , "Comment 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Comment 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(#|%\\:|\\?\\?=)\\s*if"
-                              , reCompiled = Just (compileRegex True "(#|%\\:|\\?\\?=)\\s*if")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Outscoped intern" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(#|%\\:|\\?\\?=)\\s*endif"
-                              , reCompiled = Just (compileRegex True "(#|%\\:|\\?\\?=)\\s*endif")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Preprocessor"
-          , Context
-              { cName = "Preprocessor"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "__DATE__"
-                               , "__FILE__"
-                               , "__LINE__"
-                               , "__STDC_HOSTED__"
-                               , "__STDC_ISO_10646__"
-                               , "__STDC_MB_MIGHT_NEQ_WC__"
-                               , "__STDC_VERSION__"
-                               , "__STDC__"
-                               , "__TIME__"
-                               , "__cplusplus"
-                               , "__func__"
-                               ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "GCCExtensions" , "GNUMacros" )
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "" )
-                      , rAttribute = PreprocessorTok
-                      , 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 ( "ISO C++" , "Comment/Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Comment 1" ) ]
-                      }
-                  ]
-              , cAttribute = PreprocessorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "RawString"
-          , Context
-              { cName = "RawString"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%[^\"diouxXeEfFgGaAcsP%\\s]*[diouxXeEfFgGaAcsP%]"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "%[^\"diouxXeEfFgGaAcsP%\\s]*[diouxXeEfFgGaAcsP%]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\)%2\""
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "Region Marker"
-          , Context
-              { cName = "Region Marker"
-              , cSyntax = "ISO C++"
-              , cRules = []
-              , cAttribute = RegionMarkerTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Simple Esc"
-          , Context
-              { cName = "Simple Esc"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = AnyChar "tnvbrfa'\"\\"
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[0-7]{1,3}"
-                              , reCompiled = Just (compileRegex True "[0-7]{1,3}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "x[0-9A-Fa-f]{1,}"
-                              , reCompiled = Just (compileRegex True "x[0-9A-Fa-f]{1,}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , 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 = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = SpecialCharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Standard Classes"
-          , Context
-              { cName = "Standard Classes"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "ISO C++" , "DetectNSEnd" )
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = BuiltInTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "ISO C++" , "Universal Char" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%[^\"diouxXeEfFgGaAcsP%\\s]*[diouxXeEfFgGaAcsP%]"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "%[^\"diouxXeEfFgGaAcsP%\\s]*[diouxXeEfFgGaAcsP%]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "UDLStringSuffix" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "U-Char Literal"
-          , Context
-              { cName = "U-Char Literal"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "ISO C++" , "Universal Char" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "ISO C++" , "Simple Esc" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^']{2,}"
-                              , reCompiled = Just (compileRegex True "[^']{2,}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ".{1}"
-                              , reCompiled = Just (compileRegex True ".{1}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "UDLOperator"
-          , Context
-              { cName = "UDLOperator"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "operator"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\"\""
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "UDLStringSuffix"
-          , Context
-              { cName = "UDLStringSuffix"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "_[_0-9A-Z-a-z]*\\b"
-                              , reCompiled = Just (compileRegex True "_[_0-9A-Z-a-z]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ".*"
-                              , reCompiled = Just (compileRegex True ".*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Universal Char"
-          , Context
-              { cName = "Universal Char"
-              , cSyntax = "ISO C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\u[0-9A-Fa-f]{4}"
-                              , reCompiled = Just (compileRegex True "\\\\u[0-9A-Fa-f]{4}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\u.{0,3}"
-                              , reCompiled = Just (compileRegex True "\\\\u.{0,3}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\U[0-9A-Fa-f]{8}"
-                              , reCompiled = Just (compileRegex True "\\\\U[0-9A-Fa-f]{8}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\U.{0,7}"
-                              , reCompiled = Just (compileRegex True "\\\\U.{0,7}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = SpecialCharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Alex Turbov (i.zaufi@gmail.com)"
-  , sVersion = "6"
-  , sLicense = "LGPL"
-  , sExtensions =
-      [ "*.c++"
-      , "*.cxx"
-      , "*.cpp"
-      , "*.cc"
-      , "*.C"
-      , "*.h"
-      , "*.hh"
-      , "*.H"
-      , "*.h++"
-      , "*.hxx"
-      , "*.hpp"
-      , "*.hcc"
-      , "*.moc"
-      ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"ISO C++\", sFilename = \"isocpp.xml\", sShortname = \"Isocpp\", sContexts = fromList [(\"AfterHash\",Context {cName = \"AfterHash\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*(?:include|include_next)\", reCaseSensitive = False}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Include\")]},Rule {rMatcher = RegExpr (RE {reString = \"(#|%\\\\:|\\\\?\\\\?=)\\\\s*if(?:def|ndef)?(?=(?:\\\\(|\\\\s+)\\\\S)\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Preprocessor\")]},Rule {rMatcher = RegExpr (RE {reString = \"(#|%\\\\:|\\\\?\\\\?=)\\\\s*endif\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Preprocessor\")]},Rule {rMatcher = RegExpr (RE {reString = \"(#|%\\\\:|\\\\?\\\\?=)\\\\s*(cmake)?define.*((?=\\\\\\\\))\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Define\")]},Rule {rMatcher = RegExpr (RE {reString = \"(#|%\\\\:|\\\\?\\\\?=)\\\\s*(?:el(?:se|if)|(cmake)?define|undef|line|error|warning|pragma)\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Preprocessor\")]},Rule {rMatcher = RegExpr (RE {reString = \"(#|%\\\\:|\\\\?\\\\?=)\\\\s+[0-9]+\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Preprocessor\")]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Attribute\",Context {cName = \"Attribute\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"carries_dependency\",\"deprecated\",\"noreturn\"])), rAttribute = AttributeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars ']' ']', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = AnyChar \"!% &()+-/.*<=>?[]{|}~^,;\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"String\")]}], cAttribute = AttributeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Boost Stuff\",Context {cName = \"Boost Stuff\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = IncludeRules (\"ISO C++\",\"DetectNSEnd\"), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ExtensionTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Char Literal\",Context {cName = \"Char Literal\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = IncludeRules (\"ISO C++\",\"Universal Char\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\\\', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Simple Esc\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment 1\",Context {cName = \"Comment 1\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = LineContinue, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Modelines\",\"\"), 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 = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment 2\",Context {cName = \"Comment 2\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = LineContinue, 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 = IncludeRules (\"Modelines\",\"\"), 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}),(\"Comment/Preprocessor\",Context {cName = \"Comment/Preprocessor\", cSyntax = \"ISO C++\", 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 = 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}),(\"Define\",Context {cName = \"Define\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = LineContinue, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\\\', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"__DATE__\",\"__FILE__\",\"__LINE__\",\"__STDC_HOSTED__\",\"__STDC_ISO_10646__\",\"__STDC_MB_MIGHT_NEQ_WC__\",\"__STDC_VERSION__\",\"__STDC__\",\"__TIME__\",\"__cplusplus\",\"__func__\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"GCCExtensions\",\"GNUMacros\"), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = PreprocessorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"DetectIdentifierEnd\",Context {cName = \"DetectIdentifierEnd\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = AnyChar \":!% &()+-/.*<=>?[]{|}~^,;\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"DetectNSEnd\",Context {cName = \"DetectNSEnd\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"template\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \",;\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = AnyChar \"!% &()+-/.*<=>?[]{|}~^,;\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = AnyChar \" \", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Include\",Context {cName = \"Include\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = LineContinue, rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RangeDetect '\"' '\"', rAttribute = ImportTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RangeDetect '<' '>', rAttribute = ImportTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"ISO C++\",\"Preprocessor\"), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = PreprocessorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Inscoped\",Context {cName = \"Inscoped\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(#|%\\\\:|\\\\?\\\\?=)\\\\s*if\\\\s+(0|false)\\\\s*\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Outscoped\")]},Rule {rMatcher = RegExpr (RE {reString = \"(#|%\\\\:|\\\\?\\\\?=)\\\\s*el(?:se|if)\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Outscoped 2\")]},Rule {rMatcher = RegExpr (RE {reString = \"(#|%\\\\:|\\\\?\\\\?=)\\\\s*endif\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"ISO C++\",\"Main\"), 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}),(\"InternalsNS\",Context {cName = \"InternalsNS\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = IncludeRules (\"ISO C++\",\"DetectNSEnd\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Main\",Context {cName = \"Main\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = DetectChar '#', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"AfterHash\")]},Rule {rMatcher = Detect2Chars '%' ':', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"AfterHash\")]},Rule {rMatcher = StringDetect \"??=\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"AfterHash\")]},Rule {rMatcher = Detect2Chars '%' ':', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"??=\", rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"//BEGIN\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Region Marker\")]},Rule {rMatcher = StringDetect \"//END\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Region Marker\")]},Rule {rMatcher = RegExpr (RE {reString = \"operator\\\\s*\\\"\\\" _[_0-9A-Za-z]*\\\\b\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"UDLOperator\")]},Rule {rMatcher = RegExpr (RE {reString = \"operator\\\\s*\\\"\\\" [_0-9A-Za-z]*\\\\b\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"break\",\"case\",\"catch\",\"continue\",\"default\",\"do\",\"else\",\"for\",\"goto\",\"if\",\"return\",\"switch\",\"throw\",\"try\",\"while\"])), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"alignas\",\"alignof\",\"and\",\"and_eq\",\"asm\",\"auto\",\"bitand\",\"bitor\",\"class\",\"compl\",\"const_cast\",\"constexpr\",\"decltype\",\"delete\",\"dynamic_cast\",\"enum\",\"explicit\",\"export\",\"false\",\"final\",\"friend\",\"inline\",\"namespace\",\"new\",\"noexcept\",\"not\",\"not_eq\",\"nullptr\",\"operator\",\"or\",\"or_eq\",\"override\",\"private\",\"protected\",\"public\",\"reinterpret_cast\",\"sizeof\",\"static_assert\",\"static_cast\",\"struct\",\"template\",\"this\",\"true\",\"typedef\",\"typeid\",\"typename\",\"union\",\"using\",\"virtual\",\"xor\",\"xor_eq\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '[' '[', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Attribute\")]},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\+\\\\-]?0x[0-9A-Fa-f]('?[0-9A-Fa-f]+)*([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\\\\b\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"0[Bb][01]('?[01]+)*([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\\\\b\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [Rule {rMatcher = AnyChar \"FfLl\", rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\+\\\\-]?0'?[0-7]('?[0-7]+)*([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\\\\b\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\+\\\\-]?(0|[1-9]('?[0-9]+)*)([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\\\\b\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\+\\\\-]?(0x?|[1-9][0-9]*)[0-9A-Za-z][_0-9A-Za-z]*\\\\b\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"String\")]},Rule {rMatcher = Detect2Chars 'U' '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"String\")]},Rule {rMatcher = Detect2Chars 'u' '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"String\")]},Rule {rMatcher = Detect2Chars 'L' '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"String\")]},Rule {rMatcher = StringDetect \"u8\\\"\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"String\")]},Rule {rMatcher = RegExpr (RE {reString = \"(u|u8|U|L)?R\\\"([^\\\\(]{0,16})\\\\(\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"RawString\")]},Rule {rMatcher = RegExpr (RE {reString = \"(u|u8|U|L)?R\\\"([^\\\\(]{16,})\\\\(\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Char Literal\")]},Rule {rMatcher = Detect2Chars 'L' '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Char Literal\")]},Rule {rMatcher = Detect2Chars 'u' '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"U-Char Literal\")]},Rule {rMatcher = Detect2Chars 'U' '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"U-Char Literal\")]},Rule {rMatcher = IncludeRules (\"GCCExtensions\",\"DetectGccExtensions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"std::\", rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Standard Classes\")]},Rule {rMatcher = StringDetect \"boost::\", rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Boost Stuff\")]},Rule {rMatcher = StringDetect \"BOOST_\", rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Boost Stuff\")]},Rule {rMatcher = StringDetect \"detail::\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"InternalsNS\")]},Rule {rMatcher = StringDetect \"details::\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"InternalsNS\")]},Rule {rMatcher = StringDetect \"aux::\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"InternalsNS\")]},Rule {rMatcher = StringDetect \"internals::\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"InternalsNS\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"bool\",\"char\",\"char16_t\",\"char32_t\",\"double\",\"float\",\"int\",\"int16_t\",\"int32_t\",\"int64_t\",\"int8_t\",\"int_fast16_t\",\"int_fast32_t\",\"int_fast64_t\",\"int_fast8_t\",\"int_least16_t\",\"int_least32_t\",\"int_least64_t\",\"int_least8_t\",\"intmax_t\",\"intptr_t\",\"long\",\"ptrdiff_t\",\"short\",\"sig_atomic_t\",\"signed\",\"size_t\",\"ssize_t\",\"uint16_t\",\"uint32_t\",\"uint64_t\",\"uint8_t\",\"uint_fast16_t\",\"uint_fast32_t\",\"uint_fast64_t\",\"uint_fast8_t\",\"uint_least16_t\",\"uint_least32_t\",\"uint_least64_t\",\"uint_least8_t\",\"uintmax_t\",\"uintptr_t\",\"unsigned\",\"void\",\"wchar_t\",\"wint_t\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"const\",\"extern\",\"mutable\",\"register\",\"static\",\"thread_local\",\"volatile\"])), rAttribute = AttributeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"__DATE__\",\"__FILE__\",\"__LINE__\",\"__STDC_HOSTED__\",\"__STDC_ISO_10646__\",\"__STDC_MB_MIGHT_NEQ_WC__\",\"__STDC_VERSION__\",\"__STDC__\",\"__TIME__\",\"__cplusplus\",\"__func__\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"_[a-zA-Z0-9_]+\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z][a-zA-Z0-9_]*__\\\\b\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-z][a-zA-Z0-9_]*_\\\\b\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"m_[a-zA-Z0-9_]+\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"g_[a-zA-Z0-9_]+\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"s_[a-zA-Z0-9_]+\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[A-Z][A-Z0-9_]{2,}\\\\b\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z][a-zA-Z0-9_]*_t(ype)?\\\\b\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Doxygen\",\"\"), rAttribute = NormalTok, 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 (\"ISO C++\",\"Comment 1\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Comment 2\")]},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \",;\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \":!% &()+-/.*<=>?[]{|}~^,;\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '#', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '$', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '@', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '`', 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}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(#|%\\\\:|\\\\?\\\\?=)\\\\s*if\\\\s+(0|false)\\\\s*\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Outscoped\")]},Rule {rMatcher = RegExpr (RE {reString = \"(#|%\\\\:|\\\\?\\\\?=)\\\\s*if\\\\s+(1|true)\\\\s*\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Inscoped\")]},Rule {rMatcher = IncludeRules (\"ISO C++\",\"Main\"), 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}),(\"Outscoped\",Context {cName = \"Outscoped\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = IncludeRules (\"ISO C++\",\"Outscoped Common\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(#|%\\\\:|\\\\?\\\\?=)\\\\s*el(?:se|if)\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(#|%\\\\:|\\\\?\\\\?=)\\\\s*endif\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Outscoped 2\",Context {cName = \"Outscoped 2\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = IncludeRules (\"ISO C++\",\"Outscoped Common\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(#|%\\\\:|\\\\?\\\\?=)\\\\s*endif\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Outscoped Common\",Context {cName = \"Outscoped Common\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Modelines\",\"\"), 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 = []},Rule {rMatcher = IncludeRules (\"Doxygen\",\"\"), 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 = [Push (\"ISO C++\",\"Comment 1\")]},Rule {rMatcher = RegExpr (RE {reString = \"(#|%\\\\:|\\\\?\\\\?=)\\\\s*if\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Outscoped intern\")]},Rule {rMatcher = LineContinue, 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}),(\"Outscoped intern\",Context {cName = \"Outscoped intern\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Modelines\",\"\"), 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 = []},Rule {rMatcher = IncludeRules (\"Doxygen\",\"\"), 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 = [Push (\"ISO C++\",\"Comment 1\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Comment 2\")]},Rule {rMatcher = RegExpr (RE {reString = \"(#|%\\\\:|\\\\?\\\\?=)\\\\s*if\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Outscoped intern\")]},Rule {rMatcher = RegExpr (RE {reString = \"(#|%\\\\:|\\\\?\\\\?=)\\\\s*endif\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Preprocessor\",Context {cName = \"Preprocessor\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = LineContinue, rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"__DATE__\",\"__FILE__\",\"__LINE__\",\"__STDC_HOSTED__\",\"__STDC_ISO_10646__\",\"__STDC_MB_MIGHT_NEQ_WC__\",\"__STDC_VERSION__\",\"__STDC__\",\"__TIME__\",\"__cplusplus\",\"__func__\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"GCCExtensions\",\"GNUMacros\"), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Doxygen\",\"\"), rAttribute = PreprocessorTok, 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 (\"ISO C++\",\"Comment/Preprocessor\")]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Comment 1\")]}], cAttribute = PreprocessorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"RawString\",Context {cName = \"RawString\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%[^\\\"diouxXeEfFgGaAcsP%\\\\s]*[diouxXeEfFgGaAcsP%]\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\)%2\\\"\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"Region Marker\",Context {cName = \"Region Marker\", cSyntax = \"ISO C++\", cRules = [], cAttribute = RegionMarkerTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Simple Esc\",Context {cName = \"Simple Esc\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = AnyChar \"tnvbrfa'\\\"\\\\\", rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[0-7]{1,3}\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"x[0-9A-Fa-f]{1,}\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = SpecialCharTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Standard Classes\",Context {cName = \"Standard Classes\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = IncludeRules (\"ISO C++\",\"DetectNSEnd\"), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = BuiltInTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCStringChar, rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"ISO C++\",\"Universal Char\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%[^\\\"diouxXeEfFgGaAcsP%\\\\s]*[diouxXeEfFgGaAcsP%]\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"UDLStringSuffix\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"U-Char Literal\",Context {cName = \"U-Char Literal\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = IncludeRules (\"ISO C++\",\"Universal Char\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\\\', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"ISO C++\",\"Simple Esc\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[^']{2,}\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \".{1}\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"UDLOperator\",Context {cName = \"UDLOperator\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = StringDetect \"operator\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"\\\"\\\"\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"UDLStringSuffix\",Context {cName = \"UDLStringSuffix\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"_[_0-9A-Z-a-z]*\\\\b\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \".*\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Universal Char\",Context {cName = \"Universal Char\", cSyntax = \"ISO C++\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\u[0-9A-Fa-f]{4}\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\u.{0,3}\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\U[0-9A-Fa-f]{8}\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\U.{0,7}\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = SpecialCharTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Alex Turbov (i.zaufi@gmail.com)\", sVersion = \"6\", sLicense = \"LGPL\", sExtensions = [\"*.c++\",\"*.cxx\",\"*.cpp\",\"*.cc\",\"*.C\",\"*.h\",\"*.hh\",\"*.H\",\"*.h++\",\"*.hxx\",\"*.hpp\",\"*.hcc\",\"*.moc\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Java.hs b/src/Skylighting/Syntax/Java.hs
--- a/src/Skylighting/Syntax/Java.hs
+++ b/src/Skylighting/Syntax/Java.hs
@@ -2,4555 +2,6 @@
 module Skylighting.Syntax.Java (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Java"
-  , sFilename = "java.xml"
-  , sShortname = "Java"
-  , sContexts =
-      fromList
-        [ ( "Commentar 1"
-          , Context
-              { cName = "Commentar 1"
-              , cSyntax = "Java"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Commentar 2"
-          , Context
-              { cName = "Commentar 2"
-              , cSyntax = "Java"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "EnterPrintf"
-          , Context
-              { cName = "EnterPrintf"
-              , cSyntax = "Java"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Java" , "Printf" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "Imports"
-          , Context
-              { cName = "Imports"
-              , cSyntax = "Java"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*.*;"
-                              , reCompiled = Just (compileRegex True "\\s*.*;")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ImportTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "InFunctionCall"
-          , Context
-              { cName = "InFunctionCall"
-              , cSyntax = "Java"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Java" , "Normal" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Member"
-          , Context
-              { cName = "Member"
-              , cSyntax = "Java"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[_a-zA-Z]\\w*(?=[\\s]*)"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b[_a-zA-Z]\\w*(?=[\\s]*)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Java"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Javadoc" , "" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "@interface"
-                               , "abstract"
-                               , "break"
-                               , "case"
-                               , "catch"
-                               , "class"
-                               , "continue"
-                               , "default"
-                               , "do"
-                               , "else"
-                               , "enum"
-                               , "extends"
-                               , "false"
-                               , "finally"
-                               , "for"
-                               , "goto"
-                               , "if"
-                               , "implements"
-                               , "instanceof"
-                               , "interface"
-                               , "native"
-                               , "new"
-                               , "null"
-                               , "private"
-                               , "protected"
-                               , "public"
-                               , "return"
-                               , "strictfp"
-                               , "super"
-                               , "switch"
-                               , "synchronized"
-                               , "this"
-                               , "throw"
-                               , "throws"
-                               , "transient"
-                               , "true"
-                               , "try"
-                               , "volatile"
-                               , "while"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "boolean"
-                               , "byte"
-                               , "char"
-                               , "const"
-                               , "double"
-                               , "final"
-                               , "float"
-                               , "int"
-                               , "long"
-                               , "short"
-                               , "static"
-                               , "void"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ACTIVE"
-                               , "ACTIVITY_COMPLETED"
-                               , "ACTIVITY_REQUIRED"
-                               , "ARG_IN"
-                               , "ARG_INOUT"
-                               , "ARG_OUT"
-                               , "AWTError"
-                               , "AWTEvent"
-                               , "AWTEventListener"
-                               , "AWTEventListenerProxy"
-                               , "AWTEventMulticaster"
-                               , "AWTException"
-                               , "AWTKeyStroke"
-                               , "AWTPermission"
-                               , "AbstractAction"
-                               , "AbstractAnnotationValueVisitor6"
-                               , "AbstractBorder"
-                               , "AbstractButton"
-                               , "AbstractCellEditor"
-                               , "AbstractCollection"
-                               , "AbstractColorChooserPanel"
-                               , "AbstractDocument"
-                               , "AbstractDocument.AttributeContext"
-                               , "AbstractDocument.Content"
-                               , "AbstractDocument.ElementEdit"
-                               , "AbstractElementVisitor6"
-                               , "AbstractExecutorService"
-                               , "AbstractInterruptibleChannel"
-                               , "AbstractLayoutCache"
-                               , "AbstractLayoutCache.NodeDimensions"
-                               , "AbstractList"
-                               , "AbstractListModel"
-                               , "AbstractMap"
-                               , "AbstractMarshallerImpl"
-                               , "AbstractMethodError"
-                               , "AbstractOwnableSynchronizer"
-                               , "AbstractPreferences"
-                               , "AbstractProcessor"
-                               , "AbstractQueue"
-                               , "AbstractQueuedLongSynchronizer"
-                               , "AbstractQueuedSynchronizer"
-                               , "AbstractScriptEngine"
-                               , "AbstractSelectableChannel"
-                               , "AbstractSelectionKey"
-                               , "AbstractSelector"
-                               , "AbstractSequentialList"
-                               , "AbstractSet"
-                               , "AbstractSpinnerModel"
-                               , "AbstractTableModel"
-                               , "AbstractTypeVisitor6"
-                               , "AbstractUndoableEdit"
-                               , "AbstractUnmarshallerImpl"
-                               , "AbstractWriter"
-                               , "AccessControlContext"
-                               , "AccessControlException"
-                               , "AccessController"
-                               , "AccessException"
-                               , "Accessible"
-                               , "AccessibleAction"
-                               , "AccessibleAttributeSequence"
-                               , "AccessibleBundle"
-                               , "AccessibleComponent"
-                               , "AccessibleContext"
-                               , "AccessibleEditableText"
-                               , "AccessibleExtendedComponent"
-                               , "AccessibleExtendedTable"
-                               , "AccessibleExtendedText"
-                               , "AccessibleHyperlink"
-                               , "AccessibleHypertext"
-                               , "AccessibleIcon"
-                               , "AccessibleKeyBinding"
-                               , "AccessibleObject"
-                               , "AccessibleRelation"
-                               , "AccessibleRelationSet"
-                               , "AccessibleResourceBundle"
-                               , "AccessibleRole"
-                               , "AccessibleSelection"
-                               , "AccessibleState"
-                               , "AccessibleStateSet"
-                               , "AccessibleStreamable"
-                               , "AccessibleTable"
-                               , "AccessibleTableModelChange"
-                               , "AccessibleText"
-                               , "AccessibleTextSequence"
-                               , "AccessibleValue"
-                               , "AccountException"
-                               , "AccountExpiredException"
-                               , "AccountLockedException"
-                               , "AccountNotFoundException"
-                               , "Acl"
-                               , "AclEntry"
-                               , "AclNotFoundException"
-                               , "Action"
-                               , "ActionEvent"
-                               , "ActionListener"
-                               , "ActionMap"
-                               , "ActionMapUIResource"
-                               , "Activatable"
-                               , "ActivateFailedException"
-                               , "ActivationDataFlavor"
-                               , "ActivationDesc"
-                               , "ActivationException"
-                               , "ActivationGroup"
-                               , "ActivationGroupDesc"
-                               , "ActivationGroupDesc.CommandEnvironment"
-                               , "ActivationGroupID"
-                               , "ActivationGroup_Stub"
-                               , "ActivationID"
-                               , "ActivationInstantiator"
-                               , "ActivationMonitor"
-                               , "ActivationSystem"
-                               , "Activator"
-                               , "ActiveEvent"
-                               , "ActivityCompletedException"
-                               , "ActivityRequiredException"
-                               , "AdapterActivator"
-                               , "AdapterActivatorOperations"
-                               , "AdapterAlreadyExists"
-                               , "AdapterAlreadyExistsHelper"
-                               , "AdapterInactive"
-                               , "AdapterInactiveHelper"
-                               , "AdapterManagerIdHelper"
-                               , "AdapterNameHelper"
-                               , "AdapterNonExistent"
-                               , "AdapterNonExistentHelper"
-                               , "AdapterStateHelper"
-                               , "AddressHelper"
-                               , "Adjustable"
-                               , "AdjustmentEvent"
-                               , "AdjustmentListener"
-                               , "Adler32"
-                               , "AffineTransform"
-                               , "AffineTransformOp"
-                               , "AlgorithmMethod"
-                               , "AlgorithmParameterGenerator"
-                               , "AlgorithmParameterGeneratorSpi"
-                               , "AlgorithmParameterSpec"
-                               , "AlgorithmParameters"
-                               , "AlgorithmParametersSpi"
-                               , "AllPermission"
-                               , "AlphaComposite"
-                               , "AlreadyBound"
-                               , "AlreadyBoundException"
-                               , "AlreadyBoundHelper"
-                               , "AlreadyBoundHolder"
-                               , "AlreadyConnectedException"
-                               , "AncestorEvent"
-                               , "AncestorListener"
-                               , "AnnotatedElement"
-                               , "Annotation"
-                               , "AnnotationFormatError"
-                               , "AnnotationMirror"
-                               , "AnnotationTypeMismatchException"
-                               , "AnnotationValue"
-                               , "AnnotationValueVisitor"
-                               , "Any"
-                               , "AnyHolder"
-                               , "AnySeqHelper"
-                               , "AnySeqHolder"
-                               , "AppConfigurationEntry"
-                               , "AppConfigurationEntry.LoginModuleControlFlag"
-                               , "Appendable"
-                               , "Applet"
-                               , "AppletContext"
-                               , "AppletInitializer"
-                               , "AppletStub"
-                               , "ApplicationException"
-                               , "Arc2D"
-                               , "Arc2D.Double"
-                               , "Arc2D.Float"
-                               , "Area"
-                               , "AreaAveragingScaleFilter"
-                               , "ArithmeticException"
-                               , "Array"
-                               , "ArrayBlockingQueue"
-                               , "ArrayDeque"
-                               , "ArrayIndexOutOfBoundsException"
-                               , "ArrayList"
-                               , "ArrayStoreException"
-                               , "ArrayType"
-                               , "Arrays"
-                               , "AssertionError"
-                               , "AsyncBoxView"
-                               , "AsyncHandler"
-                               , "AsynchronousCloseException"
-                               , "AtomicBoolean"
-                               , "AtomicInteger"
-                               , "AtomicIntegerArray"
-                               , "AtomicIntegerFieldUpdater"
-                               , "AtomicLong"
-                               , "AtomicLongArray"
-                               , "AtomicLongFieldUpdater"
-                               , "AtomicMarkableReference"
-                               , "AtomicReference"
-                               , "AtomicReferenceArray"
-                               , "AtomicReferenceFieldUpdater"
-                               , "AtomicStampedReference"
-                               , "AttachmentMarshaller"
-                               , "AttachmentPart"
-                               , "AttachmentUnmarshaller"
-                               , "Attr"
-                               , "Attribute"
-                               , "AttributeChangeNotification"
-                               , "AttributeChangeNotificationFilter"
-                               , "AttributeException"
-                               , "AttributeInUseException"
-                               , "AttributeList"
-                               , "AttributeListImpl"
-                               , "AttributeModificationException"
-                               , "AttributeNotFoundException"
-                               , "AttributeSet"
-                               , "AttributeSet.CharacterAttribute"
-                               , "AttributeSet.ColorAttribute"
-                               , "AttributeSet.FontAttribute"
-                               , "AttributeSet.ParagraphAttribute"
-                               , "AttributeSetUtilities"
-                               , "AttributeValueExp"
-                               , "AttributedCharacterIterator"
-                               , "AttributedCharacterIterator.Attribute"
-                               , "AttributedString"
-                               , "Attributes"
-                               , "Attributes.Name"
-                               , "Attributes2"
-                               , "Attributes2Impl"
-                               , "AttributesImpl"
-                               , "AudioClip"
-                               , "AudioFileFormat"
-                               , "AudioFileFormat.Type"
-                               , "AudioFileReader"
-                               , "AudioFileWriter"
-                               , "AudioFormat"
-                               , "AudioFormat.Encoding"
-                               , "AudioInputStream"
-                               , "AudioPermission"
-                               , "AudioSystem"
-                               , "AuthPermission"
-                               , "AuthProvider"
-                               , "AuthenticationException"
-                               , "AuthenticationNotSupportedException"
-                               , "Authenticator"
-                               , "Authenticator.RequestorType"
-                               , "AuthorizeCallback"
-                               , "Autoscroll"
-                               , "BAD_CONTEXT"
-                               , "BAD_INV_ORDER"
-                               , "BAD_OPERATION"
-                               , "BAD_PARAM"
-                               , "BAD_POLICY"
-                               , "BAD_POLICY_TYPE"
-                               , "BAD_POLICY_VALUE"
-                               , "BAD_QOS"
-                               , "BAD_TYPECODE"
-                               , "BMPImageWriteParam"
-                               , "BackingStoreException"
-                               , "BadAttributeValueExpException"
-                               , "BadBinaryOpValueExpException"
-                               , "BadKind"
-                               , "BadLocationException"
-                               , "BadPaddingException"
-                               , "BadStringOperationException"
-                               , "BandCombineOp"
-                               , "BandedSampleModel"
-                               , "BaseRowSet"
-                               , "BasicArrowButton"
-                               , "BasicAttribute"
-                               , "BasicAttributes"
-                               , "BasicBorders"
-                               , "BasicBorders.ButtonBorder"
-                               , "BasicBorders.FieldBorder"
-                               , "BasicBorders.MarginBorder"
-                               , "BasicBorders.MenuBarBorder"
-                               , "BasicBorders.RadioButtonBorder"
-                               , "BasicBorders.RolloverButtonBorder"
-                               , "BasicBorders.SplitPaneBorder"
-                               , "BasicBorders.ToggleButtonBorder"
-                               , "BasicButtonListener"
-                               , "BasicButtonUI"
-                               , "BasicCheckBoxMenuItemUI"
-                               , "BasicCheckBoxUI"
-                               , "BasicColorChooserUI"
-                               , "BasicComboBoxEditor"
-                               , "BasicComboBoxEditor.UIResource"
-                               , "BasicComboBoxRenderer"
-                               , "BasicComboBoxRenderer.UIResource"
-                               , "BasicComboBoxUI"
-                               , "BasicComboPopup"
-                               , "BasicControl"
-                               , "BasicDesktopIconUI"
-                               , "BasicDesktopPaneUI"
-                               , "BasicDirectoryModel"
-                               , "BasicEditorPaneUI"
-                               , "BasicFileChooserUI"
-                               , "BasicFormattedTextFieldUI"
-                               , "BasicGraphicsUtils"
-                               , "BasicHTML"
-                               , "BasicIconFactory"
-                               , "BasicInternalFrameTitlePane"
-                               , "BasicInternalFrameUI"
-                               , "BasicLabelUI"
-                               , "BasicListUI"
-                               , "BasicLookAndFeel"
-                               , "BasicMenuBarUI"
-                               , "BasicMenuItemUI"
-                               , "BasicMenuUI"
-                               , "BasicOptionPaneUI"
-                               , "BasicOptionPaneUI.ButtonAreaLayout"
-                               , "BasicPanelUI"
-                               , "BasicPasswordFieldUI"
-                               , "BasicPermission"
-                               , "BasicPopupMenuSeparatorUI"
-                               , "BasicPopupMenuUI"
-                               , "BasicProgressBarUI"
-                               , "BasicRadioButtonMenuItemUI"
-                               , "BasicRadioButtonUI"
-                               , "BasicRootPaneUI"
-                               , "BasicScrollBarUI"
-                               , "BasicScrollPaneUI"
-                               , "BasicSeparatorUI"
-                               , "BasicSliderUI"
-                               , "BasicSpinnerUI"
-                               , "BasicSplitPaneDivider"
-                               , "BasicSplitPaneUI"
-                               , "BasicStroke"
-                               , "BasicTabbedPaneUI"
-                               , "BasicTableHeaderUI"
-                               , "BasicTableUI"
-                               , "BasicTextAreaUI"
-                               , "BasicTextFieldUI"
-                               , "BasicTextPaneUI"
-                               , "BasicTextUI"
-                               , "BasicTextUI.BasicCaret"
-                               , "BasicTextUI.BasicHighlighter"
-                               , "BasicToggleButtonUI"
-                               , "BasicToolBarSeparatorUI"
-                               , "BasicToolBarUI"
-                               , "BasicToolTipUI"
-                               , "BasicTreeUI"
-                               , "BasicViewportUI"
-                               , "BatchUpdateException"
-                               , "BeanContext"
-                               , "BeanContextChild"
-                               , "BeanContextChildComponentProxy"
-                               , "BeanContextChildSupport"
-                               , "BeanContextContainerProxy"
-                               , "BeanContextEvent"
-                               , "BeanContextMembershipEvent"
-                               , "BeanContextMembershipListener"
-                               , "BeanContextProxy"
-                               , "BeanContextServiceAvailableEvent"
-                               , "BeanContextServiceProvider"
-                               , "BeanContextServiceProviderBeanInfo"
-                               , "BeanContextServiceRevokedEvent"
-                               , "BeanContextServiceRevokedListener"
-                               , "BeanContextServices"
-                               , "BeanContextServicesListener"
-                               , "BeanContextServicesSupport"
-                               , "BeanContextServicesSupport.BCSSServiceProvider"
-                               , "BeanContextSupport"
-                               , "BeanContextSupport.BCSIterator"
-                               , "BeanDescriptor"
-                               , "BeanInfo"
-                               , "Beans"
-                               , "BevelBorder"
-                               , "Bidi"
-                               , "BigDecimal"
-                               , "BigInteger"
-                               , "BinaryRefAddr"
-                               , "BindException"
-                               , "Binder"
-                               , "Binding"
-                               , "BindingHelper"
-                               , "BindingHolder"
-                               , "BindingIterator"
-                               , "BindingIteratorHelper"
-                               , "BindingIteratorHolder"
-                               , "BindingIteratorOperations"
-                               , "BindingIteratorPOA"
-                               , "BindingListHelper"
-                               , "BindingListHolder"
-                               , "BindingProvider"
-                               , "BindingType"
-                               , "BindingTypeHelper"
-                               , "BindingTypeHolder"
-                               , "Bindings"
-                               , "BitSet"
-                               , "Blob"
-                               , "BlockView"
-                               , "BlockingDeque"
-                               , "BlockingQueue"
-                               , "Book"
-                               , "Boolean"
-                               , "BooleanControl"
-                               , "BooleanControl.Type"
-                               , "BooleanHolder"
-                               , "BooleanSeqHelper"
-                               , "BooleanSeqHolder"
-                               , "Border"
-                               , "BorderFactory"
-                               , "BorderLayout"
-                               , "BorderUIResource"
-                               , "BorderUIResource.BevelBorderUIResource"
-                               , "BorderUIResource.CompoundBorderUIResource"
-                               , "BorderUIResource.EmptyBorderUIResource"
-                               , "BorderUIResource.EtchedBorderUIResource"
-                               , "BorderUIResource.LineBorderUIResource"
-                               , "BorderUIResource.MatteBorderUIResource"
-                               , "BorderUIResource.TitledBorderUIResource"
-                               , "BoundedRangeModel"
-                               , "Bounds"
-                               , "Box"
-                               , "Box.Filler"
-                               , "BoxLayout"
-                               , "BoxView"
-                               , "BoxedValueHelper"
-                               , "BreakIterator"
-                               , "BreakIteratorProvider"
-                               , "BrokenBarrierException"
-                               , "Buffer"
-                               , "BufferCapabilities"
-                               , "BufferCapabilities.FlipContents"
-                               , "BufferOverflowException"
-                               , "BufferStrategy"
-                               , "BufferUnderflowException"
-                               , "BufferedImage"
-                               , "BufferedImageFilter"
-                               , "BufferedImageOp"
-                               , "BufferedInputStream"
-                               , "BufferedOutputStream"
-                               , "BufferedReader"
-                               , "BufferedWriter"
-                               , "Button"
-                               , "ButtonGroup"
-                               , "ButtonModel"
-                               , "ButtonUI"
-                               , "Byte"
-                               , "ByteArrayInputStream"
-                               , "ByteArrayOutputStream"
-                               , "ByteBuffer"
-                               , "ByteChannel"
-                               , "ByteHolder"
-                               , "ByteLookupTable"
-                               , "ByteOrder"
-                               , "C14NMethodParameterSpec"
-                               , "CDATASection"
-                               , "CMMException"
-                               , "CODESET_INCOMPATIBLE"
-                               , "COMM_FAILURE"
-                               , "CRC32"
-                               , "CRL"
-                               , "CRLException"
-                               , "CRLSelector"
-                               , "CSS"
-                               , "CSS.Attribute"
-                               , "CTX_RESTRICT_SCOPE"
-                               , "CacheRequest"
-                               , "CacheResponse"
-                               , "CachedRowSet"
-                               , "Calendar"
-                               , "Callable"
-                               , "CallableStatement"
-                               , "Callback"
-                               , "CallbackHandler"
-                               , "CancelablePrintJob"
-                               , "CancellationException"
-                               , "CancelledKeyException"
-                               , "CannotProceed"
-                               , "CannotProceedException"
-                               , "CannotProceedHelper"
-                               , "CannotProceedHolder"
-                               , "CannotRedoException"
-                               , "CannotUndoException"
-                               , "CanonicalizationMethod"
-                               , "Canvas"
-                               , "CardLayout"
-                               , "Caret"
-                               , "CaretEvent"
-                               , "CaretListener"
-                               , "CellEditor"
-                               , "CellEditorListener"
-                               , "CellRendererPane"
-                               , "CertPath"
-                               , "CertPath.CertPathRep"
-                               , "CertPathBuilder"
-                               , "CertPathBuilderException"
-                               , "CertPathBuilderResult"
-                               , "CertPathBuilderSpi"
-                               , "CertPathParameters"
-                               , "CertPathTrustManagerParameters"
-                               , "CertPathValidator"
-                               , "CertPathValidatorException"
-                               , "CertPathValidatorResult"
-                               , "CertPathValidatorSpi"
-                               , "CertSelector"
-                               , "CertStore"
-                               , "CertStoreException"
-                               , "CertStoreParameters"
-                               , "CertStoreSpi"
-                               , "Certificate"
-                               , "Certificate.CertificateRep"
-                               , "CertificateEncodingException"
-                               , "CertificateException"
-                               , "CertificateExpiredException"
-                               , "CertificateFactory"
-                               , "CertificateFactorySpi"
-                               , "CertificateNotYetValidException"
-                               , "CertificateParsingException"
-                               , "ChangeEvent"
-                               , "ChangeListener"
-                               , "ChangedCharSetException"
-                               , "Channel"
-                               , "ChannelBinding"
-                               , "Channels"
-                               , "CharArrayReader"
-                               , "CharArrayWriter"
-                               , "CharBuffer"
-                               , "CharConversionException"
-                               , "CharHolder"
-                               , "CharSeqHelper"
-                               , "CharSeqHolder"
-                               , "CharSequence"
-                               , "Character"
-                               , "Character.Subset"
-                               , "Character.UnicodeBlock"
-                               , "CharacterCodingException"
-                               , "CharacterData"
-                               , "CharacterIterator"
-                               , "Characters"
-                               , "Charset"
-                               , "CharsetDecoder"
-                               , "CharsetEncoder"
-                               , "CharsetProvider"
-                               , "Checkbox"
-                               , "CheckboxGroup"
-                               , "CheckboxMenuItem"
-                               , "CheckedInputStream"
-                               , "CheckedOutputStream"
-                               , "Checksum"
-                               , "Choice"
-                               , "ChoiceCallback"
-                               , "ChoiceFormat"
-                               , "Chromaticity"
-                               , "Cipher"
-                               , "CipherInputStream"
-                               , "CipherOutputStream"
-                               , "CipherSpi"
-                               , "Class"
-                               , "ClassCastException"
-                               , "ClassCircularityError"
-                               , "ClassDefinition"
-                               , "ClassDesc"
-                               , "ClassFileTransformer"
-                               , "ClassFormatError"
-                               , "ClassLoader"
-                               , "ClassLoaderRepository"
-                               , "ClassLoadingMXBean"
-                               , "ClassNotFoundException"
-                               , "ClientInfoStatus"
-                               , "ClientRequestInfo"
-                               , "ClientRequestInfoOperations"
-                               , "ClientRequestInterceptor"
-                               , "ClientRequestInterceptorOperations"
-                               , "Clip"
-                               , "Clipboard"
-                               , "ClipboardOwner"
-                               , "Clob"
-                               , "CloneNotSupportedException"
-                               , "Cloneable"
-                               , "Closeable"
-                               , "ClosedByInterruptException"
-                               , "ClosedChannelException"
-                               , "ClosedSelectorException"
-                               , "CodeSets"
-                               , "CodeSigner"
-                               , "CodeSource"
-                               , "Codec"
-                               , "CodecFactory"
-                               , "CodecFactoryHelper"
-                               , "CodecFactoryOperations"
-                               , "CodecOperations"
-                               , "CoderMalfunctionError"
-                               , "CoderResult"
-                               , "CodingErrorAction"
-                               , "CollapsedStringAdapter"
-                               , "CollationElementIterator"
-                               , "CollationKey"
-                               , "Collator"
-                               , "CollatorProvider"
-                               , "Collection"
-                               , "CollectionCertStoreParameters"
-                               , "Collections"
-                               , "Color"
-                               , "ColorChooserComponentFactory"
-                               , "ColorChooserUI"
-                               , "ColorConvertOp"
-                               , "ColorModel"
-                               , "ColorSelectionModel"
-                               , "ColorSpace"
-                               , "ColorSupported"
-                               , "ColorType"
-                               , "ColorUIResource"
-                               , "ComboBoxEditor"
-                               , "ComboBoxModel"
-                               , "ComboBoxUI"
-                               , "ComboPopup"
-                               , "CommandInfo"
-                               , "CommandMap"
-                               , "CommandObject"
-                               , "Comment"
-                               , "CommonDataSource"
-                               , "CommunicationException"
-                               , "Comparable"
-                               , "Comparator"
-                               , "Compilable"
-                               , "CompilationMXBean"
-                               , "CompiledScript"
-                               , "Compiler"
-                               , "Completion"
-                               , "CompletionService"
-                               , "CompletionStatus"
-                               , "CompletionStatusHelper"
-                               , "Completions"
-                               , "Component"
-                               , "ComponentAdapter"
-                               , "ComponentColorModel"
-                               , "ComponentEvent"
-                               , "ComponentIdHelper"
-                               , "ComponentInputMap"
-                               , "ComponentInputMapUIResource"
-                               , "ComponentListener"
-                               , "ComponentOrientation"
-                               , "ComponentSampleModel"
-                               , "ComponentUI"
-                               , "ComponentView"
-                               , "Composite"
-                               , "CompositeContext"
-                               , "CompositeData"
-                               , "CompositeDataInvocationHandler"
-                               , "CompositeDataSupport"
-                               , "CompositeDataView"
-                               , "CompositeName"
-                               , "CompositeType"
-                               , "CompositeView"
-                               , "CompoundBorder"
-                               , "CompoundControl"
-                               , "CompoundControl.Type"
-                               , "CompoundEdit"
-                               , "CompoundName"
-                               , "Compression"
-                               , "ConcurrentHashMap"
-                               , "ConcurrentLinkedQueue"
-                               , "ConcurrentMap"
-                               , "ConcurrentModificationException"
-                               , "ConcurrentNavigableMap"
-                               , "ConcurrentSkipListMap"
-                               , "ConcurrentSkipListSet"
-                               , "Condition"
-                               , "Configuration"
-                               , "ConfigurationException"
-                               , "ConfigurationSpi"
-                               , "ConfirmationCallback"
-                               , "ConnectException"
-                               , "ConnectIOException"
-                               , "Connection"
-                               , "ConnectionEvent"
-                               , "ConnectionEventListener"
-                               , "ConnectionPendingException"
-                               , "ConnectionPoolDataSource"
-                               , "Console"
-                               , "ConsoleHandler"
-                               , "Constructor"
-                               , "ConstructorProperties"
-                               , "Container"
-                               , "ContainerAdapter"
-                               , "ContainerEvent"
-                               , "ContainerListener"
-                               , "ContainerOrderFocusTraversalPolicy"
-                               , "ContentHandler"
-                               , "ContentHandlerFactory"
-                               , "ContentModel"
-                               , "Context"
-                               , "ContextList"
-                               , "ContextNotEmptyException"
-                               , "ContextualRenderedImageFactory"
-                               , "Control"
-                               , "Control.Type"
-                               , "ControlFactory"
-                               , "ControllerEventListener"
-                               , "ConvolveOp"
-                               , "CookieHandler"
-                               , "CookieHolder"
-                               , "CookieManager"
-                               , "CookiePolicy"
-                               , "CookieStore"
-                               , "Copies"
-                               , "CopiesSupported"
-                               , "CopyOnWriteArrayList"
-                               , "CopyOnWriteArraySet"
-                               , "CountDownLatch"
-                               , "CounterMonitor"
-                               , "CounterMonitorMBean"
-                               , "CredentialException"
-                               , "CredentialExpiredException"
-                               , "CredentialNotFoundException"
-                               , "CropImageFilter"
-                               , "CubicCurve2D"
-                               , "CubicCurve2D.Double"
-                               , "CubicCurve2D.Float"
-                               , "Currency"
-                               , "CurrencyNameProvider"
-                               , "Current"
-                               , "CurrentHelper"
-                               , "CurrentHolder"
-                               , "CurrentOperations"
-                               , "Cursor"
-                               , "CustomMarshal"
-                               , "CustomValue"
-                               , "Customizer"
-                               , "CyclicBarrier"
-                               , "DATA_CONVERSION"
-                               , "DESKeySpec"
-                               , "DESedeKeySpec"
-                               , "DGC"
-                               , "DHGenParameterSpec"
-                               , "DHKey"
-                               , "DHParameterSpec"
-                               , "DHPrivateKey"
-                               , "DHPrivateKeySpec"
-                               , "DHPublicKey"
-                               , "DHPublicKeySpec"
-                               , "DISCARDING"
-                               , "DOMConfiguration"
-                               , "DOMCryptoContext"
-                               , "DOMError"
-                               , "DOMErrorHandler"
-                               , "DOMException"
-                               , "DOMImplementation"
-                               , "DOMImplementationLS"
-                               , "DOMImplementationList"
-                               , "DOMImplementationRegistry"
-                               , "DOMImplementationSource"
-                               , "DOMLocator"
-                               , "DOMResult"
-                               , "DOMSignContext"
-                               , "DOMSource"
-                               , "DOMStringList"
-                               , "DOMStructure"
-                               , "DOMURIReference"
-                               , "DOMValidateContext"
-                               , "DSAKey"
-                               , "DSAKeyPairGenerator"
-                               , "DSAParameterSpec"
-                               , "DSAParams"
-                               , "DSAPrivateKey"
-                               , "DSAPrivateKeySpec"
-                               , "DSAPublicKey"
-                               , "DSAPublicKeySpec"
-                               , "DTD"
-                               , "DTDConstants"
-                               , "DTDHandler"
-                               , "Data"
-                               , "DataBuffer"
-                               , "DataBufferByte"
-                               , "DataBufferDouble"
-                               , "DataBufferFloat"
-                               , "DataBufferInt"
-                               , "DataBufferShort"
-                               , "DataBufferUShort"
-                               , "DataContentHandler"
-                               , "DataContentHandlerFactory"
-                               , "DataFlavor"
-                               , "DataFormatException"
-                               , "DataHandler"
-                               , "DataInput"
-                               , "DataInputStream"
-                               , "DataLine"
-                               , "DataLine.Info"
-                               , "DataOutput"
-                               , "DataOutputStream"
-                               , "DataSource"
-                               , "DataTruncation"
-                               , "DatabaseMetaData"
-                               , "DatagramChannel"
-                               , "DatagramPacket"
-                               , "DatagramSocket"
-                               , "DatagramSocketImpl"
-                               , "DatagramSocketImplFactory"
-                               , "DatatypeConfigurationException"
-                               , "DatatypeConstants"
-                               , "DatatypeConstants.Field"
-                               , "DatatypeConverter"
-                               , "DatatypeConverterInterface"
-                               , "DatatypeFactory"
-                               , "Date"
-                               , "DateFormat"
-                               , "DateFormat.Field"
-                               , "DateFormatProvider"
-                               , "DateFormatSymbols"
-                               , "DateFormatSymbolsProvider"
-                               , "DateFormatter"
-                               , "DateTimeAtCompleted"
-                               , "DateTimeAtCreation"
-                               , "DateTimeAtProcessing"
-                               , "DateTimeSyntax"
-                               , "DebugGraphics"
-                               , "DecimalFormat"
-                               , "DecimalFormatSymbols"
-                               , "DecimalFormatSymbolsProvider"
-                               , "DeclHandler"
-                               , "DeclaredType"
-                               , "DefaultBoundedRangeModel"
-                               , "DefaultButtonModel"
-                               , "DefaultCaret"
-                               , "DefaultCellEditor"
-                               , "DefaultColorSelectionModel"
-                               , "DefaultComboBoxModel"
-                               , "DefaultDesktopManager"
-                               , "DefaultEditorKit"
-                               , "DefaultEditorKit.BeepAction"
-                               , "DefaultEditorKit.CopyAction"
-                               , "DefaultEditorKit.CutAction"
-                               , "DefaultEditorKit.DefaultKeyTypedAction"
-                               , "DefaultEditorKit.InsertBreakAction"
-                               , "DefaultEditorKit.InsertContentAction"
-                               , "DefaultEditorKit.InsertTabAction"
-                               , "DefaultEditorKit.PasteAction"
-                               , "DefaultFocusManager"
-                               , "DefaultFocusTraversalPolicy"
-                               , "DefaultFormatter"
-                               , "DefaultFormatterFactory"
-                               , "DefaultHandler"
-                               , "DefaultHandler2"
-                               , "DefaultHighlighter"
-                               , "DefaultHighlighter.DefaultHighlightPainter"
-                               , "DefaultKeyboardFocusManager"
-                               , "DefaultListCellRenderer"
-                               , "DefaultListCellRenderer.UIResource"
-                               , "DefaultListModel"
-                               , "DefaultListSelectionModel"
-                               , "DefaultLoaderRepository"
-                               , "DefaultMenuLayout"
-                               , "DefaultMetalTheme"
-                               , "DefaultMutableTreeNode"
-                               , "DefaultPersistenceDelegate"
-                               , "DefaultRowSorter"
-                               , "DefaultSingleSelectionModel"
-                               , "DefaultStyledDocument"
-                               , "DefaultStyledDocument.AttributeUndoableEdit"
-                               , "DefaultStyledDocument.ElementSpec"
-                               , "DefaultTableCellRenderer"
-                               , "DefaultTableCellRenderer.UIResource"
-                               , "DefaultTableColumnModel"
-                               , "DefaultTableModel"
-                               , "DefaultTextUI"
-                               , "DefaultTreeCellEditor"
-                               , "DefaultTreeCellRenderer"
-                               , "DefaultTreeModel"
-                               , "DefaultTreeSelectionModel"
-                               , "DefaultValidationEventHandler"
-                               , "DefinitionKind"
-                               , "DefinitionKindHelper"
-                               , "Deflater"
-                               , "DeflaterInputStream"
-                               , "DeflaterOutputStream"
-                               , "DelayQueue"
-                               , "Delayed"
-                               , "Delegate"
-                               , "DelegationPermission"
-                               , "Deprecated"
-                               , "Deque"
-                               , "Descriptor"
-                               , "DescriptorAccess"
-                               , "DescriptorKey"
-                               , "DescriptorRead"
-                               , "DescriptorSupport"
-                               , "DesignMode"
-                               , "Desktop"
-                               , "DesktopIconUI"
-                               , "DesktopManager"
-                               , "DesktopPaneUI"
-                               , "Destination"
-                               , "DestroyFailedException"
-                               , "Destroyable"
-                               , "Detail"
-                               , "DetailEntry"
-                               , "Diagnostic"
-                               , "DiagnosticCollector"
-                               , "DiagnosticListener"
-                               , "Dialog"
-                               , "Dictionary"
-                               , "DigestException"
-                               , "DigestInputStream"
-                               , "DigestMethod"
-                               , "DigestMethodParameterSpec"
-                               , "DigestOutputStream"
-                               , "Dimension"
-                               , "Dimension2D"
-                               , "DimensionUIResource"
-                               , "DirContext"
-                               , "DirObjectFactory"
-                               , "DirStateFactory"
-                               , "DirStateFactory.Result"
-                               , "DirectColorModel"
-                               , "DirectoryManager"
-                               , "Dispatch"
-                               , "DisplayMode"
-                               , "DnDConstants"
-                               , "Doc"
-                               , "DocAttribute"
-                               , "DocAttributeSet"
-                               , "DocFlavor"
-                               , "DocFlavor.BYTE_ARRAY"
-                               , "DocFlavor.CHAR_ARRAY"
-                               , "DocFlavor.INPUT_STREAM"
-                               , "DocFlavor.READER"
-                               , "DocFlavor.SERVICE_FORMATTED"
-                               , "DocFlavor.STRING"
-                               , "DocFlavor.URL"
-                               , "DocPrintJob"
-                               , "Document"
-                               , "DocumentBuilder"
-                               , "DocumentBuilderFactory"
-                               , "DocumentEvent"
-                               , "DocumentEvent.ElementChange"
-                               , "DocumentEvent.EventType"
-                               , "DocumentFilter"
-                               , "DocumentFilter.FilterBypass"
-                               , "DocumentFragment"
-                               , "DocumentHandler"
-                               , "DocumentListener"
-                               , "DocumentName"
-                               , "DocumentParser"
-                               , "DocumentType"
-                               , "Documented"
-                               , "DomHandler"
-                               , "DomainCombiner"
-                               , "DomainManager"
-                               , "DomainManagerOperations"
-                               , "Double"
-                               , "DoubleBuffer"
-                               , "DoubleHolder"
-                               , "DoubleSeqHelper"
-                               , "DoubleSeqHolder"
-                               , "DragGestureEvent"
-                               , "DragGestureListener"
-                               , "DragGestureRecognizer"
-                               , "DragSource"
-                               , "DragSourceAdapter"
-                               , "DragSourceContext"
-                               , "DragSourceDragEvent"
-                               , "DragSourceDropEvent"
-                               , "DragSourceEvent"
-                               , "DragSourceListener"
-                               , "DragSourceMotionListener"
-                               , "Driver"
-                               , "DriverManager"
-                               , "DriverPropertyInfo"
-                               , "DropMode"
-                               , "DropTarget"
-                               , "DropTarget.DropTargetAutoScroller"
-                               , "DropTargetAdapter"
-                               , "DropTargetContext"
-                               , "DropTargetDragEvent"
-                               , "DropTargetDropEvent"
-                               , "DropTargetEvent"
-                               , "DropTargetListener"
-                               , "DuplicateFormatFlagsException"
-                               , "DuplicateName"
-                               , "DuplicateNameHelper"
-                               , "Duration"
-                               , "DynAny"
-                               , "DynAnyFactory"
-                               , "DynAnyFactoryHelper"
-                               , "DynAnyFactoryOperations"
-                               , "DynAnyHelper"
-                               , "DynAnyOperations"
-                               , "DynAnySeqHelper"
-                               , "DynArray"
-                               , "DynArrayHelper"
-                               , "DynArrayOperations"
-                               , "DynEnum"
-                               , "DynEnumHelper"
-                               , "DynEnumOperations"
-                               , "DynFixed"
-                               , "DynFixedHelper"
-                               , "DynFixedOperations"
-                               , "DynSequence"
-                               , "DynSequenceHelper"
-                               , "DynSequenceOperations"
-                               , "DynStruct"
-                               , "DynStructHelper"
-                               , "DynStructOperations"
-                               , "DynUnion"
-                               , "DynUnionHelper"
-                               , "DynUnionOperations"
-                               , "DynValue"
-                               , "DynValueBox"
-                               , "DynValueBoxOperations"
-                               , "DynValueCommon"
-                               , "DynValueCommonOperations"
-                               , "DynValueHelper"
-                               , "DynValueOperations"
-                               , "DynamicImplementation"
-                               , "DynamicMBean"
-                               , "ECField"
-                               , "ECFieldF2m"
-                               , "ECFieldFp"
-                               , "ECGenParameterSpec"
-                               , "ECKey"
-                               , "ECParameterSpec"
-                               , "ECPoint"
-                               , "ECPrivateKey"
-                               , "ECPrivateKeySpec"
-                               , "ECPublicKey"
-                               , "ECPublicKeySpec"
-                               , "ENCODING_CDR_ENCAPS"
-                               , "EOFException"
-                               , "EditorKit"
-                               , "Element"
-                               , "ElementFilter"
-                               , "ElementIterator"
-                               , "ElementKind"
-                               , "ElementKindVisitor6"
-                               , "ElementScanner6"
-                               , "ElementType"
-                               , "ElementVisitor"
-                               , "Elements"
-                               , "Ellipse2D"
-                               , "Ellipse2D.Double"
-                               , "Ellipse2D.Float"
-                               , "EllipticCurve"
-                               , "EmptyBorder"
-                               , "EmptyStackException"
-                               , "EncodedKeySpec"
-                               , "Encoder"
-                               , "Encoding"
-                               , "EncryptedPrivateKeyInfo"
-                               , "EndDocument"
-                               , "EndElement"
-                               , "Endpoint"
-                               , "Entity"
-                               , "EntityDeclaration"
-                               , "EntityReference"
-                               , "EntityResolver"
-                               , "EntityResolver2"
-                               , "Enum"
-                               , "EnumConstantNotPresentException"
-                               , "EnumControl"
-                               , "EnumControl.Type"
-                               , "EnumMap"
-                               , "EnumSet"
-                               , "EnumSyntax"
-                               , "Enumeration"
-                               , "Environment"
-                               , "Error"
-                               , "ErrorHandler"
-                               , "ErrorListener"
-                               , "ErrorManager"
-                               , "ErrorType"
-                               , "EtchedBorder"
-                               , "Event"
-                               , "EventContext"
-                               , "EventDirContext"
-                               , "EventException"
-                               , "EventFilter"
-                               , "EventHandler"
-                               , "EventListener"
-                               , "EventListenerList"
-                               , "EventListenerProxy"
-                               , "EventObject"
-                               , "EventQueue"
-                               , "EventReaderDelegate"
-                               , "EventSetDescriptor"
-                               , "EventTarget"
-                               , "ExcC14NParameterSpec"
-                               , "Exception"
-                               , "ExceptionDetailMessage"
-                               , "ExceptionInInitializerError"
-                               , "ExceptionList"
-                               , "ExceptionListener"
-                               , "Exchanger"
-                               , "ExecutableElement"
-                               , "ExecutableType"
-                               , "ExecutionException"
-                               , "Executor"
-                               , "ExecutorCompletionService"
-                               , "ExecutorService"
-                               , "Executors"
-                               , "ExemptionMechanism"
-                               , "ExemptionMechanismException"
-                               , "ExemptionMechanismSpi"
-                               , "ExpandVetoException"
-                               , "ExportException"
-                               , "Expression"
-                               , "ExtendedRequest"
-                               , "ExtendedResponse"
-                               , "Externalizable"
-                               , "FREE_MEM"
-                               , "FactoryConfigurationError"
-                               , "FailedLoginException"
-                               , "FeatureDescriptor"
-                               , "Fidelity"
-                               , "Field"
-                               , "FieldNameHelper"
-                               , "FieldPosition"
-                               , "FieldView"
-                               , "File"
-                               , "FileCacheImageInputStream"
-                               , "FileCacheImageOutputStream"
-                               , "FileChannel"
-                               , "FileChannel.MapMode"
-                               , "FileChooserUI"
-                               , "FileDataSource"
-                               , "FileDescriptor"
-                               , "FileDialog"
-                               , "FileFilter"
-                               , "FileHandler"
-                               , "FileImageInputStream"
-                               , "FileImageOutputStream"
-                               , "FileInputStream"
-                               , "FileLock"
-                               , "FileLockInterruptionException"
-                               , "FileNameExtensionFilter"
-                               , "FileNameMap"
-                               , "FileNotFoundException"
-                               , "FileObject"
-                               , "FileOutputStream"
-                               , "FilePermission"
-                               , "FileReader"
-                               , "FileSystemView"
-                               , "FileTypeMap"
-                               , "FileView"
-                               , "FileWriter"
-                               , "FilenameFilter"
-                               , "Filer"
-                               , "FilerException"
-                               , "Filter"
-                               , "FilterInputStream"
-                               , "FilterOutputStream"
-                               , "FilterReader"
-                               , "FilterWriter"
-                               , "FilteredImageSource"
-                               , "FilteredRowSet"
-                               , "Finishings"
-                               , "FixedHeightLayoutCache"
-                               , "FixedHolder"
-                               , "FlatteningPathIterator"
-                               , "FlavorEvent"
-                               , "FlavorException"
-                               , "FlavorListener"
-                               , "FlavorMap"
-                               , "FlavorTable"
-                               , "Float"
-                               , "FloatBuffer"
-                               , "FloatControl"
-                               , "FloatControl.Type"
-                               , "FloatHolder"
-                               , "FloatSeqHelper"
-                               , "FloatSeqHolder"
-                               , "FlowLayout"
-                               , "FlowView"
-                               , "FlowView.FlowStrategy"
-                               , "Flushable"
-                               , "FocusAdapter"
-                               , "FocusEvent"
-                               , "FocusListener"
-                               , "FocusManager"
-                               , "FocusTraversalPolicy"
-                               , "Font"
-                               , "FontFormatException"
-                               , "FontMetrics"
-                               , "FontRenderContext"
-                               , "FontUIResource"
-                               , "FormSubmitEvent"
-                               , "FormSubmitEvent.MethodType"
-                               , "FormView"
-                               , "Format"
-                               , "Format.Field"
-                               , "FormatConversionProvider"
-                               , "FormatFlagsConversionMismatchException"
-                               , "FormatMismatch"
-                               , "FormatMismatchHelper"
-                               , "Formattable"
-                               , "FormattableFlags"
-                               , "Formatter"
-                               , "FormatterClosedException"
-                               , "ForwardRequest"
-                               , "ForwardRequestHelper"
-                               , "ForwardingFileObject"
-                               , "ForwardingJavaFileManager"
-                               , "ForwardingJavaFileObject"
-                               , "Frame"
-                               , "Future"
-                               , "FutureTask"
-                               , "GSSContext"
-                               , "GSSCredential"
-                               , "GSSException"
-                               , "GSSManager"
-                               , "GSSName"
-                               , "GZIPInputStream"
-                               , "GZIPOutputStream"
-                               , "GapContent"
-                               , "GarbageCollectorMXBean"
-                               , "GatheringByteChannel"
-                               , "GaugeMonitor"
-                               , "GaugeMonitorMBean"
-                               , "GeneralPath"
-                               , "GeneralSecurityException"
-                               , "Generated"
-                               , "GenericArrayType"
-                               , "GenericDeclaration"
-                               , "GenericSignatureFormatError"
-                               , "GlyphJustificationInfo"
-                               , "GlyphMetrics"
-                               , "GlyphVector"
-                               , "GlyphView"
-                               , "GlyphView.GlyphPainter"
-                               , "GradientPaint"
-                               , "GraphicAttribute"
-                               , "Graphics"
-                               , "Graphics2D"
-                               , "GraphicsConfigTemplate"
-                               , "GraphicsConfiguration"
-                               , "GraphicsDevice"
-                               , "GraphicsEnvironment"
-                               , "GrayFilter"
-                               , "GregorianCalendar"
-                               , "GridBagConstraints"
-                               , "GridBagLayout"
-                               , "GridBagLayoutInfo"
-                               , "GridLayout"
-                               , "Group"
-                               , "GroupLayout"
-                               , "Guard"
-                               , "GuardedObject"
-                               , "HMACParameterSpec"
-                               , "HOLDING"
-                               , "HTML"
-                               , "HTML.Attribute"
-                               , "HTML.Tag"
-                               , "HTML.UnknownTag"
-                               , "HTMLDocument"
-                               , "HTMLDocument.Iterator"
-                               , "HTMLEditorKit"
-                               , "HTMLEditorKit.HTMLFactory"
-                               , "HTMLEditorKit.HTMLTextAction"
-                               , "HTMLEditorKit.InsertHTMLTextAction"
-                               , "HTMLEditorKit.LinkController"
-                               , "HTMLEditorKit.Parser"
-                               , "HTMLEditorKit.ParserCallback"
-                               , "HTMLFrameHyperlinkEvent"
-                               , "HTMLWriter"
-                               , "HTTPBinding"
-                               , "HTTPException"
-                               , "Handler"
-                               , "HandlerBase"
-                               , "HandlerChain"
-                               , "HandlerResolver"
-                               , "HandshakeCompletedEvent"
-                               , "HandshakeCompletedListener"
-                               , "HasControls"
-                               , "HashAttributeSet"
-                               , "HashDocAttributeSet"
-                               , "HashMap"
-                               , "HashPrintJobAttributeSet"
-                               , "HashPrintRequestAttributeSet"
-                               , "HashPrintServiceAttributeSet"
-                               , "HashSet"
-                               , "Hashtable"
-                               , "HeadlessException"
-                               , "HexBinaryAdapter"
-                               , "HierarchyBoundsAdapter"
-                               , "HierarchyBoundsListener"
-                               , "HierarchyEvent"
-                               , "HierarchyListener"
-                               , "Highlighter"
-                               , "Highlighter.Highlight"
-                               , "Highlighter.HighlightPainter"
-                               , "Holder"
-                               , "HostnameVerifier"
-                               , "HttpCookie"
-                               , "HttpRetryException"
-                               , "HttpURLConnection"
-                               , "HttpsURLConnection"
-                               , "HyperlinkEvent"
-                               , "HyperlinkEvent.EventType"
-                               , "HyperlinkListener"
-                               , "ICC_ColorSpace"
-                               , "ICC_Profile"
-                               , "ICC_ProfileGray"
-                               , "ICC_ProfileRGB"
-                               , "IDLEntity"
-                               , "IDLType"
-                               , "IDLTypeHelper"
-                               , "IDLTypeOperations"
-                               , "IDN"
-                               , "ID_ASSIGNMENT_POLICY_ID"
-                               , "ID_UNIQUENESS_POLICY_ID"
-                               , "IIOByteBuffer"
-                               , "IIOException"
-                               , "IIOImage"
-                               , "IIOInvalidTreeException"
-                               , "IIOMetadata"
-                               , "IIOMetadataController"
-                               , "IIOMetadataFormat"
-                               , "IIOMetadataFormatImpl"
-                               , "IIOMetadataNode"
-                               , "IIOParam"
-                               , "IIOParamController"
-                               , "IIOReadProgressListener"
-                               , "IIOReadUpdateListener"
-                               , "IIOReadWarningListener"
-                               , "IIORegistry"
-                               , "IIOServiceProvider"
-                               , "IIOWriteProgressListener"
-                               , "IIOWriteWarningListener"
-                               , "IMPLICIT_ACTIVATION_POLICY_ID"
-                               , "IMP_LIMIT"
-                               , "INACTIVE"
-                               , "INITIALIZE"
-                               , "INTERNAL"
-                               , "INTF_REPOS"
-                               , "INVALID_ACTIVITY"
-                               , "INVALID_TRANSACTION"
-                               , "INV_FLAG"
-                               , "INV_IDENT"
-                               , "INV_OBJREF"
-                               , "INV_POLICY"
-                               , "IOError"
-                               , "IOException"
-                               , "IOR"
-                               , "IORHelper"
-                               , "IORHolder"
-                               , "IORInfo"
-                               , "IORInfoOperations"
-                               , "IORInterceptor"
-                               , "IORInterceptorOperations"
-                               , "IORInterceptor_3_0"
-                               , "IORInterceptor_3_0Helper"
-                               , "IORInterceptor_3_0Holder"
-                               , "IORInterceptor_3_0Operations"
-                               , "IRObject"
-                               , "IRObjectOperations"
-                               , "Icon"
-                               , "IconUIResource"
-                               , "IconView"
-                               , "IdAssignmentPolicy"
-                               , "IdAssignmentPolicyOperations"
-                               , "IdAssignmentPolicyValue"
-                               , "IdUniquenessPolicy"
-                               , "IdUniquenessPolicyOperations"
-                               , "IdUniquenessPolicyValue"
-                               , "IdentifierHelper"
-                               , "Identity"
-                               , "IdentityHashMap"
-                               , "IdentityScope"
-                               , "IllegalAccessError"
-                               , "IllegalAccessException"
-                               , "IllegalArgumentException"
-                               , "IllegalBlockSizeException"
-                               , "IllegalBlockingModeException"
-                               , "IllegalCharsetNameException"
-                               , "IllegalClassFormatException"
-                               , "IllegalComponentStateException"
-                               , "IllegalFormatCodePointException"
-                               , "IllegalFormatConversionException"
-                               , "IllegalFormatException"
-                               , "IllegalFormatFlagsException"
-                               , "IllegalFormatPrecisionException"
-                               , "IllegalFormatWidthException"
-                               , "IllegalMonitorStateException"
-                               , "IllegalPathStateException"
-                               , "IllegalSelectorException"
-                               , "IllegalStateException"
-                               , "IllegalThreadStateException"
-                               , "Image"
-                               , "ImageCapabilities"
-                               , "ImageConsumer"
-                               , "ImageFilter"
-                               , "ImageGraphicAttribute"
-                               , "ImageIO"
-                               , "ImageIcon"
-                               , "ImageInputStream"
-                               , "ImageInputStreamImpl"
-                               , "ImageInputStreamSpi"
-                               , "ImageObserver"
-                               , "ImageOutputStream"
-                               , "ImageOutputStreamImpl"
-                               , "ImageOutputStreamSpi"
-                               , "ImageProducer"
-                               , "ImageReadParam"
-                               , "ImageReader"
-                               , "ImageReaderSpi"
-                               , "ImageReaderWriterSpi"
-                               , "ImageTranscoder"
-                               , "ImageTranscoderSpi"
-                               , "ImageTypeSpecifier"
-                               , "ImageView"
-                               , "ImageWriteParam"
-                               , "ImageWriter"
-                               , "ImageWriterSpi"
-                               , "ImagingOpException"
-                               , "ImmutableDescriptor"
-                               , "ImplicitActivationPolicy"
-                               , "ImplicitActivationPolicyOperations"
-                               , "ImplicitActivationPolicyValue"
-                               , "IncompatibleClassChangeError"
-                               , "IncompleteAnnotationException"
-                               , "InconsistentTypeCode"
-                               , "InconsistentTypeCodeHelper"
-                               , "IndexColorModel"
-                               , "IndexOutOfBoundsException"
-                               , "IndexedPropertyChangeEvent"
-                               , "IndexedPropertyDescriptor"
-                               , "IndirectionException"
-                               , "Inet4Address"
-                               , "Inet6Address"
-                               , "InetAddress"
-                               , "InetSocketAddress"
-                               , "Inflater"
-                               , "InflaterInputStream"
-                               , "InflaterOutputStream"
-                               , "InheritableThreadLocal"
-                               , "Inherited"
-                               , "InitParam"
-                               , "InitialContext"
-                               , "InitialContextFactory"
-                               , "InitialContextFactoryBuilder"
-                               , "InitialDirContext"
-                               , "InitialLdapContext"
-                               , "InlineView"
-                               , "InputContext"
-                               , "InputEvent"
-                               , "InputMap"
-                               , "InputMapUIResource"
-                               , "InputMethod"
-                               , "InputMethodContext"
-                               , "InputMethodDescriptor"
-                               , "InputMethodEvent"
-                               , "InputMethodHighlight"
-                               , "InputMethodListener"
-                               , "InputMethodRequests"
-                               , "InputMismatchException"
-                               , "InputSource"
-                               , "InputStream"
-                               , "InputStreamReader"
-                               , "InputSubset"
-                               , "InputVerifier"
-                               , "Insets"
-                               , "InsetsUIResource"
-                               , "InstanceAlreadyExistsException"
-                               , "InstanceNotFoundException"
-                               , "InstantiationError"
-                               , "InstantiationException"
-                               , "Instrument"
-                               , "Instrumentation"
-                               , "InsufficientResourcesException"
-                               , "IntBuffer"
-                               , "IntHolder"
-                               , "Integer"
-                               , "IntegerSyntax"
-                               , "Interceptor"
-                               , "InterceptorOperations"
-                               , "InterfaceAddress"
-                               , "InternalError"
-                               , "InternalFrameAdapter"
-                               , "InternalFrameEvent"
-                               , "InternalFrameFocusTraversalPolicy"
-                               , "InternalFrameListener"
-                               , "InternalFrameUI"
-                               , "InternationalFormatter"
-                               , "InterruptedException"
-                               , "InterruptedIOException"
-                               , "InterruptedNamingException"
-                               , "InterruptibleChannel"
-                               , "IntrospectionException"
-                               , "Introspector"
-                               , "Invalid"
-                               , "InvalidActivityException"
-                               , "InvalidAddress"
-                               , "InvalidAddressHelper"
-                               , "InvalidAddressHolder"
-                               , "InvalidAlgorithmParameterException"
-                               , "InvalidApplicationException"
-                               , "InvalidAttributeIdentifierException"
-                               , "InvalidAttributeValueException"
-                               , "InvalidAttributesException"
-                               , "InvalidClassException"
-                               , "InvalidDnDOperationException"
-                               , "InvalidKeyException"
-                               , "InvalidKeySpecException"
-                               , "InvalidMarkException"
-                               , "InvalidMidiDataException"
-                               , "InvalidName"
-                               , "InvalidNameException"
-                               , "InvalidNameHelper"
-                               , "InvalidNameHolder"
-                               , "InvalidObjectException"
-                               , "InvalidOpenTypeException"
-                               , "InvalidParameterException"
-                               , "InvalidParameterSpecException"
-                               , "InvalidPolicy"
-                               , "InvalidPolicyHelper"
-                               , "InvalidPreferencesFormatException"
-                               , "InvalidPropertiesFormatException"
-                               , "InvalidRelationIdException"
-                               , "InvalidRelationServiceException"
-                               , "InvalidRelationTypeException"
-                               , "InvalidRoleInfoException"
-                               , "InvalidRoleValueException"
-                               , "InvalidSearchControlsException"
-                               , "InvalidSearchFilterException"
-                               , "InvalidSeq"
-                               , "InvalidSlot"
-                               , "InvalidSlotHelper"
-                               , "InvalidTargetObjectTypeException"
-                               , "InvalidTransactionException"
-                               , "InvalidTypeForEncoding"
-                               , "InvalidTypeForEncodingHelper"
-                               , "InvalidValue"
-                               , "InvalidValueHelper"
-                               , "Invocable"
-                               , "InvocationEvent"
-                               , "InvocationHandler"
-                               , "InvocationTargetException"
-                               , "InvokeHandler"
-                               , "IstringHelper"
-                               , "ItemEvent"
-                               , "ItemListener"
-                               , "ItemSelectable"
-                               , "Iterable"
-                               , "Iterator"
-                               , "IvParameterSpec"
-                               , "JAXBContext"
-                               , "JAXBElement"
-                               , "JAXBException"
-                               , "JAXBIntrospector"
-                               , "JAXBResult"
-                               , "JAXBSource"
-                               , "JApplet"
-                               , "JButton"
-                               , "JCheckBox"
-                               , "JCheckBoxMenuItem"
-                               , "JColorChooser"
-                               , "JComboBox"
-                               , "JComboBox.KeySelectionManager"
-                               , "JComponent"
-                               , "JDesktopPane"
-                               , "JDialog"
-                               , "JEditorPane"
-                               , "JFileChooser"
-                               , "JFormattedTextField"
-                               , "JFormattedTextField.AbstractFormatter"
-                               , "JFormattedTextField.AbstractFormatterFactory"
-                               , "JFrame"
-                               , "JInternalFrame"
-                               , "JInternalFrame.JDesktopIcon"
-                               , "JLabel"
-                               , "JLayeredPane"
-                               , "JList"
-                               , "JMException"
-                               , "JMRuntimeException"
-                               , "JMX"
-                               , "JMXAddressable"
-                               , "JMXAuthenticator"
-                               , "JMXConnectionNotification"
-                               , "JMXConnector"
-                               , "JMXConnectorFactory"
-                               , "JMXConnectorProvider"
-                               , "JMXConnectorServer"
-                               , "JMXConnectorServerFactory"
-                               , "JMXConnectorServerMBean"
-                               , "JMXConnectorServerProvider"
-                               , "JMXPrincipal"
-                               , "JMXProviderException"
-                               , "JMXServerErrorException"
-                               , "JMXServiceURL"
-                               , "JMenu"
-                               , "JMenuBar"
-                               , "JMenuItem"
-                               , "JOptionPane"
-                               , "JPEGHuffmanTable"
-                               , "JPEGImageReadParam"
-                               , "JPEGImageWriteParam"
-                               , "JPEGQTable"
-                               , "JPanel"
-                               , "JPasswordField"
-                               , "JPopupMenu"
-                               , "JPopupMenu.Separator"
-                               , "JProgressBar"
-                               , "JRadioButton"
-                               , "JRadioButtonMenuItem"
-                               , "JRootPane"
-                               , "JScrollBar"
-                               , "JScrollPane"
-                               , "JSeparator"
-                               , "JSlider"
-                               , "JSpinner"
-                               , "JSpinner.DateEditor"
-                               , "JSpinner.DefaultEditor"
-                               , "JSpinner.ListEditor"
-                               , "JSpinner.NumberEditor"
-                               , "JSplitPane"
-                               , "JTabbedPane"
-                               , "JTable"
-                               , "JTable.PrintMode"
-                               , "JTableHeader"
-                               , "JTextArea"
-                               , "JTextComponent"
-                               , "JTextComponent.KeyBinding"
-                               , "JTextField"
-                               , "JTextPane"
-                               , "JToggleButton"
-                               , "JToggleButton.ToggleButtonModel"
-                               , "JToolBar"
-                               , "JToolBar.Separator"
-                               , "JToolTip"
-                               , "JTree"
-                               , "JTree.DynamicUtilTreeNode"
-                               , "JTree.EmptySelectionModel"
-                               , "JViewport"
-                               , "JWindow"
-                               , "JarEntry"
-                               , "JarException"
-                               , "JarFile"
-                               , "JarInputStream"
-                               , "JarOutputStream"
-                               , "JarURLConnection"
-                               , "JavaCompiler"
-                               , "JavaFileManager"
-                               , "JavaFileObject"
-                               , "JdbcRowSet"
-                               , "JobAttributes"
-                               , "JobAttributes.DefaultSelectionType"
-                               , "JobAttributes.DestinationType"
-                               , "JobAttributes.DialogType"
-                               , "JobAttributes.MultipleDocumentHandlingType"
-                               , "JobAttributes.SidesType"
-                               , "JobHoldUntil"
-                               , "JobImpressions"
-                               , "JobImpressionsCompleted"
-                               , "JobImpressionsSupported"
-                               , "JobKOctets"
-                               , "JobKOctetsProcessed"
-                               , "JobKOctetsSupported"
-                               , "JobMediaSheets"
-                               , "JobMediaSheetsCompleted"
-                               , "JobMediaSheetsSupported"
-                               , "JobMessageFromOperator"
-                               , "JobName"
-                               , "JobOriginatingUserName"
-                               , "JobPriority"
-                               , "JobPrioritySupported"
-                               , "JobSheets"
-                               , "JobState"
-                               , "JobStateReason"
-                               , "JobStateReasons"
-                               , "JoinRowSet"
-                               , "Joinable"
-                               , "KerberosKey"
-                               , "KerberosPrincipal"
-                               , "KerberosTicket"
-                               , "Kernel"
-                               , "Key"
-                               , "KeyAdapter"
-                               , "KeyAgreement"
-                               , "KeyAgreementSpi"
-                               , "KeyAlreadyExistsException"
-                               , "KeyEvent"
-                               , "KeyEventDispatcher"
-                               , "KeyEventPostProcessor"
-                               , "KeyException"
-                               , "KeyFactory"
-                               , "KeyFactorySpi"
-                               , "KeyGenerator"
-                               , "KeyGeneratorSpi"
-                               , "KeyInfo"
-                               , "KeyInfoFactory"
-                               , "KeyListener"
-                               , "KeyManagementException"
-                               , "KeyManager"
-                               , "KeyManagerFactory"
-                               , "KeyManagerFactorySpi"
-                               , "KeyName"
-                               , "KeyPair"
-                               , "KeyPairGenerator"
-                               , "KeyPairGeneratorSpi"
-                               , "KeyRep"
-                               , "KeyRep.Type"
-                               , "KeySelector"
-                               , "KeySelectorException"
-                               , "KeySelectorResult"
-                               , "KeySpec"
-                               , "KeyStore"
-                               , "KeyStore.Builder"
-                               , "KeyStore.CallbackHandlerProtection"
-                               , "KeyStore.Entry"
-                               , "KeyStore.LoadStoreParameter"
-                               , "KeyStore.PasswordProtection"
-                               , "KeyStore.PrivateKeyEntry"
-                               , "KeyStore.ProtectionParameter"
-                               , "KeyStore.SecretKeyEntry"
-                               , "KeyStore.TrustedCertificateEntry"
-                               , "KeyStoreBuilderParameters"
-                               , "KeyStoreException"
-                               , "KeyStoreSpi"
-                               , "KeyStroke"
-                               , "KeyValue"
-                               , "KeyboardFocusManager"
-                               , "Keymap"
-                               , "LDAPCertStoreParameters"
-                               , "LIFESPAN_POLICY_ID"
-                               , "LOCATION_FORWARD"
-                               , "LSException"
-                               , "LSInput"
-                               , "LSLoadEvent"
-                               , "LSOutput"
-                               , "LSParser"
-                               , "LSParserFilter"
-                               , "LSProgressEvent"
-                               , "LSResourceResolver"
-                               , "LSSerializer"
-                               , "LSSerializerFilter"
-                               , "Label"
-                               , "LabelUI"
-                               , "LabelView"
-                               , "LanguageCallback"
-                               , "LastOwnerException"
-                               , "LayeredHighlighter"
-                               , "LayeredHighlighter.LayerPainter"
-                               , "LayoutFocusTraversalPolicy"
-                               , "LayoutManager"
-                               , "LayoutManager2"
-                               , "LayoutPath"
-                               , "LayoutQueue"
-                               , "LayoutStyle"
-                               , "LdapContext"
-                               , "LdapName"
-                               , "LdapReferralException"
-                               , "Lease"
-                               , "Level"
-                               , "LexicalHandler"
-                               , "LifespanPolicy"
-                               , "LifespanPolicyOperations"
-                               , "LifespanPolicyValue"
-                               , "LimitExceededException"
-                               , "Line"
-                               , "Line.Info"
-                               , "Line2D"
-                               , "Line2D.Double"
-                               , "Line2D.Float"
-                               , "LineBorder"
-                               , "LineBreakMeasurer"
-                               , "LineEvent"
-                               , "LineEvent.Type"
-                               , "LineListener"
-                               , "LineMetrics"
-                               , "LineNumberInputStream"
-                               , "LineNumberReader"
-                               , "LineUnavailableException"
-                               , "LinearGradientPaint"
-                               , "LinkException"
-                               , "LinkLoopException"
-                               , "LinkRef"
-                               , "LinkageError"
-                               , "LinkedBlockingDeque"
-                               , "LinkedBlockingQueue"
-                               , "LinkedHashMap"
-                               , "LinkedHashSet"
-                               , "LinkedList"
-                               , "List"
-                               , "ListCellRenderer"
-                               , "ListDataEvent"
-                               , "ListDataListener"
-                               , "ListIterator"
-                               , "ListModel"
-                               , "ListResourceBundle"
-                               , "ListSelectionEvent"
-                               , "ListSelectionListener"
-                               , "ListSelectionModel"
-                               , "ListUI"
-                               , "ListView"
-                               , "ListenerNotFoundException"
-                               , "LoaderHandler"
-                               , "LocalObject"
-                               , "Locale"
-                               , "LocaleNameProvider"
-                               , "LocaleServiceProvider"
-                               , "LocateRegistry"
-                               , "Location"
-                               , "Locator"
-                               , "Locator2"
-                               , "Locator2Impl"
-                               , "LocatorImpl"
-                               , "Lock"
-                               , "LockInfo"
-                               , "LockSupport"
-                               , "LogManager"
-                               , "LogRecord"
-                               , "LogStream"
-                               , "Logger"
-                               , "LoggingMXBean"
-                               , "LoggingPermission"
-                               , "LogicalHandler"
-                               , "LogicalMessage"
-                               , "LogicalMessageContext"
-                               , "LoginContext"
-                               , "LoginException"
-                               , "LoginModule"
-                               , "Long"
-                               , "LongBuffer"
-                               , "LongHolder"
-                               , "LongLongSeqHelper"
-                               , "LongLongSeqHolder"
-                               , "LongSeqHelper"
-                               , "LongSeqHolder"
-                               , "LookAndFeel"
-                               , "LookupOp"
-                               , "LookupTable"
-                               , "MARSHAL"
-                               , "MBeanAttributeInfo"
-                               , "MBeanConstructorInfo"
-                               , "MBeanException"
-                               , "MBeanFeatureInfo"
-                               , "MBeanInfo"
-                               , "MBeanNotificationInfo"
-                               , "MBeanOperationInfo"
-                               , "MBeanParameterInfo"
-                               , "MBeanPermission"
-                               , "MBeanRegistration"
-                               , "MBeanRegistrationException"
-                               , "MBeanServer"
-                               , "MBeanServerBuilder"
-                               , "MBeanServerConnection"
-                               , "MBeanServerDelegate"
-                               , "MBeanServerDelegateMBean"
-                               , "MBeanServerFactory"
-                               , "MBeanServerForwarder"
-                               , "MBeanServerInvocationHandler"
-                               , "MBeanServerNotification"
-                               , "MBeanServerNotificationFilter"
-                               , "MBeanServerPermission"
-                               , "MBeanTrustPermission"
-                               , "MGF1ParameterSpec"
-                               , "MLet"
-                               , "MLetContent"
-                               , "MLetMBean"
-                               , "MXBean"
-                               , "Mac"
-                               , "MacSpi"
-                               , "MailcapCommandMap"
-                               , "MalformedInputException"
-                               , "MalformedLinkException"
-                               , "MalformedObjectNameException"
-                               , "MalformedParameterizedTypeException"
-                               , "MalformedURLException"
-                               , "ManageReferralControl"
-                               , "ManagementFactory"
-                               , "ManagementPermission"
-                               , "ManagerFactoryParameters"
-                               , "Manifest"
-                               , "Map"
-                               , "Map.Entry"
-                               , "MappedByteBuffer"
-                               , "MarshalException"
-                               , "MarshalledObject"
-                               , "Marshaller"
-                               , "MaskFormatter"
-                               , "MatchResult"
-                               , "Matcher"
-                               , "Math"
-                               , "MathContext"
-                               , "MatteBorder"
-                               , "Media"
-                               , "MediaName"
-                               , "MediaPrintableArea"
-                               , "MediaSize"
-                               , "MediaSize.Engineering"
-                               , "MediaSize.ISO"
-                               , "MediaSize.JIS"
-                               , "MediaSize.NA"
-                               , "MediaSize.Other"
-                               , "MediaSizeName"
-                               , "MediaTracker"
-                               , "MediaTray"
-                               , "Member"
-                               , "MemoryCacheImageInputStream"
-                               , "MemoryCacheImageOutputStream"
-                               , "MemoryHandler"
-                               , "MemoryImageSource"
-                               , "MemoryMXBean"
-                               , "MemoryManagerMXBean"
-                               , "MemoryNotificationInfo"
-                               , "MemoryPoolMXBean"
-                               , "MemoryType"
-                               , "MemoryUsage"
-                               , "Menu"
-                               , "MenuBar"
-                               , "MenuBarUI"
-                               , "MenuComponent"
-                               , "MenuContainer"
-                               , "MenuDragMouseEvent"
-                               , "MenuDragMouseListener"
-                               , "MenuElement"
-                               , "MenuEvent"
-                               , "MenuItem"
-                               , "MenuItemUI"
-                               , "MenuKeyEvent"
-                               , "MenuKeyListener"
-                               , "MenuListener"
-                               , "MenuSelectionManager"
-                               , "MenuShortcut"
-                               , "MessageContext"
-                               , "MessageDigest"
-                               , "MessageDigestSpi"
-                               , "MessageFactory"
-                               , "MessageFormat"
-                               , "MessageFormat.Field"
-                               , "MessageProp"
-                               , "Messager"
-                               , "MetaEventListener"
-                               , "MetaMessage"
-                               , "MetalBorders"
-                               , "MetalBorders.ButtonBorder"
-                               , "MetalBorders.Flush3DBorder"
-                               , "MetalBorders.InternalFrameBorder"
-                               , "MetalBorders.MenuBarBorder"
-                               , "MetalBorders.MenuItemBorder"
-                               , "MetalBorders.OptionDialogBorder"
-                               , "MetalBorders.PaletteBorder"
-                               , "MetalBorders.PopupMenuBorder"
-                               , "MetalBorders.RolloverButtonBorder"
-                               , "MetalBorders.ScrollPaneBorder"
-                               , "MetalBorders.TableHeaderBorder"
-                               , "MetalBorders.TextFieldBorder"
-                               , "MetalBorders.ToggleButtonBorder"
-                               , "MetalBorders.ToolBarBorder"
-                               , "MetalButtonUI"
-                               , "MetalCheckBoxIcon"
-                               , "MetalCheckBoxUI"
-                               , "MetalComboBoxButton"
-                               , "MetalComboBoxEditor"
-                               , "MetalComboBoxEditor.UIResource"
-                               , "MetalComboBoxIcon"
-                               , "MetalComboBoxUI"
-                               , "MetalDesktopIconUI"
-                               , "MetalFileChooserUI"
-                               , "MetalIconFactory"
-                               , "MetalIconFactory.FileIcon16"
-                               , "MetalIconFactory.FolderIcon16"
-                               , "MetalIconFactory.PaletteCloseIcon"
-                               , "MetalIconFactory.TreeControlIcon"
-                               , "MetalIconFactory.TreeFolderIcon"
-                               , "MetalIconFactory.TreeLeafIcon"
-                               , "MetalInternalFrameTitlePane"
-                               , "MetalInternalFrameUI"
-                               , "MetalLabelUI"
-                               , "MetalLookAndFeel"
-                               , "MetalMenuBarUI"
-                               , "MetalPopupMenuSeparatorUI"
-                               , "MetalProgressBarUI"
-                               , "MetalRadioButtonUI"
-                               , "MetalRootPaneUI"
-                               , "MetalScrollBarUI"
-                               , "MetalScrollButton"
-                               , "MetalScrollPaneUI"
-                               , "MetalSeparatorUI"
-                               , "MetalSliderUI"
-                               , "MetalSplitPaneUI"
-                               , "MetalTabbedPaneUI"
-                               , "MetalTextFieldUI"
-                               , "MetalTheme"
-                               , "MetalToggleButtonUI"
-                               , "MetalToolBarUI"
-                               , "MetalToolTipUI"
-                               , "MetalTreeUI"
-                               , "Method"
-                               , "MethodDescriptor"
-                               , "MidiChannel"
-                               , "MidiDevice"
-                               , "MidiDevice.Info"
-                               , "MidiDeviceProvider"
-                               , "MidiEvent"
-                               , "MidiFileFormat"
-                               , "MidiFileReader"
-                               , "MidiFileWriter"
-                               , "MidiMessage"
-                               , "MidiSystem"
-                               , "MidiUnavailableException"
-                               , "MimeHeader"
-                               , "MimeHeaders"
-                               , "MimeType"
-                               , "MimeTypeParameterList"
-                               , "MimeTypeParseException"
-                               , "MimetypesFileTypeMap"
-                               , "MinimalHTMLWriter"
-                               , "MirroredTypeException"
-                               , "MirroredTypesException"
-                               , "MissingFormatArgumentException"
-                               , "MissingFormatWidthException"
-                               , "MissingResourceException"
-                               , "Mixer"
-                               , "Mixer.Info"
-                               , "MixerProvider"
-                               , "ModelMBean"
-                               , "ModelMBeanAttributeInfo"
-                               , "ModelMBeanConstructorInfo"
-                               , "ModelMBeanInfo"
-                               , "ModelMBeanInfoSupport"
-                               , "ModelMBeanNotificationBroadcaster"
-                               , "ModelMBeanNotificationInfo"
-                               , "ModelMBeanOperationInfo"
-                               , "ModificationItem"
-                               , "Modifier"
-                               , "Monitor"
-                               , "MonitorInfo"
-                               , "MonitorMBean"
-                               , "MonitorNotification"
-                               , "MonitorSettingException"
-                               , "MouseAdapter"
-                               , "MouseDragGestureRecognizer"
-                               , "MouseEvent"
-                               , "MouseInfo"
-                               , "MouseInputAdapter"
-                               , "MouseInputListener"
-                               , "MouseListener"
-                               , "MouseMotionAdapter"
-                               , "MouseMotionListener"
-                               , "MouseWheelEvent"
-                               , "MouseWheelListener"
-                               , "MultiButtonUI"
-                               , "MultiColorChooserUI"
-                               , "MultiComboBoxUI"
-                               , "MultiDesktopIconUI"
-                               , "MultiDesktopPaneUI"
-                               , "MultiDoc"
-                               , "MultiDocPrintJob"
-                               , "MultiDocPrintService"
-                               , "MultiFileChooserUI"
-                               , "MultiInternalFrameUI"
-                               , "MultiLabelUI"
-                               , "MultiListUI"
-                               , "MultiLookAndFeel"
-                               , "MultiMenuBarUI"
-                               , "MultiMenuItemUI"
-                               , "MultiOptionPaneUI"
-                               , "MultiPanelUI"
-                               , "MultiPixelPackedSampleModel"
-                               , "MultiPopupMenuUI"
-                               , "MultiProgressBarUI"
-                               , "MultiRootPaneUI"
-                               , "MultiScrollBarUI"
-                               , "MultiScrollPaneUI"
-                               , "MultiSeparatorUI"
-                               , "MultiSliderUI"
-                               , "MultiSpinnerUI"
-                               , "MultiSplitPaneUI"
-                               , "MultiTabbedPaneUI"
-                               , "MultiTableHeaderUI"
-                               , "MultiTableUI"
-                               , "MultiTextUI"
-                               , "MultiToolBarUI"
-                               , "MultiToolTipUI"
-                               , "MultiTreeUI"
-                               , "MultiViewportUI"
-                               , "MulticastSocket"
-                               , "MultipleComponentProfileHelper"
-                               , "MultipleComponentProfileHolder"
-                               , "MultipleDocumentHandling"
-                               , "MultipleGradientPaint"
-                               , "MultipleMaster"
-                               , "MutableAttributeSet"
-                               , "MutableComboBoxModel"
-                               , "MutableTreeNode"
-                               , "MutationEvent"
-                               , "NClob"
-                               , "NON_EXISTENT"
-                               , "NO_IMPLEMENT"
-                               , "NO_MEMORY"
-                               , "NO_PERMISSION"
-                               , "NO_RESOURCES"
-                               , "NO_RESPONSE"
-                               , "NVList"
-                               , "Name"
-                               , "NameAlreadyBoundException"
-                               , "NameCallback"
-                               , "NameClassPair"
-                               , "NameComponent"
-                               , "NameComponentHelper"
-                               , "NameComponentHolder"
-                               , "NameDynAnyPair"
-                               , "NameDynAnyPairHelper"
-                               , "NameDynAnyPairSeqHelper"
-                               , "NameHelper"
-                               , "NameHolder"
-                               , "NameList"
-                               , "NameNotFoundException"
-                               , "NameParser"
-                               , "NameValuePair"
-                               , "NameValuePairHelper"
-                               , "NameValuePairSeqHelper"
-                               , "NamedNodeMap"
-                               , "NamedValue"
-                               , "Namespace"
-                               , "NamespaceChangeListener"
-                               , "NamespaceContext"
-                               , "NamespaceSupport"
-                               , "Naming"
-                               , "NamingContext"
-                               , "NamingContextExt"
-                               , "NamingContextExtHelper"
-                               , "NamingContextExtHolder"
-                               , "NamingContextExtOperations"
-                               , "NamingContextExtPOA"
-                               , "NamingContextHelper"
-                               , "NamingContextHolder"
-                               , "NamingContextOperations"
-                               , "NamingContextPOA"
-                               , "NamingEnumeration"
-                               , "NamingEvent"
-                               , "NamingException"
-                               , "NamingExceptionEvent"
-                               , "NamingListener"
-                               , "NamingManager"
-                               , "NamingSecurityException"
-                               , "NavigableMap"
-                               , "NavigableSet"
-                               , "NavigationFilter"
-                               , "NavigationFilter.FilterBypass"
-                               , "NegativeArraySizeException"
-                               , "NestingKind"
-                               , "NetPermission"
-                               , "NetworkInterface"
-                               , "NoClassDefFoundError"
-                               , "NoConnectionPendingException"
-                               , "NoContext"
-                               , "NoContextHelper"
-                               , "NoInitialContextException"
-                               , "NoPermissionException"
-                               , "NoRouteToHostException"
-                               , "NoServant"
-                               , "NoServantHelper"
-                               , "NoSuchAlgorithmException"
-                               , "NoSuchAttributeException"
-                               , "NoSuchElementException"
-                               , "NoSuchFieldError"
-                               , "NoSuchFieldException"
-                               , "NoSuchMechanismException"
-                               , "NoSuchMethodError"
-                               , "NoSuchMethodException"
-                               , "NoSuchObjectException"
-                               , "NoSuchPaddingException"
-                               , "NoSuchProviderException"
-                               , "NoType"
-                               , "Node"
-                               , "NodeChangeEvent"
-                               , "NodeChangeListener"
-                               , "NodeList"
-                               , "NodeSetData"
-                               , "NonReadableChannelException"
-                               , "NonWritableChannelException"
-                               , "NoninvertibleTransformException"
-                               , "NormalizedStringAdapter"
-                               , "Normalizer"
-                               , "NotActiveException"
-                               , "NotBoundException"
-                               , "NotCompliantMBeanException"
-                               , "NotContextException"
-                               , "NotEmpty"
-                               , "NotEmptyHelper"
-                               , "NotEmptyHolder"
-                               , "NotFound"
-                               , "NotFoundHelper"
-                               , "NotFoundHolder"
-                               , "NotFoundReason"
-                               , "NotFoundReasonHelper"
-                               , "NotFoundReasonHolder"
-                               , "NotIdentifiableEvent"
-                               , "NotIdentifiableEventImpl"
-                               , "NotOwnerException"
-                               , "NotSerializableException"
-                               , "NotYetBoundException"
-                               , "NotYetConnectedException"
-                               , "Notation"
-                               , "NotationDeclaration"
-                               , "Notification"
-                               , "NotificationBroadcaster"
-                               , "NotificationBroadcasterSupport"
-                               , "NotificationEmitter"
-                               , "NotificationFilter"
-                               , "NotificationFilterSupport"
-                               , "NotificationListener"
-                               , "NotificationResult"
-                               , "NullCipher"
-                               , "NullPointerException"
-                               , "NullType"
-                               , "Number"
-                               , "NumberFormat"
-                               , "NumberFormat.Field"
-                               , "NumberFormatException"
-                               , "NumberFormatProvider"
-                               , "NumberFormatter"
-                               , "NumberOfDocuments"
-                               , "NumberOfInterveningJobs"
-                               , "NumberUp"
-                               , "NumberUpSupported"
-                               , "NumericShaper"
-                               , "OAEPParameterSpec"
-                               , "OBJECT_NOT_EXIST"
-                               , "OBJ_ADAPTER"
-                               , "OMGVMCID"
-                               , "ORB"
-                               , "ORBIdHelper"
-                               , "ORBInitInfo"
-                               , "ORBInitInfoOperations"
-                               , "ORBInitializer"
-                               , "ORBInitializerOperations"
-                               , "ObjID"
-                               , "Object"
-                               , "ObjectAlreadyActive"
-                               , "ObjectAlreadyActiveHelper"
-                               , "ObjectChangeListener"
-                               , "ObjectFactory"
-                               , "ObjectFactoryBuilder"
-                               , "ObjectHelper"
-                               , "ObjectHolder"
-                               , "ObjectIdHelper"
-                               , "ObjectImpl"
-                               , "ObjectInput"
-                               , "ObjectInputStream"
-                               , "ObjectInputStream.GetField"
-                               , "ObjectInputValidation"
-                               , "ObjectInstance"
-                               , "ObjectName"
-                               , "ObjectNotActive"
-                               , "ObjectNotActiveHelper"
-                               , "ObjectOutput"
-                               , "ObjectOutputStream"
-                               , "ObjectOutputStream.PutField"
-                               , "ObjectReferenceFactory"
-                               , "ObjectReferenceFactoryHelper"
-                               , "ObjectReferenceFactoryHolder"
-                               , "ObjectReferenceTemplate"
-                               , "ObjectReferenceTemplateHelper"
-                               , "ObjectReferenceTemplateHolder"
-                               , "ObjectReferenceTemplateSeqHelper"
-                               , "ObjectReferenceTemplateSeqHolder"
-                               , "ObjectStreamClass"
-                               , "ObjectStreamConstants"
-                               , "ObjectStreamException"
-                               , "ObjectStreamField"
-                               , "ObjectView"
-                               , "Observable"
-                               , "Observer"
-                               , "OceanTheme"
-                               , "OctetSeqHelper"
-                               , "OctetSeqHolder"
-                               , "OctetStreamData"
-                               , "Oid"
-                               , "Oneway"
-                               , "OpenDataException"
-                               , "OpenMBeanAttributeInfo"
-                               , "OpenMBeanAttributeInfoSupport"
-                               , "OpenMBeanConstructorInfo"
-                               , "OpenMBeanConstructorInfoSupport"
-                               , "OpenMBeanInfo"
-                               , "OpenMBeanInfoSupport"
-                               , "OpenMBeanOperationInfo"
-                               , "OpenMBeanOperationInfoSupport"
-                               , "OpenMBeanParameterInfo"
-                               , "OpenMBeanParameterInfoSupport"
-                               , "OpenType"
-                               , "OperatingSystemMXBean"
-                               , "Operation"
-                               , "OperationNotSupportedException"
-                               , "OperationsException"
-                               , "Option"
-                               , "OptionChecker"
-                               , "OptionPaneUI"
-                               , "OptionalDataException"
-                               , "OrientationRequested"
-                               , "OutOfMemoryError"
-                               , "OutputDeviceAssigned"
-                               , "OutputKeys"
-                               , "OutputStream"
-                               , "OutputStreamWriter"
-                               , "OverlappingFileLockException"
-                               , "OverlayLayout"
-                               , "Override"
-                               , "Owner"
-                               , "PBEKey"
-                               , "PBEKeySpec"
-                               , "PBEParameterSpec"
-                               , "PDLOverrideSupported"
-                               , "PERSIST_STORE"
-                               , "PGPData"
-                               , "PKCS8EncodedKeySpec"
-                               , "PKIXBuilderParameters"
-                               , "PKIXCertPathBuilderResult"
-                               , "PKIXCertPathChecker"
-                               , "PKIXCertPathValidatorResult"
-                               , "PKIXParameters"
-                               , "POA"
-                               , "POAHelper"
-                               , "POAManager"
-                               , "POAManagerOperations"
-                               , "POAOperations"
-                               , "PRIVATE_MEMBER"
-                               , "PSSParameterSpec"
-                               , "PSource"
-                               , "PSource.PSpecified"
-                               , "PUBLIC_MEMBER"
-                               , "Pack200"
-                               , "Pack200.Packer"
-                               , "Pack200.Unpacker"
-                               , "Package"
-                               , "PackageElement"
-                               , "PackedColorModel"
-                               , "PageAttributes"
-                               , "PageAttributes.ColorType"
-                               , "PageAttributes.MediaType"
-                               , "PageAttributes.OrientationRequestedType"
-                               , "PageAttributes.OriginType"
-                               , "PageAttributes.PrintQualityType"
-                               , "PageFormat"
-                               , "PageRanges"
-                               , "Pageable"
-                               , "PagedResultsControl"
-                               , "PagedResultsResponseControl"
-                               , "PagesPerMinute"
-                               , "PagesPerMinuteColor"
-                               , "Paint"
-                               , "PaintContext"
-                               , "PaintEvent"
-                               , "Panel"
-                               , "PanelUI"
-                               , "Paper"
-                               , "ParagraphView"
-                               , "Parameter"
-                               , "ParameterBlock"
-                               , "ParameterDescriptor"
-                               , "ParameterMetaData"
-                               , "ParameterMode"
-                               , "ParameterModeHelper"
-                               , "ParameterModeHolder"
-                               , "ParameterizedType"
-                               , "ParseConversionEvent"
-                               , "ParseConversionEventImpl"
-                               , "ParseException"
-                               , "ParsePosition"
-                               , "Parser"
-                               , "ParserAdapter"
-                               , "ParserConfigurationException"
-                               , "ParserDelegator"
-                               , "ParserFactory"
-                               , "PartialResultException"
-                               , "PasswordAuthentication"
-                               , "PasswordCallback"
-                               , "PasswordView"
-                               , "Patch"
-                               , "Path2D"
-                               , "PathIterator"
-                               , "Pattern"
-                               , "PatternSyntaxException"
-                               , "Permission"
-                               , "PermissionCollection"
-                               , "Permissions"
-                               , "PersistenceDelegate"
-                               , "PersistentMBean"
-                               , "PhantomReference"
-                               , "Pipe"
-                               , "Pipe.SinkChannel"
-                               , "Pipe.SourceChannel"
-                               , "PipedInputStream"
-                               , "PipedOutputStream"
-                               , "PipedReader"
-                               , "PipedWriter"
-                               , "PixelGrabber"
-                               , "PixelInterleavedSampleModel"
-                               , "PlainDocument"
-                               , "PlainView"
-                               , "Point"
-                               , "Point2D"
-                               , "Point2D.Double"
-                               , "Point2D.Float"
-                               , "PointerInfo"
-                               , "Policy"
-                               , "PolicyError"
-                               , "PolicyErrorCodeHelper"
-                               , "PolicyErrorHelper"
-                               , "PolicyErrorHolder"
-                               , "PolicyFactory"
-                               , "PolicyFactoryOperations"
-                               , "PolicyHelper"
-                               , "PolicyHolder"
-                               , "PolicyListHelper"
-                               , "PolicyListHolder"
-                               , "PolicyNode"
-                               , "PolicyOperations"
-                               , "PolicyQualifierInfo"
-                               , "PolicySpi"
-                               , "PolicyTypeHelper"
-                               , "Polygon"
-                               , "PooledConnection"
-                               , "Popup"
-                               , "PopupFactory"
-                               , "PopupMenu"
-                               , "PopupMenuEvent"
-                               , "PopupMenuListener"
-                               , "PopupMenuUI"
-                               , "Port"
-                               , "Port.Info"
-                               , "PortInfo"
-                               , "PortUnreachableException"
-                               , "PortableRemoteObject"
-                               , "PortableRemoteObjectDelegate"
-                               , "Position"
-                               , "Position.Bias"
-                               , "PostConstruct"
-                               , "PreDestroy"
-                               , "Predicate"
-                               , "PreferenceChangeEvent"
-                               , "PreferenceChangeListener"
-                               , "Preferences"
-                               , "PreferencesFactory"
-                               , "PreparedStatement"
-                               , "PresentationDirection"
-                               , "PrimitiveType"
-                               , "Principal"
-                               , "PrincipalHolder"
-                               , "PrintConversionEvent"
-                               , "PrintConversionEventImpl"
-                               , "PrintEvent"
-                               , "PrintException"
-                               , "PrintGraphics"
-                               , "PrintJob"
-                               , "PrintJobAdapter"
-                               , "PrintJobAttribute"
-                               , "PrintJobAttributeEvent"
-                               , "PrintJobAttributeListener"
-                               , "PrintJobAttributeSet"
-                               , "PrintJobEvent"
-                               , "PrintJobListener"
-                               , "PrintQuality"
-                               , "PrintRequestAttribute"
-                               , "PrintRequestAttributeSet"
-                               , "PrintService"
-                               , "PrintServiceAttribute"
-                               , "PrintServiceAttributeEvent"
-                               , "PrintServiceAttributeListener"
-                               , "PrintServiceAttributeSet"
-                               , "PrintServiceLookup"
-                               , "PrintStream"
-                               , "PrintWriter"
-                               , "Printable"
-                               , "PrinterAbortException"
-                               , "PrinterException"
-                               , "PrinterGraphics"
-                               , "PrinterIOException"
-                               , "PrinterInfo"
-                               , "PrinterIsAcceptingJobs"
-                               , "PrinterJob"
-                               , "PrinterLocation"
-                               , "PrinterMakeAndModel"
-                               , "PrinterMessageFromOperator"
-                               , "PrinterMoreInfo"
-                               , "PrinterMoreInfoManufacturer"
-                               , "PrinterName"
-                               , "PrinterResolution"
-                               , "PrinterState"
-                               , "PrinterStateReason"
-                               , "PrinterStateReasons"
-                               , "PrinterURI"
-                               , "PriorityBlockingQueue"
-                               , "PriorityQueue"
-                               , "PrivateClassLoader"
-                               , "PrivateCredentialPermission"
-                               , "PrivateKey"
-                               , "PrivateMLet"
-                               , "PrivilegedAction"
-                               , "PrivilegedActionException"
-                               , "PrivilegedExceptionAction"
-                               , "Process"
-                               , "ProcessBuilder"
-                               , "ProcessingEnvironment"
-                               , "ProcessingInstruction"
-                               , "Processor"
-                               , "ProfileDataException"
-                               , "ProfileIdHelper"
-                               , "ProgressBarUI"
-                               , "ProgressMonitor"
-                               , "ProgressMonitorInputStream"
-                               , "Properties"
-                               , "PropertyChangeEvent"
-                               , "PropertyChangeListener"
-                               , "PropertyChangeListenerProxy"
-                               , "PropertyChangeSupport"
-                               , "PropertyDescriptor"
-                               , "PropertyEditor"
-                               , "PropertyEditorManager"
-                               , "PropertyEditorSupport"
-                               , "PropertyException"
-                               , "PropertyPermission"
-                               , "PropertyResourceBundle"
-                               , "PropertyVetoException"
-                               , "ProtectionDomain"
-                               , "ProtocolException"
-                               , "Provider"
-                               , "Provider.Service"
-                               , "ProviderException"
-                               , "Proxy"
-                               , "Proxy.Type"
-                               , "ProxySelector"
-                               , "PublicKey"
-                               , "PushbackInputStream"
-                               , "PushbackReader"
-                               , "QName"
-                               , "QuadCurve2D"
-                               , "QuadCurve2D.Double"
-                               , "QuadCurve2D.Float"
-                               , "Query"
-                               , "QueryEval"
-                               , "QueryExp"
-                               , "Queue"
-                               , "QueuedJobCount"
-                               , "RC2ParameterSpec"
-                               , "RC5ParameterSpec"
-                               , "REBIND"
-                               , "REQUEST_PROCESSING_POLICY_ID"
-                               , "RGBImageFilter"
-                               , "RMIClassLoader"
-                               , "RMIClassLoaderSpi"
-                               , "RMIClientSocketFactory"
-                               , "RMIConnection"
-                               , "RMIConnectionImpl"
-                               , "RMIConnectionImpl_Stub"
-                               , "RMIConnector"
-                               , "RMIConnectorServer"
-                               , "RMICustomMaxStreamFormat"
-                               , "RMIFailureHandler"
-                               , "RMIIIOPServerImpl"
-                               , "RMIJRMPServerImpl"
-                               , "RMISecurityException"
-                               , "RMISecurityManager"
-                               , "RMIServer"
-                               , "RMIServerImpl"
-                               , "RMIServerImpl_Stub"
-                               , "RMIServerSocketFactory"
-                               , "RMISocketFactory"
-                               , "RSAKey"
-                               , "RSAKeyGenParameterSpec"
-                               , "RSAMultiPrimePrivateCrtKey"
-                               , "RSAMultiPrimePrivateCrtKeySpec"
-                               , "RSAOtherPrimeInfo"
-                               , "RSAPrivateCrtKey"
-                               , "RSAPrivateCrtKeySpec"
-                               , "RSAPrivateKey"
-                               , "RSAPrivateKeySpec"
-                               , "RSAPublicKey"
-                               , "RSAPublicKeySpec"
-                               , "RTFEditorKit"
-                               , "RadialGradientPaint"
-                               , "Random"
-                               , "RandomAccess"
-                               , "RandomAccessFile"
-                               , "Raster"
-                               , "RasterFormatException"
-                               , "RasterOp"
-                               , "Rdn"
-                               , "ReadOnlyBufferException"
-                               , "ReadWriteLock"
-                               , "Readable"
-                               , "ReadableByteChannel"
-                               , "Reader"
-                               , "RealmCallback"
-                               , "RealmChoiceCallback"
-                               , "Receiver"
-                               , "Rectangle"
-                               , "Rectangle2D"
-                               , "Rectangle2D.Double"
-                               , "Rectangle2D.Float"
-                               , "RectangularShape"
-                               , "ReentrantLock"
-                               , "ReentrantReadWriteLock"
-                               , "ReentrantReadWriteLock.ReadLock"
-                               , "ReentrantReadWriteLock.WriteLock"
-                               , "Ref"
-                               , "RefAddr"
-                               , "Reference"
-                               , "ReferenceQueue"
-                               , "ReferenceType"
-                               , "ReferenceUriSchemesSupported"
-                               , "Referenceable"
-                               , "ReferralException"
-                               , "ReflectPermission"
-                               , "ReflectionException"
-                               , "RefreshFailedException"
-                               , "Refreshable"
-                               , "Region"
-                               , "RegisterableService"
-                               , "Registry"
-                               , "RegistryHandler"
-                               , "RejectedExecutionException"
-                               , "RejectedExecutionHandler"
-                               , "Relation"
-                               , "RelationException"
-                               , "RelationNotFoundException"
-                               , "RelationNotification"
-                               , "RelationService"
-                               , "RelationServiceMBean"
-                               , "RelationServiceNotRegisteredException"
-                               , "RelationSupport"
-                               , "RelationSupportMBean"
-                               , "RelationType"
-                               , "RelationTypeNotFoundException"
-                               , "RelationTypeSupport"
-                               , "RemarshalException"
-                               , "Remote"
-                               , "RemoteCall"
-                               , "RemoteException"
-                               , "RemoteObject"
-                               , "RemoteObjectInvocationHandler"
-                               , "RemoteRef"
-                               , "RemoteServer"
-                               , "RemoteStub"
-                               , "RenderContext"
-                               , "RenderableImage"
-                               , "RenderableImageOp"
-                               , "RenderableImageProducer"
-                               , "RenderedImage"
-                               , "RenderedImageFactory"
-                               , "Renderer"
-                               , "RenderingHints"
-                               , "RenderingHints.Key"
-                               , "RepaintManager"
-                               , "ReplicateScaleFilter"
-                               , "RepositoryIdHelper"
-                               , "Request"
-                               , "RequestInfo"
-                               , "RequestInfoOperations"
-                               , "RequestProcessingPolicy"
-                               , "RequestProcessingPolicyOperations"
-                               , "RequestProcessingPolicyValue"
-                               , "RequestWrapper"
-                               , "RequestingUserName"
-                               , "RequiredModelMBean"
-                               , "RescaleOp"
-                               , "ResolutionSyntax"
-                               , "ResolveResult"
-                               , "Resolver"
-                               , "Resource"
-                               , "ResourceBundle"
-                               , "Resources"
-                               , "Response"
-                               , "ResponseCache"
-                               , "ResponseHandler"
-                               , "ResponseWrapper"
-                               , "Result"
-                               , "ResultSet"
-                               , "ResultSetMetaData"
-                               , "Retention"
-                               , "RetentionPolicy"
-                               , "RetrievalMethod"
-                               , "ReverbType"
-                               , "Robot"
-                               , "Role"
-                               , "RoleInfo"
-                               , "RoleInfoNotFoundException"
-                               , "RoleList"
-                               , "RoleNotFoundException"
-                               , "RoleResult"
-                               , "RoleStatus"
-                               , "RoleUnresolved"
-                               , "RoleUnresolvedList"
-                               , "RootPaneContainer"
-                               , "RootPaneUI"
-                               , "RoundEnvironment"
-                               , "RoundRectangle2D"
-                               , "RoundRectangle2D.Double"
-                               , "RoundRectangle2D.Float"
-                               , "RoundingMode"
-                               , "RowFilter"
-                               , "RowId"
-                               , "RowIdLifetime"
-                               , "RowMapper"
-                               , "RowSet"
-                               , "RowSetEvent"
-                               , "RowSetInternal"
-                               , "RowSetListener"
-                               , "RowSetMetaData"
-                               , "RowSetMetaDataImpl"
-                               , "RowSetReader"
-                               , "RowSetWarning"
-                               , "RowSetWriter"
-                               , "RowSorter"
-                               , "RowSorterEvent"
-                               , "RowSorterListener"
-                               , "RuleBasedCollator"
-                               , "RunTime"
-                               , "RunTimeOperations"
-                               , "Runnable"
-                               , "RunnableFuture"
-                               , "RunnableScheduledFuture"
-                               , "Runtime"
-                               , "RuntimeErrorException"
-                               , "RuntimeException"
-                               , "RuntimeMBeanException"
-                               , "RuntimeMXBean"
-                               , "RuntimeOperationsException"
-                               , "RuntimePermission"
-                               , "SAAJMetaFactory"
-                               , "SAAJResult"
-                               , "SAXException"
-                               , "SAXNotRecognizedException"
-                               , "SAXNotSupportedException"
-                               , "SAXParseException"
-                               , "SAXParser"
-                               , "SAXParserFactory"
-                               , "SAXResult"
-                               , "SAXSource"
-                               , "SAXTransformerFactory"
-                               , "SERVANT_RETENTION_POLICY_ID"
-                               , "SOAPBinding"
-                               , "SOAPBody"
-                               , "SOAPBodyElement"
-                               , "SOAPConnection"
-                               , "SOAPConnectionFactory"
-                               , "SOAPConstants"
-                               , "SOAPElement"
-                               , "SOAPElementFactory"
-                               , "SOAPEnvelope"
-                               , "SOAPException"
-                               , "SOAPFactory"
-                               , "SOAPFault"
-                               , "SOAPFaultElement"
-                               , "SOAPFaultException"
-                               , "SOAPHandler"
-                               , "SOAPHeader"
-                               , "SOAPHeaderElement"
-                               , "SOAPMessage"
-                               , "SOAPMessageContext"
-                               , "SOAPMessageHandler"
-                               , "SOAPMessageHandlers"
-                               , "SOAPPart"
-                               , "SQLClientInfoException"
-                               , "SQLData"
-                               , "SQLDataException"
-                               , "SQLException"
-                               , "SQLFeatureNotSupportedException"
-                               , "SQLInput"
-                               , "SQLInputImpl"
-                               , "SQLIntegrityConstraintViolationException"
-                               , "SQLInvalidAuthorizationSpecException"
-                               , "SQLNonTransientConnectionException"
-                               , "SQLNonTransientException"
-                               , "SQLOutput"
-                               , "SQLOutputImpl"
-                               , "SQLPermission"
-                               , "SQLRecoverableException"
-                               , "SQLSyntaxErrorException"
-                               , "SQLTimeoutException"
-                               , "SQLTransactionRollbackException"
-                               , "SQLTransientConnectionException"
-                               , "SQLTransientException"
-                               , "SQLWarning"
-                               , "SQLXML"
-                               , "SSLContext"
-                               , "SSLContextSpi"
-                               , "SSLEngine"
-                               , "SSLEngineResult"
-                               , "SSLEngineResult.HandshakeStatus"
-                               , "SSLEngineResult.Status"
-                               , "SSLException"
-                               , "SSLHandshakeException"
-                               , "SSLKeyException"
-                               , "SSLParameters"
-                               , "SSLPeerUnverifiedException"
-                               , "SSLPermission"
-                               , "SSLProtocolException"
-                               , "SSLServerSocket"
-                               , "SSLServerSocketFactory"
-                               , "SSLSession"
-                               , "SSLSessionBindingEvent"
-                               , "SSLSessionBindingListener"
-                               , "SSLSessionContext"
-                               , "SSLSocket"
-                               , "SSLSocketFactory"
-                               , "SUCCESSFUL"
-                               , "SYNC_WITH_TRANSPORT"
-                               , "SYSTEM_EXCEPTION"
-                               , "SampleModel"
-                               , "Sasl"
-                               , "SaslClient"
-                               , "SaslClientFactory"
-                               , "SaslException"
-                               , "SaslServer"
-                               , "SaslServerFactory"
-                               , "Savepoint"
-                               , "Scanner"
-                               , "ScatteringByteChannel"
-                               , "ScheduledExecutorService"
-                               , "ScheduledFuture"
-                               , "ScheduledThreadPoolExecutor"
-                               , "Schema"
-                               , "SchemaFactory"
-                               , "SchemaFactoryLoader"
-                               , "SchemaOutputResolver"
-                               , "SchemaViolationException"
-                               , "ScriptContext"
-                               , "ScriptEngine"
-                               , "ScriptEngineFactory"
-                               , "ScriptEngineManager"
-                               , "ScriptException"
-                               , "ScrollBarUI"
-                               , "ScrollPane"
-                               , "ScrollPaneAdjustable"
-                               , "ScrollPaneConstants"
-                               , "ScrollPaneLayout"
-                               , "ScrollPaneLayout.UIResource"
-                               , "ScrollPaneUI"
-                               , "Scrollable"
-                               , "Scrollbar"
-                               , "SealedObject"
-                               , "SearchControls"
-                               , "SearchResult"
-                               , "SecretKey"
-                               , "SecretKeyFactory"
-                               , "SecretKeyFactorySpi"
-                               , "SecretKeySpec"
-                               , "SecureCacheResponse"
-                               , "SecureClassLoader"
-                               , "SecureRandom"
-                               , "SecureRandomSpi"
-                               , "Security"
-                               , "SecurityException"
-                               , "SecurityManager"
-                               , "SecurityPermission"
-                               , "Segment"
-                               , "SelectableChannel"
-                               , "SelectionKey"
-                               , "Selector"
-                               , "SelectorProvider"
-                               , "Semaphore"
-                               , "SeparatorUI"
-                               , "Sequence"
-                               , "SequenceInputStream"
-                               , "Sequencer"
-                               , "Sequencer.SyncMode"
-                               , "SerialArray"
-                               , "SerialBlob"
-                               , "SerialClob"
-                               , "SerialDatalink"
-                               , "SerialException"
-                               , "SerialJavaObject"
-                               , "SerialRef"
-                               , "SerialStruct"
-                               , "Serializable"
-                               , "SerializablePermission"
-                               , "Servant"
-                               , "ServantActivator"
-                               , "ServantActivatorHelper"
-                               , "ServantActivatorOperations"
-                               , "ServantActivatorPOA"
-                               , "ServantAlreadyActive"
-                               , "ServantAlreadyActiveHelper"
-                               , "ServantLocator"
-                               , "ServantLocatorHelper"
-                               , "ServantLocatorOperations"
-                               , "ServantLocatorPOA"
-                               , "ServantManager"
-                               , "ServantManagerOperations"
-                               , "ServantNotActive"
-                               , "ServantNotActiveHelper"
-                               , "ServantObject"
-                               , "ServantRetentionPolicy"
-                               , "ServantRetentionPolicyOperations"
-                               , "ServantRetentionPolicyValue"
-                               , "ServerCloneException"
-                               , "ServerError"
-                               , "ServerException"
-                               , "ServerIdHelper"
-                               , "ServerNotActiveException"
-                               , "ServerRef"
-                               , "ServerRequest"
-                               , "ServerRequestInfo"
-                               , "ServerRequestInfoOperations"
-                               , "ServerRequestInterceptor"
-                               , "ServerRequestInterceptorOperations"
-                               , "ServerRuntimeException"
-                               , "ServerSocket"
-                               , "ServerSocketChannel"
-                               , "ServerSocketFactory"
-                               , "Service"
-                               , "ServiceConfigurationError"
-                               , "ServiceContext"
-                               , "ServiceContextHelper"
-                               , "ServiceContextHolder"
-                               , "ServiceContextListHelper"
-                               , "ServiceContextListHolder"
-                               , "ServiceDelegate"
-                               , "ServiceDetail"
-                               , "ServiceDetailHelper"
-                               , "ServiceIdHelper"
-                               , "ServiceInformation"
-                               , "ServiceInformationHelper"
-                               , "ServiceInformationHolder"
-                               , "ServiceLoader"
-                               , "ServiceMode"
-                               , "ServiceNotFoundException"
-                               , "ServicePermission"
-                               , "ServiceRegistry"
-                               , "ServiceRegistry.Filter"
-                               , "ServiceUI"
-                               , "ServiceUIFactory"
-                               , "ServiceUnavailableException"
-                               , "Set"
-                               , "SetOfIntegerSyntax"
-                               , "SetOverrideType"
-                               , "SetOverrideTypeHelper"
-                               , "Severity"
-                               , "Shape"
-                               , "ShapeGraphicAttribute"
-                               , "SheetCollate"
-                               , "Short"
-                               , "ShortBuffer"
-                               , "ShortBufferException"
-                               , "ShortHolder"
-                               , "ShortLookupTable"
-                               , "ShortMessage"
-                               , "ShortSeqHelper"
-                               , "ShortSeqHolder"
-                               , "Sides"
-                               , "Signature"
-                               , "SignatureException"
-                               , "SignatureMethod"
-                               , "SignatureMethodParameterSpec"
-                               , "SignatureProperties"
-                               , "SignatureProperty"
-                               , "SignatureSpi"
-                               , "SignedInfo"
-                               , "SignedObject"
-                               , "Signer"
-                               , "SimpleAnnotationValueVisitor6"
-                               , "SimpleAttributeSet"
-                               , "SimpleBeanInfo"
-                               , "SimpleBindings"
-                               , "SimpleDateFormat"
-                               , "SimpleDoc"
-                               , "SimpleElementVisitor6"
-                               , "SimpleFormatter"
-                               , "SimpleJavaFileObject"
-                               , "SimpleScriptContext"
-                               , "SimpleTimeZone"
-                               , "SimpleType"
-                               , "SimpleTypeVisitor6"
-                               , "SinglePixelPackedSampleModel"
-                               , "SingleSelectionModel"
-                               , "Size2DSyntax"
-                               , "SizeLimitExceededException"
-                               , "SizeRequirements"
-                               , "SizeSequence"
-                               , "Skeleton"
-                               , "SkeletonMismatchException"
-                               , "SkeletonNotFoundException"
-                               , "SliderUI"
-                               , "Socket"
-                               , "SocketAddress"
-                               , "SocketChannel"
-                               , "SocketException"
-                               , "SocketFactory"
-                               , "SocketHandler"
-                               , "SocketImpl"
-                               , "SocketImplFactory"
-                               , "SocketOptions"
-                               , "SocketPermission"
-                               , "SocketSecurityException"
-                               , "SocketTimeoutException"
-                               , "SoftBevelBorder"
-                               , "SoftReference"
-                               , "SortControl"
-                               , "SortKey"
-                               , "SortOrder"
-                               , "SortResponseControl"
-                               , "SortedMap"
-                               , "SortedSet"
-                               , "SortingFocusTraversalPolicy"
-                               , "Soundbank"
-                               , "SoundbankReader"
-                               , "SoundbankResource"
-                               , "Source"
-                               , "SourceDataLine"
-                               , "SourceLocator"
-                               , "SourceVersion"
-                               , "SpinnerDateModel"
-                               , "SpinnerListModel"
-                               , "SpinnerModel"
-                               , "SpinnerNumberModel"
-                               , "SpinnerUI"
-                               , "SplashScreen"
-                               , "SplitPaneUI"
-                               , "Spring"
-                               , "SpringLayout"
-                               , "SpringLayout.Constraints"
-                               , "SslRMIClientSocketFactory"
-                               , "SslRMIServerSocketFactory"
-                               , "StAXResult"
-                               , "StAXSource"
-                               , "Stack"
-                               , "StackOverflowError"
-                               , "StackTraceElement"
-                               , "StandardEmitterMBean"
-                               , "StandardJavaFileManager"
-                               , "StandardLocation"
-                               , "StandardMBean"
-                               , "StartDocument"
-                               , "StartElement"
-                               , "StartTlsRequest"
-                               , "StartTlsResponse"
-                               , "State"
-                               , "StateEdit"
-                               , "StateEditable"
-                               , "StateFactory"
-                               , "Statement"
-                               , "StatementEvent"
-                               , "StatementEventListener"
-                               , "StreamCorruptedException"
-                               , "StreamFilter"
-                               , "StreamHandler"
-                               , "StreamPrintService"
-                               , "StreamPrintServiceFactory"
-                               , "StreamReaderDelegate"
-                               , "StreamResult"
-                               , "StreamSource"
-                               , "StreamTokenizer"
-                               , "Streamable"
-                               , "StreamableValue"
-                               , "StrictMath"
-                               , "String"
-                               , "StringBuffer"
-                               , "StringBufferInputStream"
-                               , "StringBuilder"
-                               , "StringCharacterIterator"
-                               , "StringContent"
-                               , "StringHolder"
-                               , "StringIndexOutOfBoundsException"
-                               , "StringMonitor"
-                               , "StringMonitorMBean"
-                               , "StringNameHelper"
-                               , "StringReader"
-                               , "StringRefAddr"
-                               , "StringSelection"
-                               , "StringSeqHelper"
-                               , "StringSeqHolder"
-                               , "StringTokenizer"
-                               , "StringValueExp"
-                               , "StringValueHelper"
-                               , "StringWriter"
-                               , "Stroke"
-                               , "Struct"
-                               , "StructMember"
-                               , "StructMemberHelper"
-                               , "Stub"
-                               , "StubDelegate"
-                               , "StubNotFoundException"
-                               , "Style"
-                               , "StyleConstants"
-                               , "StyleConstants.CharacterConstants"
-                               , "StyleConstants.ColorConstants"
-                               , "StyleConstants.FontConstants"
-                               , "StyleConstants.ParagraphConstants"
-                               , "StyleContext"
-                               , "StyleSheet"
-                               , "StyleSheet.BoxPainter"
-                               , "StyleSheet.ListPainter"
-                               , "StyledDocument"
-                               , "StyledEditorKit"
-                               , "StyledEditorKit.AlignmentAction"
-                               , "StyledEditorKit.BoldAction"
-                               , "StyledEditorKit.FontFamilyAction"
-                               , "StyledEditorKit.FontSizeAction"
-                               , "StyledEditorKit.ForegroundAction"
-                               , "StyledEditorKit.ItalicAction"
-                               , "StyledEditorKit.StyledTextAction"
-                               , "StyledEditorKit.UnderlineAction"
-                               , "Subject"
-                               , "SubjectDelegationPermission"
-                               , "SubjectDomainCombiner"
-                               , "SupportedAnnotationTypes"
-                               , "SupportedOptions"
-                               , "SupportedSourceVersion"
-                               , "SupportedValuesAttribute"
-                               , "SuppressWarnings"
-                               , "SwingConstants"
-                               , "SwingPropertyChangeSupport"
-                               , "SwingUtilities"
-                               , "SwingWorker"
-                               , "SyncFactory"
-                               , "SyncFactoryException"
-                               , "SyncFailedException"
-                               , "SyncProvider"
-                               , "SyncProviderException"
-                               , "SyncResolver"
-                               , "SyncScopeHelper"
-                               , "SynchronousQueue"
-                               , "SynthConstants"
-                               , "SynthContext"
-                               , "SynthGraphicsUtils"
-                               , "SynthLookAndFeel"
-                               , "SynthPainter"
-                               , "SynthStyle"
-                               , "SynthStyleFactory"
-                               , "Synthesizer"
-                               , "SysexMessage"
-                               , "System"
-                               , "SystemColor"
-                               , "SystemException"
-                               , "SystemFlavorMap"
-                               , "SystemTray"
-                               , "TAG_ALTERNATE_IIOP_ADDRESS"
-                               , "TAG_CODE_SETS"
-                               , "TAG_INTERNET_IOP"
-                               , "TAG_JAVA_CODEBASE"
-                               , "TAG_MULTIPLE_COMPONENTS"
-                               , "TAG_ORB_TYPE"
-                               , "TAG_POLICIES"
-                               , "TAG_RMI_CUSTOM_MAX_STREAM_FORMAT"
-                               , "TCKind"
-                               , "THREAD_POLICY_ID"
-                               , "TIMEOUT"
-                               , "TRANSACTION_MODE"
-                               , "TRANSACTION_REQUIRED"
-                               , "TRANSACTION_ROLLEDBACK"
-                               , "TRANSACTION_UNAVAILABLE"
-                               , "TRANSIENT"
-                               , "TRANSPORT_RETRY"
-                               , "TabExpander"
-                               , "TabSet"
-                               , "TabStop"
-                               , "TabableView"
-                               , "TabbedPaneUI"
-                               , "TableCellEditor"
-                               , "TableCellRenderer"
-                               , "TableColumn"
-                               , "TableColumnModel"
-                               , "TableColumnModelEvent"
-                               , "TableColumnModelListener"
-                               , "TableHeaderUI"
-                               , "TableModel"
-                               , "TableModelEvent"
-                               , "TableModelListener"
-                               , "TableRowSorter"
-                               , "TableStringConverter"
-                               , "TableUI"
-                               , "TableView"
-                               , "TabularData"
-                               , "TabularDataSupport"
-                               , "TabularType"
-                               , "TagElement"
-                               , "TaggedComponent"
-                               , "TaggedComponentHelper"
-                               , "TaggedComponentHolder"
-                               , "TaggedProfile"
-                               , "TaggedProfileHelper"
-                               , "TaggedProfileHolder"
-                               , "Target"
-                               , "TargetDataLine"
-                               , "TargetedNotification"
-                               , "Templates"
-                               , "TemplatesHandler"
-                               , "Text"
-                               , "TextAction"
-                               , "TextArea"
-                               , "TextAttribute"
-                               , "TextComponent"
-                               , "TextEvent"
-                               , "TextField"
-                               , "TextHitInfo"
-                               , "TextInputCallback"
-                               , "TextLayout"
-                               , "TextLayout.CaretPolicy"
-                               , "TextListener"
-                               , "TextMeasurer"
-                               , "TextOutputCallback"
-                               , "TextSyntax"
-                               , "TextUI"
-                               , "TexturePaint"
-                               , "Thread"
-                               , "Thread.State"
-                               , "Thread.UncaughtExceptionHandler"
-                               , "ThreadDeath"
-                               , "ThreadFactory"
-                               , "ThreadGroup"
-                               , "ThreadInfo"
-                               , "ThreadLocal"
-                               , "ThreadMXBean"
-                               , "ThreadPolicy"
-                               , "ThreadPolicyOperations"
-                               , "ThreadPolicyValue"
-                               , "ThreadPoolExecutor"
-                               , "ThreadPoolExecutor.AbortPolicy"
-                               , "ThreadPoolExecutor.CallerRunsPolicy"
-                               , "ThreadPoolExecutor.DiscardOldestPolicy"
-                               , "ThreadPoolExecutor.DiscardPolicy"
-                               , "Throwable"
-                               , "Tie"
-                               , "TileObserver"
-                               , "Time"
-                               , "TimeLimitExceededException"
-                               , "TimeUnit"
-                               , "TimeZone"
-                               , "TimeZoneNameProvider"
-                               , "TimeoutException"
-                               , "Timer"
-                               , "TimerAlarmClockNotification"
-                               , "TimerMBean"
-                               , "TimerNotification"
-                               , "TimerTask"
-                               , "Timestamp"
-                               , "TitledBorder"
-                               , "TooManyListenersException"
-                               , "Tool"
-                               , "ToolBarUI"
-                               , "ToolProvider"
-                               , "ToolTipManager"
-                               , "ToolTipUI"
-                               , "Toolkit"
-                               , "Track"
-                               , "TransactionRequiredException"
-                               , "TransactionRolledbackException"
-                               , "TransactionService"
-                               , "TransactionalWriter"
-                               , "TransferHandler"
-                               , "Transferable"
-                               , "Transform"
-                               , "TransformAttribute"
-                               , "TransformException"
-                               , "TransformParameterSpec"
-                               , "TransformService"
-                               , "Transformer"
-                               , "TransformerConfigurationException"
-                               , "TransformerException"
-                               , "TransformerFactory"
-                               , "TransformerFactoryConfigurationError"
-                               , "TransformerHandler"
-                               , "Transmitter"
-                               , "Transparency"
-                               , "TrayIcon"
-                               , "TreeCellEditor"
-                               , "TreeCellRenderer"
-                               , "TreeExpansionEvent"
-                               , "TreeExpansionListener"
-                               , "TreeMap"
-                               , "TreeModel"
-                               , "TreeModelEvent"
-                               , "TreeModelListener"
-                               , "TreeNode"
-                               , "TreePath"
-                               , "TreeSelectionEvent"
-                               , "TreeSelectionListener"
-                               , "TreeSelectionModel"
-                               , "TreeSet"
-                               , "TreeUI"
-                               , "TreeWillExpandListener"
-                               , "TrustAnchor"
-                               , "TrustManager"
-                               , "TrustManagerFactory"
-                               , "TrustManagerFactorySpi"
-                               , "Type"
-                               , "TypeCode"
-                               , "TypeCodeHolder"
-                               , "TypeConstraintException"
-                               , "TypeElement"
-                               , "TypeInfo"
-                               , "TypeInfoProvider"
-                               , "TypeKind"
-                               , "TypeKindVisitor6"
-                               , "TypeMirror"
-                               , "TypeMismatch"
-                               , "TypeMismatchHelper"
-                               , "TypeNotPresentException"
-                               , "TypeParameterElement"
-                               , "TypeVariable"
-                               , "TypeVisitor"
-                               , "Types"
-                               , "UID"
-                               , "UIDefaults"
-                               , "UIDefaults.ActiveValue"
-                               , "UIDefaults.LazyInputMap"
-                               , "UIDefaults.LazyValue"
-                               , "UIDefaults.ProxyLazyValue"
-                               , "UIEvent"
-                               , "UIManager"
-                               , "UIManager.LookAndFeelInfo"
-                               , "UIResource"
-                               , "ULongLongSeqHelper"
-                               , "ULongLongSeqHolder"
-                               , "ULongSeqHelper"
-                               , "ULongSeqHolder"
-                               , "UNKNOWN"
-                               , "UNSUPPORTED_POLICY"
-                               , "UNSUPPORTED_POLICY_VALUE"
-                               , "URI"
-                               , "URIDereferencer"
-                               , "URIException"
-                               , "URIParameter"
-                               , "URIReference"
-                               , "URIReferenceException"
-                               , "URIResolver"
-                               , "URISyntax"
-                               , "URISyntaxException"
-                               , "URL"
-                               , "URLClassLoader"
-                               , "URLConnection"
-                               , "URLDataSource"
-                               , "URLDecoder"
-                               , "URLEncoder"
-                               , "URLStreamHandler"
-                               , "URLStreamHandlerFactory"
-                               , "URLStringHelper"
-                               , "USER_EXCEPTION"
-                               , "UShortSeqHelper"
-                               , "UShortSeqHolder"
-                               , "UTFDataFormatException"
-                               , "UUID"
-                               , "UndeclaredThrowableException"
-                               , "UndoManager"
-                               , "UndoableEdit"
-                               , "UndoableEditEvent"
-                               , "UndoableEditListener"
-                               , "UndoableEditSupport"
-                               , "UnexpectedException"
-                               , "UnicastRemoteObject"
-                               , "UnionMember"
-                               , "UnionMemberHelper"
-                               , "UnknownAnnotationValueException"
-                               , "UnknownElementException"
-                               , "UnknownEncoding"
-                               , "UnknownEncodingHelper"
-                               , "UnknownError"
-                               , "UnknownException"
-                               , "UnknownFormatConversionException"
-                               , "UnknownFormatFlagsException"
-                               , "UnknownGroupException"
-                               , "UnknownHostException"
-                               , "UnknownObjectException"
-                               , "UnknownServiceException"
-                               , "UnknownTypeException"
-                               , "UnknownUserException"
-                               , "UnknownUserExceptionHelper"
-                               , "UnknownUserExceptionHolder"
-                               , "UnmappableCharacterException"
-                               , "UnmarshalException"
-                               , "Unmarshaller"
-                               , "UnmarshallerHandler"
-                               , "UnmodifiableClassException"
-                               , "UnmodifiableSetException"
-                               , "UnrecoverableEntryException"
-                               , "UnrecoverableKeyException"
-                               , "Unreferenced"
-                               , "UnresolvedAddressException"
-                               , "UnresolvedPermission"
-                               , "UnsatisfiedLinkError"
-                               , "UnsolicitedNotification"
-                               , "UnsolicitedNotificationEvent"
-                               , "UnsolicitedNotificationListener"
-                               , "UnsupportedAddressTypeException"
-                               , "UnsupportedAudioFileException"
-                               , "UnsupportedCallbackException"
-                               , "UnsupportedCharsetException"
-                               , "UnsupportedClassVersionError"
-                               , "UnsupportedDataTypeException"
-                               , "UnsupportedEncodingException"
-                               , "UnsupportedFlavorException"
-                               , "UnsupportedLookAndFeelException"
-                               , "UnsupportedOperationException"
-                               , "UserDataHandler"
-                               , "UserException"
-                               , "Util"
-                               , "UtilDelegate"
-                               , "Utilities"
-                               , "VMID"
-                               , "VM_ABSTRACT"
-                               , "VM_CUSTOM"
-                               , "VM_NONE"
-                               , "VM_TRUNCATABLE"
-                               , "ValidationEvent"
-                               , "ValidationEventCollector"
-                               , "ValidationEventHandler"
-                               , "ValidationEventImpl"
-                               , "ValidationEventLocator"
-                               , "ValidationEventLocatorImpl"
-                               , "ValidationException"
-                               , "Validator"
-                               , "ValidatorHandler"
-                               , "ValueBase"
-                               , "ValueBaseHelper"
-                               , "ValueBaseHolder"
-                               , "ValueExp"
-                               , "ValueFactory"
-                               , "ValueHandler"
-                               , "ValueHandlerMultiFormat"
-                               , "ValueInputStream"
-                               , "ValueMember"
-                               , "ValueMemberHelper"
-                               , "ValueOutputStream"
-                               , "VariableElement"
-                               , "VariableHeightLayoutCache"
-                               , "Vector"
-                               , "VerifyError"
-                               , "VersionSpecHelper"
-                               , "VetoableChangeListener"
-                               , "VetoableChangeListenerProxy"
-                               , "VetoableChangeSupport"
-                               , "View"
-                               , "ViewFactory"
-                               , "ViewportLayout"
-                               , "ViewportUI"
-                               , "VirtualMachineError"
-                               , "Visibility"
-                               , "VisibilityHelper"
-                               , "VoiceStatus"
-                               , "Void"
-                               , "VolatileImage"
-                               , "W3CDomHandler"
-                               , "WCharSeqHelper"
-                               , "WCharSeqHolder"
-                               , "WStringSeqHelper"
-                               , "WStringSeqHolder"
-                               , "WStringValueHelper"
-                               , "WeakHashMap"
-                               , "WeakReference"
-                               , "WebEndpoint"
-                               , "WebFault"
-                               , "WebMethod"
-                               , "WebParam"
-                               , "WebResult"
-                               , "WebRowSet"
-                               , "WebService"
-                               , "WebServiceClient"
-                               , "WebServiceContext"
-                               , "WebServiceException"
-                               , "WebServicePermission"
-                               , "WebServiceProvider"
-                               , "WebServiceRef"
-                               , "WebServiceRefs"
-                               , "WildcardType"
-                               , "Window"
-                               , "WindowAdapter"
-                               , "WindowConstants"
-                               , "WindowEvent"
-                               , "WindowFocusListener"
-                               , "WindowListener"
-                               , "WindowStateListener"
-                               , "WrappedPlainView"
-                               , "Wrapper"
-                               , "WritableByteChannel"
-                               , "WritableRaster"
-                               , "WritableRenderedImage"
-                               , "WriteAbortedException"
-                               , "Writer"
-                               , "WrongAdapter"
-                               , "WrongAdapterHelper"
-                               , "WrongPolicy"
-                               , "WrongPolicyHelper"
-                               , "WrongTransaction"
-                               , "WrongTransactionHelper"
-                               , "WrongTransactionHolder"
-                               , "X500Principal"
-                               , "X500PrivateCredential"
-                               , "X509CRL"
-                               , "X509CRLEntry"
-                               , "X509CRLSelector"
-                               , "X509CertSelector"
-                               , "X509Certificate"
-                               , "X509Data"
-                               , "X509EncodedKeySpec"
-                               , "X509ExtendedKeyManager"
-                               , "X509Extension"
-                               , "X509IssuerSerial"
-                               , "X509KeyManager"
-                               , "X509TrustManager"
-                               , "XAConnection"
-                               , "XADataSource"
-                               , "XAException"
-                               , "XAResource"
-                               , "XMLConstants"
-                               , "XMLCryptoContext"
-                               , "XMLDecoder"
-                               , "XMLEncoder"
-                               , "XMLEvent"
-                               , "XMLEventAllocator"
-                               , "XMLEventConsumer"
-                               , "XMLEventFactory"
-                               , "XMLEventReader"
-                               , "XMLEventWriter"
-                               , "XMLFilter"
-                               , "XMLFilterImpl"
-                               , "XMLFormatter"
-                               , "XMLGregorianCalendar"
-                               , "XMLInputFactory"
-                               , "XMLObject"
-                               , "XMLOutputFactory"
-                               , "XMLParseException"
-                               , "XMLReader"
-                               , "XMLReaderAdapter"
-                               , "XMLReaderFactory"
-                               , "XMLReporter"
-                               , "XMLResolver"
-                               , "XMLSignContext"
-                               , "XMLSignature"
-                               , "XMLSignatureException"
-                               , "XMLSignatureFactory"
-                               , "XMLStreamConstants"
-                               , "XMLStreamException"
-                               , "XMLStreamReader"
-                               , "XMLStreamWriter"
-                               , "XMLStructure"
-                               , "XMLValidateContext"
-                               , "XPath"
-                               , "XPathConstants"
-                               , "XPathException"
-                               , "XPathExpression"
-                               , "XPathExpressionException"
-                               , "XPathFactory"
-                               , "XPathFactoryConfigurationException"
-                               , "XPathFilter2ParameterSpec"
-                               , "XPathFilterParameterSpec"
-                               , "XPathFunction"
-                               , "XPathFunctionException"
-                               , "XPathFunctionResolver"
-                               , "XPathType"
-                               , "XPathVariableResolver"
-                               , "XSLTTransformParameterSpec"
-                               , "Xid"
-                               , "XmlAccessOrder"
-                               , "XmlAccessType"
-                               , "XmlAccessorOrder"
-                               , "XmlAccessorType"
-                               , "XmlAdapter"
-                               , "XmlAnyAttribute"
-                               , "XmlAnyElement"
-                               , "XmlAttachmentRef"
-                               , "XmlAttribute"
-                               , "XmlElement"
-                               , "XmlElementDecl"
-                               , "XmlElementRef"
-                               , "XmlElementRefs"
-                               , "XmlElementWrapper"
-                               , "XmlElements"
-                               , "XmlEnum"
-                               , "XmlEnumValue"
-                               , "XmlID"
-                               , "XmlIDREF"
-                               , "XmlInlineBinaryData"
-                               , "XmlJavaTypeAdapter"
-                               , "XmlJavaTypeAdapters"
-                               , "XmlList"
-                               , "XmlMimeType"
-                               , "XmlMixed"
-                               , "XmlNs"
-                               , "XmlNsForm"
-                               , "XmlReader"
-                               , "XmlRegistry"
-                               , "XmlRootElement"
-                               , "XmlSchema"
-                               , "XmlSchemaType"
-                               , "XmlSchemaTypes"
-                               , "XmlTransient"
-                               , "XmlType"
-                               , "XmlValue"
-                               , "XmlWriter"
-                               , "ZipEntry"
-                               , "ZipError"
-                               , "ZipException"
-                               , "ZipFile"
-                               , "ZipInputStream"
-                               , "ZipOutputStream"
-                               , "ZoneView"
-                               , "_BindingIteratorImplBase"
-                               , "_BindingIteratorStub"
-                               , "_DynAnyFactoryStub"
-                               , "_DynAnyStub"
-                               , "_DynArrayStub"
-                               , "_DynEnumStub"
-                               , "_DynFixedStub"
-                               , "_DynSequenceStub"
-                               , "_DynStructStub"
-                               , "_DynUnionStub"
-                               , "_DynValueStub"
-                               , "_IDLTypeStub"
-                               , "_NamingContextExtStub"
-                               , "_NamingContextImplBase"
-                               , "_NamingContextStub"
-                               , "_PolicyStub"
-                               , "_Remote_Stub"
-                               , "_ServantActivatorStub"
-                               , "_ServantLocatorStub"
-                               ])
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = AnyChar "fF"
-                              , rAttribute = FloatTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = True
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = StringDetect "L"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'\\\\u[0-9a-fA-F]{4}'"
-                              , reCompiled = Just (compileRegex True "'\\\\u[0-9a-fA-F]{4}'")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "//\\s*BEGIN.*$"
-                              , reCompiled = Just (compileRegex True "//\\s*BEGIN.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "//\\s*END.*$"
-                              , reCompiled = Just (compileRegex True "//\\s*END.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Java" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.(format|printf)\\b"
-                              , reCompiled = Just (compileRegex True "\\.(format|printf)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Java" , "EnterPrintf" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Java" , "Commentar 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Java" , "Commentar 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.{3,3}\\s+"
-                              , reCompiled = Just (compileRegex True "\\.{3,3}\\s+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(import\\s+static)\\b"
-                              , reCompiled = Just (compileRegex True "\\b(import\\s+static)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Java" , "StaticImports" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(package|import)\\b"
-                              , reCompiled = Just (compileRegex True "\\b(package|import)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Java" , "Imports" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b[_\\w][_\\w\\d]*(?=[\\s]*(/\\*\\s*\\d+\\s*\\*/\\s*)?[(])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\b[_\\w][_\\w\\d]*(?=[\\s]*(/\\*\\s*\\d+\\s*\\*/\\s*)?[(])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@[_\\w][_\\w\\d]*"
-                              , reCompiled = Just (compileRegex True "@[_\\w][_\\w\\d]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AttributeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[.]{1,1}"
-                              , reCompiled = Just (compileRegex True "[.]{1,1}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Java" , "Member" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Java" , "InFunctionCall" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ":!%&+,-/.*<=>?[]|~^;"
-                      , 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
-              }
-          )
-        , ( "Printf"
-          , Context
-              { cName = "Printf"
-              , cSyntax = "Java"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Java" , "PrintfString" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Java" , "InFunctionCall" )
-                      , 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
-              }
-          )
-        , ( "PrintfString"
-          , Context
-              { cName = "PrintfString"
-              , cSyntax = "Java"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "%(\\d+\\$)?(-|#|\\+|\\ |0|,|\\()*\\d*(\\.\\d+)?[a-hosxA-CEGHSX]"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "%(\\d+\\$)?(-|#|\\+|\\ |0|,|\\()*\\d*(\\.\\d+)?[a-hosxA-CEGHSX]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "%(\\d+\\$)?(-|#|\\+|\\ |0|,|\\()*\\d*(t|T)(a|A|b|B|c|C|d|D|e|F|h|H|I|j|k|l|L|m|M|N|p|P|Q|r|R|s|S|T|y|Y|z|Z)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "%(\\d+\\$)?(-|#|\\+|\\ |0|,|\\()*\\d*(t|T)(a|A|b|B|c|C|d|D|e|F|h|H|I|j|k|l|L|m|M|N|p|P|Q|r|R|s|S|T|y|Y|z|Z)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%(%|n)"
-                              , reCompiled = Just (compileRegex True "%(%|n)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "StaticImports"
-          , Context
-              { cName = "StaticImports"
-              , cSyntax = "Java"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*.*;"
-                              , reCompiled = Just (compileRegex True "\\s*.*;")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ImportTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Java"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\u[0-9a-fA-F]{4}"
-                              , reCompiled = Just (compileRegex True "\\\\u[0-9a-fA-F]{4}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Alfredo Luiz Foltran Fialho (alfoltran@ig.com.br)"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.java" ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Java\", sFilename = \"java.xml\", sShortname = \"Java\", sContexts = fromList [(\"Commentar 1\",Context {cName = \"Commentar 1\", cSyntax = \"Java\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Commentar 2\",Context {cName = \"Commentar 2\", cSyntax = \"Java\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"EnterPrintf\",Context {cName = \"EnterPrintf\", cSyntax = \"Java\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Java\",\"Printf\")]},Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"Imports\",Context {cName = \"Imports\", cSyntax = \"Java\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*.*;\", reCaseSensitive = True}), rAttribute = ImportTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"InFunctionCall\",Context {cName = \"InFunctionCall\", cSyntax = \"Java\", cRules = [Rule {rMatcher = IncludeRules (\"Java\",\"Normal\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Member\",Context {cName = \"Member\", cSyntax = \"Java\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[_a-zA-Z]\\\\w*(?=[\\\\s]*)\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Java\", cRules = [Rule {rMatcher = IncludeRules (\"Javadoc\",\"\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"@interface\",\"abstract\",\"break\",\"case\",\"catch\",\"class\",\"continue\",\"default\",\"do\",\"else\",\"enum\",\"extends\",\"false\",\"finally\",\"for\",\"goto\",\"if\",\"implements\",\"instanceof\",\"interface\",\"native\",\"new\",\"null\",\"private\",\"protected\",\"public\",\"return\",\"strictfp\",\"super\",\"switch\",\"synchronized\",\"this\",\"throw\",\"throws\",\"transient\",\"true\",\"try\",\"volatile\",\"while\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"boolean\",\"byte\",\"char\",\"const\",\"double\",\"final\",\"float\",\"int\",\"long\",\"short\",\"static\",\"void\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"ACTIVE\",\"ACTIVITY_COMPLETED\",\"ACTIVITY_REQUIRED\",\"ARG_IN\",\"ARG_INOUT\",\"ARG_OUT\",\"AWTError\",\"AWTEvent\",\"AWTEventListener\",\"AWTEventListenerProxy\",\"AWTEventMulticaster\",\"AWTException\",\"AWTKeyStroke\",\"AWTPermission\",\"AbstractAction\",\"AbstractAnnotationValueVisitor6\",\"AbstractBorder\",\"AbstractButton\",\"AbstractCellEditor\",\"AbstractCollection\",\"AbstractColorChooserPanel\",\"AbstractDocument\",\"AbstractDocument.AttributeContext\",\"AbstractDocument.Content\",\"AbstractDocument.ElementEdit\",\"AbstractElementVisitor6\",\"AbstractExecutorService\",\"AbstractInterruptibleChannel\",\"AbstractLayoutCache\",\"AbstractLayoutCache.NodeDimensions\",\"AbstractList\",\"AbstractListModel\",\"AbstractMap\",\"AbstractMarshallerImpl\",\"AbstractMethodError\",\"AbstractOwnableSynchronizer\",\"AbstractPreferences\",\"AbstractProcessor\",\"AbstractQueue\",\"AbstractQueuedLongSynchronizer\",\"AbstractQueuedSynchronizer\",\"AbstractScriptEngine\",\"AbstractSelectableChannel\",\"AbstractSelectionKey\",\"AbstractSelector\",\"AbstractSequentialList\",\"AbstractSet\",\"AbstractSpinnerModel\",\"AbstractTableModel\",\"AbstractTypeVisitor6\",\"AbstractUndoableEdit\",\"AbstractUnmarshallerImpl\",\"AbstractWriter\",\"AccessControlContext\",\"AccessControlException\",\"AccessController\",\"AccessException\",\"Accessible\",\"AccessibleAction\",\"AccessibleAttributeSequence\",\"AccessibleBundle\",\"AccessibleComponent\",\"AccessibleContext\",\"AccessibleEditableText\",\"AccessibleExtendedComponent\",\"AccessibleExtendedTable\",\"AccessibleExtendedText\",\"AccessibleHyperlink\",\"AccessibleHypertext\",\"AccessibleIcon\",\"AccessibleKeyBinding\",\"AccessibleObject\",\"AccessibleRelation\",\"AccessibleRelationSet\",\"AccessibleResourceBundle\",\"AccessibleRole\",\"AccessibleSelection\",\"AccessibleState\",\"AccessibleStateSet\",\"AccessibleStreamable\",\"AccessibleTable\",\"AccessibleTableModelChange\",\"AccessibleText\",\"AccessibleTextSequence\",\"AccessibleValue\",\"AccountException\",\"AccountExpiredException\",\"AccountLockedException\",\"AccountNotFoundException\",\"Acl\",\"AclEntry\",\"AclNotFoundException\",\"Action\",\"ActionEvent\",\"ActionListener\",\"ActionMap\",\"ActionMapUIResource\",\"Activatable\",\"ActivateFailedException\",\"ActivationDataFlavor\",\"ActivationDesc\",\"ActivationException\",\"ActivationGroup\",\"ActivationGroupDesc\",\"ActivationGroupDesc.CommandEnvironment\",\"ActivationGroupID\",\"ActivationGroup_Stub\",\"ActivationID\",\"ActivationInstantiator\",\"ActivationMonitor\",\"ActivationSystem\",\"Activator\",\"ActiveEvent\",\"ActivityCompletedException\",\"ActivityRequiredException\",\"AdapterActivator\",\"AdapterActivatorOperations\",\"AdapterAlreadyExists\",\"AdapterAlreadyExistsHelper\",\"AdapterInactive\",\"AdapterInactiveHelper\",\"AdapterManagerIdHelper\",\"AdapterNameHelper\",\"AdapterNonExistent\",\"AdapterNonExistentHelper\",\"AdapterStateHelper\",\"AddressHelper\",\"Adjustable\",\"AdjustmentEvent\",\"AdjustmentListener\",\"Adler32\",\"AffineTransform\",\"AffineTransformOp\",\"AlgorithmMethod\",\"AlgorithmParameterGenerator\",\"AlgorithmParameterGeneratorSpi\",\"AlgorithmParameterSpec\",\"AlgorithmParameters\",\"AlgorithmParametersSpi\",\"AllPermission\",\"AlphaComposite\",\"AlreadyBound\",\"AlreadyBoundException\",\"AlreadyBoundHelper\",\"AlreadyBoundHolder\",\"AlreadyConnectedException\",\"AncestorEvent\",\"AncestorListener\",\"AnnotatedElement\",\"Annotation\",\"AnnotationFormatError\",\"AnnotationMirror\",\"AnnotationTypeMismatchException\",\"AnnotationValue\",\"AnnotationValueVisitor\",\"Any\",\"AnyHolder\",\"AnySeqHelper\",\"AnySeqHolder\",\"AppConfigurationEntry\",\"AppConfigurationEntry.LoginModuleControlFlag\",\"Appendable\",\"Applet\",\"AppletContext\",\"AppletInitializer\",\"AppletStub\",\"ApplicationException\",\"Arc2D\",\"Arc2D.Double\",\"Arc2D.Float\",\"Area\",\"AreaAveragingScaleFilter\",\"ArithmeticException\",\"Array\",\"ArrayBlockingQueue\",\"ArrayDeque\",\"ArrayIndexOutOfBoundsException\",\"ArrayList\",\"ArrayStoreException\",\"ArrayType\",\"Arrays\",\"AssertionError\",\"AsyncBoxView\",\"AsyncHandler\",\"AsynchronousCloseException\",\"AtomicBoolean\",\"AtomicInteger\",\"AtomicIntegerArray\",\"AtomicIntegerFieldUpdater\",\"AtomicLong\",\"AtomicLongArray\",\"AtomicLongFieldUpdater\",\"AtomicMarkableReference\",\"AtomicReference\",\"AtomicReferenceArray\",\"AtomicReferenceFieldUpdater\",\"AtomicStampedReference\",\"AttachmentMarshaller\",\"AttachmentPart\",\"AttachmentUnmarshaller\",\"Attr\",\"Attribute\",\"AttributeChangeNotification\",\"AttributeChangeNotificationFilter\",\"AttributeException\",\"AttributeInUseException\",\"AttributeList\",\"AttributeListImpl\",\"AttributeModificationException\",\"AttributeNotFoundException\",\"AttributeSet\",\"AttributeSet.CharacterAttribute\",\"AttributeSet.ColorAttribute\",\"AttributeSet.FontAttribute\",\"AttributeSet.ParagraphAttribute\",\"AttributeSetUtilities\",\"AttributeValueExp\",\"AttributedCharacterIterator\",\"AttributedCharacterIterator.Attribute\",\"AttributedString\",\"Attributes\",\"Attributes.Name\",\"Attributes2\",\"Attributes2Impl\",\"AttributesImpl\",\"AudioClip\",\"AudioFileFormat\",\"AudioFileFormat.Type\",\"AudioFileReader\",\"AudioFileWriter\",\"AudioFormat\",\"AudioFormat.Encoding\",\"AudioInputStream\",\"AudioPermission\",\"AudioSystem\",\"AuthPermission\",\"AuthProvider\",\"AuthenticationException\",\"AuthenticationNotSupportedException\",\"Authenticator\",\"Authenticator.RequestorType\",\"AuthorizeCallback\",\"Autoscroll\",\"BAD_CONTEXT\",\"BAD_INV_ORDER\",\"BAD_OPERATION\",\"BAD_PARAM\",\"BAD_POLICY\",\"BAD_POLICY_TYPE\",\"BAD_POLICY_VALUE\",\"BAD_QOS\",\"BAD_TYPECODE\",\"BMPImageWriteParam\",\"BackingStoreException\",\"BadAttributeValueExpException\",\"BadBinaryOpValueExpException\",\"BadKind\",\"BadLocationException\",\"BadPaddingException\",\"BadStringOperationException\",\"BandCombineOp\",\"BandedSampleModel\",\"BaseRowSet\",\"BasicArrowButton\",\"BasicAttribute\",\"BasicAttributes\",\"BasicBorders\",\"BasicBorders.ButtonBorder\",\"BasicBorders.FieldBorder\",\"BasicBorders.MarginBorder\",\"BasicBorders.MenuBarBorder\",\"BasicBorders.RadioButtonBorder\",\"BasicBorders.RolloverButtonBorder\",\"BasicBorders.SplitPaneBorder\",\"BasicBorders.ToggleButtonBorder\",\"BasicButtonListener\",\"BasicButtonUI\",\"BasicCheckBoxMenuItemUI\",\"BasicCheckBoxUI\",\"BasicColorChooserUI\",\"BasicComboBoxEditor\",\"BasicComboBoxEditor.UIResource\",\"BasicComboBoxRenderer\",\"BasicComboBoxRenderer.UIResource\",\"BasicComboBoxUI\",\"BasicComboPopup\",\"BasicControl\",\"BasicDesktopIconUI\",\"BasicDesktopPaneUI\",\"BasicDirectoryModel\",\"BasicEditorPaneUI\",\"BasicFileChooserUI\",\"BasicFormattedTextFieldUI\",\"BasicGraphicsUtils\",\"BasicHTML\",\"BasicIconFactory\",\"BasicInternalFrameTitlePane\",\"BasicInternalFrameUI\",\"BasicLabelUI\",\"BasicListUI\",\"BasicLookAndFeel\",\"BasicMenuBarUI\",\"BasicMenuItemUI\",\"BasicMenuUI\",\"BasicOptionPaneUI\",\"BasicOptionPaneUI.ButtonAreaLayout\",\"BasicPanelUI\",\"BasicPasswordFieldUI\",\"BasicPermission\",\"BasicPopupMenuSeparatorUI\",\"BasicPopupMenuUI\",\"BasicProgressBarUI\",\"BasicRadioButtonMenuItemUI\",\"BasicRadioButtonUI\",\"BasicRootPaneUI\",\"BasicScrollBarUI\",\"BasicScrollPaneUI\",\"BasicSeparatorUI\",\"BasicSliderUI\",\"BasicSpinnerUI\",\"BasicSplitPaneDivider\",\"BasicSplitPaneUI\",\"BasicStroke\",\"BasicTabbedPaneUI\",\"BasicTableHeaderUI\",\"BasicTableUI\",\"BasicTextAreaUI\",\"BasicTextFieldUI\",\"BasicTextPaneUI\",\"BasicTextUI\",\"BasicTextUI.BasicCaret\",\"BasicTextUI.BasicHighlighter\",\"BasicToggleButtonUI\",\"BasicToolBarSeparatorUI\",\"BasicToolBarUI\",\"BasicToolTipUI\",\"BasicTreeUI\",\"BasicViewportUI\",\"BatchUpdateException\",\"BeanContext\",\"BeanContextChild\",\"BeanContextChildComponentProxy\",\"BeanContextChildSupport\",\"BeanContextContainerProxy\",\"BeanContextEvent\",\"BeanContextMembershipEvent\",\"BeanContextMembershipListener\",\"BeanContextProxy\",\"BeanContextServiceAvailableEvent\",\"BeanContextServiceProvider\",\"BeanContextServiceProviderBeanInfo\",\"BeanContextServiceRevokedEvent\",\"BeanContextServiceRevokedListener\",\"BeanContextServices\",\"BeanContextServicesListener\",\"BeanContextServicesSupport\",\"BeanContextServicesSupport.BCSSServiceProvider\",\"BeanContextSupport\",\"BeanContextSupport.BCSIterator\",\"BeanDescriptor\",\"BeanInfo\",\"Beans\",\"BevelBorder\",\"Bidi\",\"BigDecimal\",\"BigInteger\",\"BinaryRefAddr\",\"BindException\",\"Binder\",\"Binding\",\"BindingHelper\",\"BindingHolder\",\"BindingIterator\",\"BindingIteratorHelper\",\"BindingIteratorHolder\",\"BindingIteratorOperations\",\"BindingIteratorPOA\",\"BindingListHelper\",\"BindingListHolder\",\"BindingProvider\",\"BindingType\",\"BindingTypeHelper\",\"BindingTypeHolder\",\"Bindings\",\"BitSet\",\"Blob\",\"BlockView\",\"BlockingDeque\",\"BlockingQueue\",\"Book\",\"Boolean\",\"BooleanControl\",\"BooleanControl.Type\",\"BooleanHolder\",\"BooleanSeqHelper\",\"BooleanSeqHolder\",\"Border\",\"BorderFactory\",\"BorderLayout\",\"BorderUIResource\",\"BorderUIResource.BevelBorderUIResource\",\"BorderUIResource.CompoundBorderUIResource\",\"BorderUIResource.EmptyBorderUIResource\",\"BorderUIResource.EtchedBorderUIResource\",\"BorderUIResource.LineBorderUIResource\",\"BorderUIResource.MatteBorderUIResource\",\"BorderUIResource.TitledBorderUIResource\",\"BoundedRangeModel\",\"Bounds\",\"Box\",\"Box.Filler\",\"BoxLayout\",\"BoxView\",\"BoxedValueHelper\",\"BreakIterator\",\"BreakIteratorProvider\",\"BrokenBarrierException\",\"Buffer\",\"BufferCapabilities\",\"BufferCapabilities.FlipContents\",\"BufferOverflowException\",\"BufferStrategy\",\"BufferUnderflowException\",\"BufferedImage\",\"BufferedImageFilter\",\"BufferedImageOp\",\"BufferedInputStream\",\"BufferedOutputStream\",\"BufferedReader\",\"BufferedWriter\",\"Button\",\"ButtonGroup\",\"ButtonModel\",\"ButtonUI\",\"Byte\",\"ByteArrayInputStream\",\"ByteArrayOutputStream\",\"ByteBuffer\",\"ByteChannel\",\"ByteHolder\",\"ByteLookupTable\",\"ByteOrder\",\"C14NMethodParameterSpec\",\"CDATASection\",\"CMMException\",\"CODESET_INCOMPATIBLE\",\"COMM_FAILURE\",\"CRC32\",\"CRL\",\"CRLException\",\"CRLSelector\",\"CSS\",\"CSS.Attribute\",\"CTX_RESTRICT_SCOPE\",\"CacheRequest\",\"CacheResponse\",\"CachedRowSet\",\"Calendar\",\"Callable\",\"CallableStatement\",\"Callback\",\"CallbackHandler\",\"CancelablePrintJob\",\"CancellationException\",\"CancelledKeyException\",\"CannotProceed\",\"CannotProceedException\",\"CannotProceedHelper\",\"CannotProceedHolder\",\"CannotRedoException\",\"CannotUndoException\",\"CanonicalizationMethod\",\"Canvas\",\"CardLayout\",\"Caret\",\"CaretEvent\",\"CaretListener\",\"CellEditor\",\"CellEditorListener\",\"CellRendererPane\",\"CertPath\",\"CertPath.CertPathRep\",\"CertPathBuilder\",\"CertPathBuilderException\",\"CertPathBuilderResult\",\"CertPathBuilderSpi\",\"CertPathParameters\",\"CertPathTrustManagerParameters\",\"CertPathValidator\",\"CertPathValidatorException\",\"CertPathValidatorResult\",\"CertPathValidatorSpi\",\"CertSelector\",\"CertStore\",\"CertStoreException\",\"CertStoreParameters\",\"CertStoreSpi\",\"Certificate\",\"Certificate.CertificateRep\",\"CertificateEncodingException\",\"CertificateException\",\"CertificateExpiredException\",\"CertificateFactory\",\"CertificateFactorySpi\",\"CertificateNotYetValidException\",\"CertificateParsingException\",\"ChangeEvent\",\"ChangeListener\",\"ChangedCharSetException\",\"Channel\",\"ChannelBinding\",\"Channels\",\"CharArrayReader\",\"CharArrayWriter\",\"CharBuffer\",\"CharConversionException\",\"CharHolder\",\"CharSeqHelper\",\"CharSeqHolder\",\"CharSequence\",\"Character\",\"Character.Subset\",\"Character.UnicodeBlock\",\"CharacterCodingException\",\"CharacterData\",\"CharacterIterator\",\"Characters\",\"Charset\",\"CharsetDecoder\",\"CharsetEncoder\",\"CharsetProvider\",\"Checkbox\",\"CheckboxGroup\",\"CheckboxMenuItem\",\"CheckedInputStream\",\"CheckedOutputStream\",\"Checksum\",\"Choice\",\"ChoiceCallback\",\"ChoiceFormat\",\"Chromaticity\",\"Cipher\",\"CipherInputStream\",\"CipherOutputStream\",\"CipherSpi\",\"Class\",\"ClassCastException\",\"ClassCircularityError\",\"ClassDefinition\",\"ClassDesc\",\"ClassFileTransformer\",\"ClassFormatError\",\"ClassLoader\",\"ClassLoaderRepository\",\"ClassLoadingMXBean\",\"ClassNotFoundException\",\"ClientInfoStatus\",\"ClientRequestInfo\",\"ClientRequestInfoOperations\",\"ClientRequestInterceptor\",\"ClientRequestInterceptorOperations\",\"Clip\",\"Clipboard\",\"ClipboardOwner\",\"Clob\",\"CloneNotSupportedException\",\"Cloneable\",\"Closeable\",\"ClosedByInterruptException\",\"ClosedChannelException\",\"ClosedSelectorException\",\"CodeSets\",\"CodeSigner\",\"CodeSource\",\"Codec\",\"CodecFactory\",\"CodecFactoryHelper\",\"CodecFactoryOperations\",\"CodecOperations\",\"CoderMalfunctionError\",\"CoderResult\",\"CodingErrorAction\",\"CollapsedStringAdapter\",\"CollationElementIterator\",\"CollationKey\",\"Collator\",\"CollatorProvider\",\"Collection\",\"CollectionCertStoreParameters\",\"Collections\",\"Color\",\"ColorChooserComponentFactory\",\"ColorChooserUI\",\"ColorConvertOp\",\"ColorModel\",\"ColorSelectionModel\",\"ColorSpace\",\"ColorSupported\",\"ColorType\",\"ColorUIResource\",\"ComboBoxEditor\",\"ComboBoxModel\",\"ComboBoxUI\",\"ComboPopup\",\"CommandInfo\",\"CommandMap\",\"CommandObject\",\"Comment\",\"CommonDataSource\",\"CommunicationException\",\"Comparable\",\"Comparator\",\"Compilable\",\"CompilationMXBean\",\"CompiledScript\",\"Compiler\",\"Completion\",\"CompletionService\",\"CompletionStatus\",\"CompletionStatusHelper\",\"Completions\",\"Component\",\"ComponentAdapter\",\"ComponentColorModel\",\"ComponentEvent\",\"ComponentIdHelper\",\"ComponentInputMap\",\"ComponentInputMapUIResource\",\"ComponentListener\",\"ComponentOrientation\",\"ComponentSampleModel\",\"ComponentUI\",\"ComponentView\",\"Composite\",\"CompositeContext\",\"CompositeData\",\"CompositeDataInvocationHandler\",\"CompositeDataSupport\",\"CompositeDataView\",\"CompositeName\",\"CompositeType\",\"CompositeView\",\"CompoundBorder\",\"CompoundControl\",\"CompoundControl.Type\",\"CompoundEdit\",\"CompoundName\",\"Compression\",\"ConcurrentHashMap\",\"ConcurrentLinkedQueue\",\"ConcurrentMap\",\"ConcurrentModificationException\",\"ConcurrentNavigableMap\",\"ConcurrentSkipListMap\",\"ConcurrentSkipListSet\",\"Condition\",\"Configuration\",\"ConfigurationException\",\"ConfigurationSpi\",\"ConfirmationCallback\",\"ConnectException\",\"ConnectIOException\",\"Connection\",\"ConnectionEvent\",\"ConnectionEventListener\",\"ConnectionPendingException\",\"ConnectionPoolDataSource\",\"Console\",\"ConsoleHandler\",\"Constructor\",\"ConstructorProperties\",\"Container\",\"ContainerAdapter\",\"ContainerEvent\",\"ContainerListener\",\"ContainerOrderFocusTraversalPolicy\",\"ContentHandler\",\"ContentHandlerFactory\",\"ContentModel\",\"Context\",\"ContextList\",\"ContextNotEmptyException\",\"ContextualRenderedImageFactory\",\"Control\",\"Control.Type\",\"ControlFactory\",\"ControllerEventListener\",\"ConvolveOp\",\"CookieHandler\",\"CookieHolder\",\"CookieManager\",\"CookiePolicy\",\"CookieStore\",\"Copies\",\"CopiesSupported\",\"CopyOnWriteArrayList\",\"CopyOnWriteArraySet\",\"CountDownLatch\",\"CounterMonitor\",\"CounterMonitorMBean\",\"CredentialException\",\"CredentialExpiredException\",\"CredentialNotFoundException\",\"CropImageFilter\",\"CubicCurve2D\",\"CubicCurve2D.Double\",\"CubicCurve2D.Float\",\"Currency\",\"CurrencyNameProvider\",\"Current\",\"CurrentHelper\",\"CurrentHolder\",\"CurrentOperations\",\"Cursor\",\"CustomMarshal\",\"CustomValue\",\"Customizer\",\"CyclicBarrier\",\"DATA_CONVERSION\",\"DESKeySpec\",\"DESedeKeySpec\",\"DGC\",\"DHGenParameterSpec\",\"DHKey\",\"DHParameterSpec\",\"DHPrivateKey\",\"DHPrivateKeySpec\",\"DHPublicKey\",\"DHPublicKeySpec\",\"DISCARDING\",\"DOMConfiguration\",\"DOMCryptoContext\",\"DOMError\",\"DOMErrorHandler\",\"DOMException\",\"DOMImplementation\",\"DOMImplementationLS\",\"DOMImplementationList\",\"DOMImplementationRegistry\",\"DOMImplementationSource\",\"DOMLocator\",\"DOMResult\",\"DOMSignContext\",\"DOMSource\",\"DOMStringList\",\"DOMStructure\",\"DOMURIReference\",\"DOMValidateContext\",\"DSAKey\",\"DSAKeyPairGenerator\",\"DSAParameterSpec\",\"DSAParams\",\"DSAPrivateKey\",\"DSAPrivateKeySpec\",\"DSAPublicKey\",\"DSAPublicKeySpec\",\"DTD\",\"DTDConstants\",\"DTDHandler\",\"Data\",\"DataBuffer\",\"DataBufferByte\",\"DataBufferDouble\",\"DataBufferFloat\",\"DataBufferInt\",\"DataBufferShort\",\"DataBufferUShort\",\"DataContentHandler\",\"DataContentHandlerFactory\",\"DataFlavor\",\"DataFormatException\",\"DataHandler\",\"DataInput\",\"DataInputStream\",\"DataLine\",\"DataLine.Info\",\"DataOutput\",\"DataOutputStream\",\"DataSource\",\"DataTruncation\",\"DatabaseMetaData\",\"DatagramChannel\",\"DatagramPacket\",\"DatagramSocket\",\"DatagramSocketImpl\",\"DatagramSocketImplFactory\",\"DatatypeConfigurationException\",\"DatatypeConstants\",\"DatatypeConstants.Field\",\"DatatypeConverter\",\"DatatypeConverterInterface\",\"DatatypeFactory\",\"Date\",\"DateFormat\",\"DateFormat.Field\",\"DateFormatProvider\",\"DateFormatSymbols\",\"DateFormatSymbolsProvider\",\"DateFormatter\",\"DateTimeAtCompleted\",\"DateTimeAtCreation\",\"DateTimeAtProcessing\",\"DateTimeSyntax\",\"DebugGraphics\",\"DecimalFormat\",\"DecimalFormatSymbols\",\"DecimalFormatSymbolsProvider\",\"DeclHandler\",\"DeclaredType\",\"DefaultBoundedRangeModel\",\"DefaultButtonModel\",\"DefaultCaret\",\"DefaultCellEditor\",\"DefaultColorSelectionModel\",\"DefaultComboBoxModel\",\"DefaultDesktopManager\",\"DefaultEditorKit\",\"DefaultEditorKit.BeepAction\",\"DefaultEditorKit.CopyAction\",\"DefaultEditorKit.CutAction\",\"DefaultEditorKit.DefaultKeyTypedAction\",\"DefaultEditorKit.InsertBreakAction\",\"DefaultEditorKit.InsertContentAction\",\"DefaultEditorKit.InsertTabAction\",\"DefaultEditorKit.PasteAction\",\"DefaultFocusManager\",\"DefaultFocusTraversalPolicy\",\"DefaultFormatter\",\"DefaultFormatterFactory\",\"DefaultHandler\",\"DefaultHandler2\",\"DefaultHighlighter\",\"DefaultHighlighter.DefaultHighlightPainter\",\"DefaultKeyboardFocusManager\",\"DefaultListCellRenderer\",\"DefaultListCellRenderer.UIResource\",\"DefaultListModel\",\"DefaultListSelectionModel\",\"DefaultLoaderRepository\",\"DefaultMenuLayout\",\"DefaultMetalTheme\",\"DefaultMutableTreeNode\",\"DefaultPersistenceDelegate\",\"DefaultRowSorter\",\"DefaultSingleSelectionModel\",\"DefaultStyledDocument\",\"DefaultStyledDocument.AttributeUndoableEdit\",\"DefaultStyledDocument.ElementSpec\",\"DefaultTableCellRenderer\",\"DefaultTableCellRenderer.UIResource\",\"DefaultTableColumnModel\",\"DefaultTableModel\",\"DefaultTextUI\",\"DefaultTreeCellEditor\",\"DefaultTreeCellRenderer\",\"DefaultTreeModel\",\"DefaultTreeSelectionModel\",\"DefaultValidationEventHandler\",\"DefinitionKind\",\"DefinitionKindHelper\",\"Deflater\",\"DeflaterInputStream\",\"DeflaterOutputStream\",\"DelayQueue\",\"Delayed\",\"Delegate\",\"DelegationPermission\",\"Deprecated\",\"Deque\",\"Descriptor\",\"DescriptorAccess\",\"DescriptorKey\",\"DescriptorRead\",\"DescriptorSupport\",\"DesignMode\",\"Desktop\",\"DesktopIconUI\",\"DesktopManager\",\"DesktopPaneUI\",\"Destination\",\"DestroyFailedException\",\"Destroyable\",\"Detail\",\"DetailEntry\",\"Diagnostic\",\"DiagnosticCollector\",\"DiagnosticListener\",\"Dialog\",\"Dictionary\",\"DigestException\",\"DigestInputStream\",\"DigestMethod\",\"DigestMethodParameterSpec\",\"DigestOutputStream\",\"Dimension\",\"Dimension2D\",\"DimensionUIResource\",\"DirContext\",\"DirObjectFactory\",\"DirStateFactory\",\"DirStateFactory.Result\",\"DirectColorModel\",\"DirectoryManager\",\"Dispatch\",\"DisplayMode\",\"DnDConstants\",\"Doc\",\"DocAttribute\",\"DocAttributeSet\",\"DocFlavor\",\"DocFlavor.BYTE_ARRAY\",\"DocFlavor.CHAR_ARRAY\",\"DocFlavor.INPUT_STREAM\",\"DocFlavor.READER\",\"DocFlavor.SERVICE_FORMATTED\",\"DocFlavor.STRING\",\"DocFlavor.URL\",\"DocPrintJob\",\"Document\",\"DocumentBuilder\",\"DocumentBuilderFactory\",\"DocumentEvent\",\"DocumentEvent.ElementChange\",\"DocumentEvent.EventType\",\"DocumentFilter\",\"DocumentFilter.FilterBypass\",\"DocumentFragment\",\"DocumentHandler\",\"DocumentListener\",\"DocumentName\",\"DocumentParser\",\"DocumentType\",\"Documented\",\"DomHandler\",\"DomainCombiner\",\"DomainManager\",\"DomainManagerOperations\",\"Double\",\"DoubleBuffer\",\"DoubleHolder\",\"DoubleSeqHelper\",\"DoubleSeqHolder\",\"DragGestureEvent\",\"DragGestureListener\",\"DragGestureRecognizer\",\"DragSource\",\"DragSourceAdapter\",\"DragSourceContext\",\"DragSourceDragEvent\",\"DragSourceDropEvent\",\"DragSourceEvent\",\"DragSourceListener\",\"DragSourceMotionListener\",\"Driver\",\"DriverManager\",\"DriverPropertyInfo\",\"DropMode\",\"DropTarget\",\"DropTarget.DropTargetAutoScroller\",\"DropTargetAdapter\",\"DropTargetContext\",\"DropTargetDragEvent\",\"DropTargetDropEvent\",\"DropTargetEvent\",\"DropTargetListener\",\"DuplicateFormatFlagsException\",\"DuplicateName\",\"DuplicateNameHelper\",\"Duration\",\"DynAny\",\"DynAnyFactory\",\"DynAnyFactoryHelper\",\"DynAnyFactoryOperations\",\"DynAnyHelper\",\"DynAnyOperations\",\"DynAnySeqHelper\",\"DynArray\",\"DynArrayHelper\",\"DynArrayOperations\",\"DynEnum\",\"DynEnumHelper\",\"DynEnumOperations\",\"DynFixed\",\"DynFixedHelper\",\"DynFixedOperations\",\"DynSequence\",\"DynSequenceHelper\",\"DynSequenceOperations\",\"DynStruct\",\"DynStructHelper\",\"DynStructOperations\",\"DynUnion\",\"DynUnionHelper\",\"DynUnionOperations\",\"DynValue\",\"DynValueBox\",\"DynValueBoxOperations\",\"DynValueCommon\",\"DynValueCommonOperations\",\"DynValueHelper\",\"DynValueOperations\",\"DynamicImplementation\",\"DynamicMBean\",\"ECField\",\"ECFieldF2m\",\"ECFieldFp\",\"ECGenParameterSpec\",\"ECKey\",\"ECParameterSpec\",\"ECPoint\",\"ECPrivateKey\",\"ECPrivateKeySpec\",\"ECPublicKey\",\"ECPublicKeySpec\",\"ENCODING_CDR_ENCAPS\",\"EOFException\",\"EditorKit\",\"Element\",\"ElementFilter\",\"ElementIterator\",\"ElementKind\",\"ElementKindVisitor6\",\"ElementScanner6\",\"ElementType\",\"ElementVisitor\",\"Elements\",\"Ellipse2D\",\"Ellipse2D.Double\",\"Ellipse2D.Float\",\"EllipticCurve\",\"EmptyBorder\",\"EmptyStackException\",\"EncodedKeySpec\",\"Encoder\",\"Encoding\",\"EncryptedPrivateKeyInfo\",\"EndDocument\",\"EndElement\",\"Endpoint\",\"Entity\",\"EntityDeclaration\",\"EntityReference\",\"EntityResolver\",\"EntityResolver2\",\"Enum\",\"EnumConstantNotPresentException\",\"EnumControl\",\"EnumControl.Type\",\"EnumMap\",\"EnumSet\",\"EnumSyntax\",\"Enumeration\",\"Environment\",\"Error\",\"ErrorHandler\",\"ErrorListener\",\"ErrorManager\",\"ErrorType\",\"EtchedBorder\",\"Event\",\"EventContext\",\"EventDirContext\",\"EventException\",\"EventFilter\",\"EventHandler\",\"EventListener\",\"EventListenerList\",\"EventListenerProxy\",\"EventObject\",\"EventQueue\",\"EventReaderDelegate\",\"EventSetDescriptor\",\"EventTarget\",\"ExcC14NParameterSpec\",\"Exception\",\"ExceptionDetailMessage\",\"ExceptionInInitializerError\",\"ExceptionList\",\"ExceptionListener\",\"Exchanger\",\"ExecutableElement\",\"ExecutableType\",\"ExecutionException\",\"Executor\",\"ExecutorCompletionService\",\"ExecutorService\",\"Executors\",\"ExemptionMechanism\",\"ExemptionMechanismException\",\"ExemptionMechanismSpi\",\"ExpandVetoException\",\"ExportException\",\"Expression\",\"ExtendedRequest\",\"ExtendedResponse\",\"Externalizable\",\"FREE_MEM\",\"FactoryConfigurationError\",\"FailedLoginException\",\"FeatureDescriptor\",\"Fidelity\",\"Field\",\"FieldNameHelper\",\"FieldPosition\",\"FieldView\",\"File\",\"FileCacheImageInputStream\",\"FileCacheImageOutputStream\",\"FileChannel\",\"FileChannel.MapMode\",\"FileChooserUI\",\"FileDataSource\",\"FileDescriptor\",\"FileDialog\",\"FileFilter\",\"FileHandler\",\"FileImageInputStream\",\"FileImageOutputStream\",\"FileInputStream\",\"FileLock\",\"FileLockInterruptionException\",\"FileNameExtensionFilter\",\"FileNameMap\",\"FileNotFoundException\",\"FileObject\",\"FileOutputStream\",\"FilePermission\",\"FileReader\",\"FileSystemView\",\"FileTypeMap\",\"FileView\",\"FileWriter\",\"FilenameFilter\",\"Filer\",\"FilerException\",\"Filter\",\"FilterInputStream\",\"FilterOutputStream\",\"FilterReader\",\"FilterWriter\",\"FilteredImageSource\",\"FilteredRowSet\",\"Finishings\",\"FixedHeightLayoutCache\",\"FixedHolder\",\"FlatteningPathIterator\",\"FlavorEvent\",\"FlavorException\",\"FlavorListener\",\"FlavorMap\",\"FlavorTable\",\"Float\",\"FloatBuffer\",\"FloatControl\",\"FloatControl.Type\",\"FloatHolder\",\"FloatSeqHelper\",\"FloatSeqHolder\",\"FlowLayout\",\"FlowView\",\"FlowView.FlowStrategy\",\"Flushable\",\"FocusAdapter\",\"FocusEvent\",\"FocusListener\",\"FocusManager\",\"FocusTraversalPolicy\",\"Font\",\"FontFormatException\",\"FontMetrics\",\"FontRenderContext\",\"FontUIResource\",\"FormSubmitEvent\",\"FormSubmitEvent.MethodType\",\"FormView\",\"Format\",\"Format.Field\",\"FormatConversionProvider\",\"FormatFlagsConversionMismatchException\",\"FormatMismatch\",\"FormatMismatchHelper\",\"Formattable\",\"FormattableFlags\",\"Formatter\",\"FormatterClosedException\",\"ForwardRequest\",\"ForwardRequestHelper\",\"ForwardingFileObject\",\"ForwardingJavaFileManager\",\"ForwardingJavaFileObject\",\"Frame\",\"Future\",\"FutureTask\",\"GSSContext\",\"GSSCredential\",\"GSSException\",\"GSSManager\",\"GSSName\",\"GZIPInputStream\",\"GZIPOutputStream\",\"GapContent\",\"GarbageCollectorMXBean\",\"GatheringByteChannel\",\"GaugeMonitor\",\"GaugeMonitorMBean\",\"GeneralPath\",\"GeneralSecurityException\",\"Generated\",\"GenericArrayType\",\"GenericDeclaration\",\"GenericSignatureFormatError\",\"GlyphJustificationInfo\",\"GlyphMetrics\",\"GlyphVector\",\"GlyphView\",\"GlyphView.GlyphPainter\",\"GradientPaint\",\"GraphicAttribute\",\"Graphics\",\"Graphics2D\",\"GraphicsConfigTemplate\",\"GraphicsConfiguration\",\"GraphicsDevice\",\"GraphicsEnvironment\",\"GrayFilter\",\"GregorianCalendar\",\"GridBagConstraints\",\"GridBagLayout\",\"GridBagLayoutInfo\",\"GridLayout\",\"Group\",\"GroupLayout\",\"Guard\",\"GuardedObject\",\"HMACParameterSpec\",\"HOLDING\",\"HTML\",\"HTML.Attribute\",\"HTML.Tag\",\"HTML.UnknownTag\",\"HTMLDocument\",\"HTMLDocument.Iterator\",\"HTMLEditorKit\",\"HTMLEditorKit.HTMLFactory\",\"HTMLEditorKit.HTMLTextAction\",\"HTMLEditorKit.InsertHTMLTextAction\",\"HTMLEditorKit.LinkController\",\"HTMLEditorKit.Parser\",\"HTMLEditorKit.ParserCallback\",\"HTMLFrameHyperlinkEvent\",\"HTMLWriter\",\"HTTPBinding\",\"HTTPException\",\"Handler\",\"HandlerBase\",\"HandlerChain\",\"HandlerResolver\",\"HandshakeCompletedEvent\",\"HandshakeCompletedListener\",\"HasControls\",\"HashAttributeSet\",\"HashDocAttributeSet\",\"HashMap\",\"HashPrintJobAttributeSet\",\"HashPrintRequestAttributeSet\",\"HashPrintServiceAttributeSet\",\"HashSet\",\"Hashtable\",\"HeadlessException\",\"HexBinaryAdapter\",\"HierarchyBoundsAdapter\",\"HierarchyBoundsListener\",\"HierarchyEvent\",\"HierarchyListener\",\"Highlighter\",\"Highlighter.Highlight\",\"Highlighter.HighlightPainter\",\"Holder\",\"HostnameVerifier\",\"HttpCookie\",\"HttpRetryException\",\"HttpURLConnection\",\"HttpsURLConnection\",\"HyperlinkEvent\",\"HyperlinkEvent.EventType\",\"HyperlinkListener\",\"ICC_ColorSpace\",\"ICC_Profile\",\"ICC_ProfileGray\",\"ICC_ProfileRGB\",\"IDLEntity\",\"IDLType\",\"IDLTypeHelper\",\"IDLTypeOperations\",\"IDN\",\"ID_ASSIGNMENT_POLICY_ID\",\"ID_UNIQUENESS_POLICY_ID\",\"IIOByteBuffer\",\"IIOException\",\"IIOImage\",\"IIOInvalidTreeException\",\"IIOMetadata\",\"IIOMetadataController\",\"IIOMetadataFormat\",\"IIOMetadataFormatImpl\",\"IIOMetadataNode\",\"IIOParam\",\"IIOParamController\",\"IIOReadProgressListener\",\"IIOReadUpdateListener\",\"IIOReadWarningListener\",\"IIORegistry\",\"IIOServiceProvider\",\"IIOWriteProgressListener\",\"IIOWriteWarningListener\",\"IMPLICIT_ACTIVATION_POLICY_ID\",\"IMP_LIMIT\",\"INACTIVE\",\"INITIALIZE\",\"INTERNAL\",\"INTF_REPOS\",\"INVALID_ACTIVITY\",\"INVALID_TRANSACTION\",\"INV_FLAG\",\"INV_IDENT\",\"INV_OBJREF\",\"INV_POLICY\",\"IOError\",\"IOException\",\"IOR\",\"IORHelper\",\"IORHolder\",\"IORInfo\",\"IORInfoOperations\",\"IORInterceptor\",\"IORInterceptorOperations\",\"IORInterceptor_3_0\",\"IORInterceptor_3_0Helper\",\"IORInterceptor_3_0Holder\",\"IORInterceptor_3_0Operations\",\"IRObject\",\"IRObjectOperations\",\"Icon\",\"IconUIResource\",\"IconView\",\"IdAssignmentPolicy\",\"IdAssignmentPolicyOperations\",\"IdAssignmentPolicyValue\",\"IdUniquenessPolicy\",\"IdUniquenessPolicyOperations\",\"IdUniquenessPolicyValue\",\"IdentifierHelper\",\"Identity\",\"IdentityHashMap\",\"IdentityScope\",\"IllegalAccessError\",\"IllegalAccessException\",\"IllegalArgumentException\",\"IllegalBlockSizeException\",\"IllegalBlockingModeException\",\"IllegalCharsetNameException\",\"IllegalClassFormatException\",\"IllegalComponentStateException\",\"IllegalFormatCodePointException\",\"IllegalFormatConversionException\",\"IllegalFormatException\",\"IllegalFormatFlagsException\",\"IllegalFormatPrecisionException\",\"IllegalFormatWidthException\",\"IllegalMonitorStateException\",\"IllegalPathStateException\",\"IllegalSelectorException\",\"IllegalStateException\",\"IllegalThreadStateException\",\"Image\",\"ImageCapabilities\",\"ImageConsumer\",\"ImageFilter\",\"ImageGraphicAttribute\",\"ImageIO\",\"ImageIcon\",\"ImageInputStream\",\"ImageInputStreamImpl\",\"ImageInputStreamSpi\",\"ImageObserver\",\"ImageOutputStream\",\"ImageOutputStreamImpl\",\"ImageOutputStreamSpi\",\"ImageProducer\",\"ImageReadParam\",\"ImageReader\",\"ImageReaderSpi\",\"ImageReaderWriterSpi\",\"ImageTranscoder\",\"ImageTranscoderSpi\",\"ImageTypeSpecifier\",\"ImageView\",\"ImageWriteParam\",\"ImageWriter\",\"ImageWriterSpi\",\"ImagingOpException\",\"ImmutableDescriptor\",\"ImplicitActivationPolicy\",\"ImplicitActivationPolicyOperations\",\"ImplicitActivationPolicyValue\",\"IncompatibleClassChangeError\",\"IncompleteAnnotationException\",\"InconsistentTypeCode\",\"InconsistentTypeCodeHelper\",\"IndexColorModel\",\"IndexOutOfBoundsException\",\"IndexedPropertyChangeEvent\",\"IndexedPropertyDescriptor\",\"IndirectionException\",\"Inet4Address\",\"Inet6Address\",\"InetAddress\",\"InetSocketAddress\",\"Inflater\",\"InflaterInputStream\",\"InflaterOutputStream\",\"InheritableThreadLocal\",\"Inherited\",\"InitParam\",\"InitialContext\",\"InitialContextFactory\",\"InitialContextFactoryBuilder\",\"InitialDirContext\",\"InitialLdapContext\",\"InlineView\",\"InputContext\",\"InputEvent\",\"InputMap\",\"InputMapUIResource\",\"InputMethod\",\"InputMethodContext\",\"InputMethodDescriptor\",\"InputMethodEvent\",\"InputMethodHighlight\",\"InputMethodListener\",\"InputMethodRequests\",\"InputMismatchException\",\"InputSource\",\"InputStream\",\"InputStreamReader\",\"InputSubset\",\"InputVerifier\",\"Insets\",\"InsetsUIResource\",\"InstanceAlreadyExistsException\",\"InstanceNotFoundException\",\"InstantiationError\",\"InstantiationException\",\"Instrument\",\"Instrumentation\",\"InsufficientResourcesException\",\"IntBuffer\",\"IntHolder\",\"Integer\",\"IntegerSyntax\",\"Interceptor\",\"InterceptorOperations\",\"InterfaceAddress\",\"InternalError\",\"InternalFrameAdapter\",\"InternalFrameEvent\",\"InternalFrameFocusTraversalPolicy\",\"InternalFrameListener\",\"InternalFrameUI\",\"InternationalFormatter\",\"InterruptedException\",\"InterruptedIOException\",\"InterruptedNamingException\",\"InterruptibleChannel\",\"IntrospectionException\",\"Introspector\",\"Invalid\",\"InvalidActivityException\",\"InvalidAddress\",\"InvalidAddressHelper\",\"InvalidAddressHolder\",\"InvalidAlgorithmParameterException\",\"InvalidApplicationException\",\"InvalidAttributeIdentifierException\",\"InvalidAttributeValueException\",\"InvalidAttributesException\",\"InvalidClassException\",\"InvalidDnDOperationException\",\"InvalidKeyException\",\"InvalidKeySpecException\",\"InvalidMarkException\",\"InvalidMidiDataException\",\"InvalidName\",\"InvalidNameException\",\"InvalidNameHelper\",\"InvalidNameHolder\",\"InvalidObjectException\",\"InvalidOpenTypeException\",\"InvalidParameterException\",\"InvalidParameterSpecException\",\"InvalidPolicy\",\"InvalidPolicyHelper\",\"InvalidPreferencesFormatException\",\"InvalidPropertiesFormatException\",\"InvalidRelationIdException\",\"InvalidRelationServiceException\",\"InvalidRelationTypeException\",\"InvalidRoleInfoException\",\"InvalidRoleValueException\",\"InvalidSearchControlsException\",\"InvalidSearchFilterException\",\"InvalidSeq\",\"InvalidSlot\",\"InvalidSlotHelper\",\"InvalidTargetObjectTypeException\",\"InvalidTransactionException\",\"InvalidTypeForEncoding\",\"InvalidTypeForEncodingHelper\",\"InvalidValue\",\"InvalidValueHelper\",\"Invocable\",\"InvocationEvent\",\"InvocationHandler\",\"InvocationTargetException\",\"InvokeHandler\",\"IstringHelper\",\"ItemEvent\",\"ItemListener\",\"ItemSelectable\",\"Iterable\",\"Iterator\",\"IvParameterSpec\",\"JAXBContext\",\"JAXBElement\",\"JAXBException\",\"JAXBIntrospector\",\"JAXBResult\",\"JAXBSource\",\"JApplet\",\"JButton\",\"JCheckBox\",\"JCheckBoxMenuItem\",\"JColorChooser\",\"JComboBox\",\"JComboBox.KeySelectionManager\",\"JComponent\",\"JDesktopPane\",\"JDialog\",\"JEditorPane\",\"JFileChooser\",\"JFormattedTextField\",\"JFormattedTextField.AbstractFormatter\",\"JFormattedTextField.AbstractFormatterFactory\",\"JFrame\",\"JInternalFrame\",\"JInternalFrame.JDesktopIcon\",\"JLabel\",\"JLayeredPane\",\"JList\",\"JMException\",\"JMRuntimeException\",\"JMX\",\"JMXAddressable\",\"JMXAuthenticator\",\"JMXConnectionNotification\",\"JMXConnector\",\"JMXConnectorFactory\",\"JMXConnectorProvider\",\"JMXConnectorServer\",\"JMXConnectorServerFactory\",\"JMXConnectorServerMBean\",\"JMXConnectorServerProvider\",\"JMXPrincipal\",\"JMXProviderException\",\"JMXServerErrorException\",\"JMXServiceURL\",\"JMenu\",\"JMenuBar\",\"JMenuItem\",\"JOptionPane\",\"JPEGHuffmanTable\",\"JPEGImageReadParam\",\"JPEGImageWriteParam\",\"JPEGQTable\",\"JPanel\",\"JPasswordField\",\"JPopupMenu\",\"JPopupMenu.Separator\",\"JProgressBar\",\"JRadioButton\",\"JRadioButtonMenuItem\",\"JRootPane\",\"JScrollBar\",\"JScrollPane\",\"JSeparator\",\"JSlider\",\"JSpinner\",\"JSpinner.DateEditor\",\"JSpinner.DefaultEditor\",\"JSpinner.ListEditor\",\"JSpinner.NumberEditor\",\"JSplitPane\",\"JTabbedPane\",\"JTable\",\"JTable.PrintMode\",\"JTableHeader\",\"JTextArea\",\"JTextComponent\",\"JTextComponent.KeyBinding\",\"JTextField\",\"JTextPane\",\"JToggleButton\",\"JToggleButton.ToggleButtonModel\",\"JToolBar\",\"JToolBar.Separator\",\"JToolTip\",\"JTree\",\"JTree.DynamicUtilTreeNode\",\"JTree.EmptySelectionModel\",\"JViewport\",\"JWindow\",\"JarEntry\",\"JarException\",\"JarFile\",\"JarInputStream\",\"JarOutputStream\",\"JarURLConnection\",\"JavaCompiler\",\"JavaFileManager\",\"JavaFileObject\",\"JdbcRowSet\",\"JobAttributes\",\"JobAttributes.DefaultSelectionType\",\"JobAttributes.DestinationType\",\"JobAttributes.DialogType\",\"JobAttributes.MultipleDocumentHandlingType\",\"JobAttributes.SidesType\",\"JobHoldUntil\",\"JobImpressions\",\"JobImpressionsCompleted\",\"JobImpressionsSupported\",\"JobKOctets\",\"JobKOctetsProcessed\",\"JobKOctetsSupported\",\"JobMediaSheets\",\"JobMediaSheetsCompleted\",\"JobMediaSheetsSupported\",\"JobMessageFromOperator\",\"JobName\",\"JobOriginatingUserName\",\"JobPriority\",\"JobPrioritySupported\",\"JobSheets\",\"JobState\",\"JobStateReason\",\"JobStateReasons\",\"JoinRowSet\",\"Joinable\",\"KerberosKey\",\"KerberosPrincipal\",\"KerberosTicket\",\"Kernel\",\"Key\",\"KeyAdapter\",\"KeyAgreement\",\"KeyAgreementSpi\",\"KeyAlreadyExistsException\",\"KeyEvent\",\"KeyEventDispatcher\",\"KeyEventPostProcessor\",\"KeyException\",\"KeyFactory\",\"KeyFactorySpi\",\"KeyGenerator\",\"KeyGeneratorSpi\",\"KeyInfo\",\"KeyInfoFactory\",\"KeyListener\",\"KeyManagementException\",\"KeyManager\",\"KeyManagerFactory\",\"KeyManagerFactorySpi\",\"KeyName\",\"KeyPair\",\"KeyPairGenerator\",\"KeyPairGeneratorSpi\",\"KeyRep\",\"KeyRep.Type\",\"KeySelector\",\"KeySelectorException\",\"KeySelectorResult\",\"KeySpec\",\"KeyStore\",\"KeyStore.Builder\",\"KeyStore.CallbackHandlerProtection\",\"KeyStore.Entry\",\"KeyStore.LoadStoreParameter\",\"KeyStore.PasswordProtection\",\"KeyStore.PrivateKeyEntry\",\"KeyStore.ProtectionParameter\",\"KeyStore.SecretKeyEntry\",\"KeyStore.TrustedCertificateEntry\",\"KeyStoreBuilderParameters\",\"KeyStoreException\",\"KeyStoreSpi\",\"KeyStroke\",\"KeyValue\",\"KeyboardFocusManager\",\"Keymap\",\"LDAPCertStoreParameters\",\"LIFESPAN_POLICY_ID\",\"LOCATION_FORWARD\",\"LSException\",\"LSInput\",\"LSLoadEvent\",\"LSOutput\",\"LSParser\",\"LSParserFilter\",\"LSProgressEvent\",\"LSResourceResolver\",\"LSSerializer\",\"LSSerializerFilter\",\"Label\",\"LabelUI\",\"LabelView\",\"LanguageCallback\",\"LastOwnerException\",\"LayeredHighlighter\",\"LayeredHighlighter.LayerPainter\",\"LayoutFocusTraversalPolicy\",\"LayoutManager\",\"LayoutManager2\",\"LayoutPath\",\"LayoutQueue\",\"LayoutStyle\",\"LdapContext\",\"LdapName\",\"LdapReferralException\",\"Lease\",\"Level\",\"LexicalHandler\",\"LifespanPolicy\",\"LifespanPolicyOperations\",\"LifespanPolicyValue\",\"LimitExceededException\",\"Line\",\"Line.Info\",\"Line2D\",\"Line2D.Double\",\"Line2D.Float\",\"LineBorder\",\"LineBreakMeasurer\",\"LineEvent\",\"LineEvent.Type\",\"LineListener\",\"LineMetrics\",\"LineNumberInputStream\",\"LineNumberReader\",\"LineUnavailableException\",\"LinearGradientPaint\",\"LinkException\",\"LinkLoopException\",\"LinkRef\",\"LinkageError\",\"LinkedBlockingDeque\",\"LinkedBlockingQueue\",\"LinkedHashMap\",\"LinkedHashSet\",\"LinkedList\",\"List\",\"ListCellRenderer\",\"ListDataEvent\",\"ListDataListener\",\"ListIterator\",\"ListModel\",\"ListResourceBundle\",\"ListSelectionEvent\",\"ListSelectionListener\",\"ListSelectionModel\",\"ListUI\",\"ListView\",\"ListenerNotFoundException\",\"LoaderHandler\",\"LocalObject\",\"Locale\",\"LocaleNameProvider\",\"LocaleServiceProvider\",\"LocateRegistry\",\"Location\",\"Locator\",\"Locator2\",\"Locator2Impl\",\"LocatorImpl\",\"Lock\",\"LockInfo\",\"LockSupport\",\"LogManager\",\"LogRecord\",\"LogStream\",\"Logger\",\"LoggingMXBean\",\"LoggingPermission\",\"LogicalHandler\",\"LogicalMessage\",\"LogicalMessageContext\",\"LoginContext\",\"LoginException\",\"LoginModule\",\"Long\",\"LongBuffer\",\"LongHolder\",\"LongLongSeqHelper\",\"LongLongSeqHolder\",\"LongSeqHelper\",\"LongSeqHolder\",\"LookAndFeel\",\"LookupOp\",\"LookupTable\",\"MARSHAL\",\"MBeanAttributeInfo\",\"MBeanConstructorInfo\",\"MBeanException\",\"MBeanFeatureInfo\",\"MBeanInfo\",\"MBeanNotificationInfo\",\"MBeanOperationInfo\",\"MBeanParameterInfo\",\"MBeanPermission\",\"MBeanRegistration\",\"MBeanRegistrationException\",\"MBeanServer\",\"MBeanServerBuilder\",\"MBeanServerConnection\",\"MBeanServerDelegate\",\"MBeanServerDelegateMBean\",\"MBeanServerFactory\",\"MBeanServerForwarder\",\"MBeanServerInvocationHandler\",\"MBeanServerNotification\",\"MBeanServerNotificationFilter\",\"MBeanServerPermission\",\"MBeanTrustPermission\",\"MGF1ParameterSpec\",\"MLet\",\"MLetContent\",\"MLetMBean\",\"MXBean\",\"Mac\",\"MacSpi\",\"MailcapCommandMap\",\"MalformedInputException\",\"MalformedLinkException\",\"MalformedObjectNameException\",\"MalformedParameterizedTypeException\",\"MalformedURLException\",\"ManageReferralControl\",\"ManagementFactory\",\"ManagementPermission\",\"ManagerFactoryParameters\",\"Manifest\",\"Map\",\"Map.Entry\",\"MappedByteBuffer\",\"MarshalException\",\"MarshalledObject\",\"Marshaller\",\"MaskFormatter\",\"MatchResult\",\"Matcher\",\"Math\",\"MathContext\",\"MatteBorder\",\"Media\",\"MediaName\",\"MediaPrintableArea\",\"MediaSize\",\"MediaSize.Engineering\",\"MediaSize.ISO\",\"MediaSize.JIS\",\"MediaSize.NA\",\"MediaSize.Other\",\"MediaSizeName\",\"MediaTracker\",\"MediaTray\",\"Member\",\"MemoryCacheImageInputStream\",\"MemoryCacheImageOutputStream\",\"MemoryHandler\",\"MemoryImageSource\",\"MemoryMXBean\",\"MemoryManagerMXBean\",\"MemoryNotificationInfo\",\"MemoryPoolMXBean\",\"MemoryType\",\"MemoryUsage\",\"Menu\",\"MenuBar\",\"MenuBarUI\",\"MenuComponent\",\"MenuContainer\",\"MenuDragMouseEvent\",\"MenuDragMouseListener\",\"MenuElement\",\"MenuEvent\",\"MenuItem\",\"MenuItemUI\",\"MenuKeyEvent\",\"MenuKeyListener\",\"MenuListener\",\"MenuSelectionManager\",\"MenuShortcut\",\"MessageContext\",\"MessageDigest\",\"MessageDigestSpi\",\"MessageFactory\",\"MessageFormat\",\"MessageFormat.Field\",\"MessageProp\",\"Messager\",\"MetaEventListener\",\"MetaMessage\",\"MetalBorders\",\"MetalBorders.ButtonBorder\",\"MetalBorders.Flush3DBorder\",\"MetalBorders.InternalFrameBorder\",\"MetalBorders.MenuBarBorder\",\"MetalBorders.MenuItemBorder\",\"MetalBorders.OptionDialogBorder\",\"MetalBorders.PaletteBorder\",\"MetalBorders.PopupMenuBorder\",\"MetalBorders.RolloverButtonBorder\",\"MetalBorders.ScrollPaneBorder\",\"MetalBorders.TableHeaderBorder\",\"MetalBorders.TextFieldBorder\",\"MetalBorders.ToggleButtonBorder\",\"MetalBorders.ToolBarBorder\",\"MetalButtonUI\",\"MetalCheckBoxIcon\",\"MetalCheckBoxUI\",\"MetalComboBoxButton\",\"MetalComboBoxEditor\",\"MetalComboBoxEditor.UIResource\",\"MetalComboBoxIcon\",\"MetalComboBoxUI\",\"MetalDesktopIconUI\",\"MetalFileChooserUI\",\"MetalIconFactory\",\"MetalIconFactory.FileIcon16\",\"MetalIconFactory.FolderIcon16\",\"MetalIconFactory.PaletteCloseIcon\",\"MetalIconFactory.TreeControlIcon\",\"MetalIconFactory.TreeFolderIcon\",\"MetalIconFactory.TreeLeafIcon\",\"MetalInternalFrameTitlePane\",\"MetalInternalFrameUI\",\"MetalLabelUI\",\"MetalLookAndFeel\",\"MetalMenuBarUI\",\"MetalPopupMenuSeparatorUI\",\"MetalProgressBarUI\",\"MetalRadioButtonUI\",\"MetalRootPaneUI\",\"MetalScrollBarUI\",\"MetalScrollButton\",\"MetalScrollPaneUI\",\"MetalSeparatorUI\",\"MetalSliderUI\",\"MetalSplitPaneUI\",\"MetalTabbedPaneUI\",\"MetalTextFieldUI\",\"MetalTheme\",\"MetalToggleButtonUI\",\"MetalToolBarUI\",\"MetalToolTipUI\",\"MetalTreeUI\",\"Method\",\"MethodDescriptor\",\"MidiChannel\",\"MidiDevice\",\"MidiDevice.Info\",\"MidiDeviceProvider\",\"MidiEvent\",\"MidiFileFormat\",\"MidiFileReader\",\"MidiFileWriter\",\"MidiMessage\",\"MidiSystem\",\"MidiUnavailableException\",\"MimeHeader\",\"MimeHeaders\",\"MimeType\",\"MimeTypeParameterList\",\"MimeTypeParseException\",\"MimetypesFileTypeMap\",\"MinimalHTMLWriter\",\"MirroredTypeException\",\"MirroredTypesException\",\"MissingFormatArgumentException\",\"MissingFormatWidthException\",\"MissingResourceException\",\"Mixer\",\"Mixer.Info\",\"MixerProvider\",\"ModelMBean\",\"ModelMBeanAttributeInfo\",\"ModelMBeanConstructorInfo\",\"ModelMBeanInfo\",\"ModelMBeanInfoSupport\",\"ModelMBeanNotificationBroadcaster\",\"ModelMBeanNotificationInfo\",\"ModelMBeanOperationInfo\",\"ModificationItem\",\"Modifier\",\"Monitor\",\"MonitorInfo\",\"MonitorMBean\",\"MonitorNotification\",\"MonitorSettingException\",\"MouseAdapter\",\"MouseDragGestureRecognizer\",\"MouseEvent\",\"MouseInfo\",\"MouseInputAdapter\",\"MouseInputListener\",\"MouseListener\",\"MouseMotionAdapter\",\"MouseMotionListener\",\"MouseWheelEvent\",\"MouseWheelListener\",\"MultiButtonUI\",\"MultiColorChooserUI\",\"MultiComboBoxUI\",\"MultiDesktopIconUI\",\"MultiDesktopPaneUI\",\"MultiDoc\",\"MultiDocPrintJob\",\"MultiDocPrintService\",\"MultiFileChooserUI\",\"MultiInternalFrameUI\",\"MultiLabelUI\",\"MultiListUI\",\"MultiLookAndFeel\",\"MultiMenuBarUI\",\"MultiMenuItemUI\",\"MultiOptionPaneUI\",\"MultiPanelUI\",\"MultiPixelPackedSampleModel\",\"MultiPopupMenuUI\",\"MultiProgressBarUI\",\"MultiRootPaneUI\",\"MultiScrollBarUI\",\"MultiScrollPaneUI\",\"MultiSeparatorUI\",\"MultiSliderUI\",\"MultiSpinnerUI\",\"MultiSplitPaneUI\",\"MultiTabbedPaneUI\",\"MultiTableHeaderUI\",\"MultiTableUI\",\"MultiTextUI\",\"MultiToolBarUI\",\"MultiToolTipUI\",\"MultiTreeUI\",\"MultiViewportUI\",\"MulticastSocket\",\"MultipleComponentProfileHelper\",\"MultipleComponentProfileHolder\",\"MultipleDocumentHandling\",\"MultipleGradientPaint\",\"MultipleMaster\",\"MutableAttributeSet\",\"MutableComboBoxModel\",\"MutableTreeNode\",\"MutationEvent\",\"NClob\",\"NON_EXISTENT\",\"NO_IMPLEMENT\",\"NO_MEMORY\",\"NO_PERMISSION\",\"NO_RESOURCES\",\"NO_RESPONSE\",\"NVList\",\"Name\",\"NameAlreadyBoundException\",\"NameCallback\",\"NameClassPair\",\"NameComponent\",\"NameComponentHelper\",\"NameComponentHolder\",\"NameDynAnyPair\",\"NameDynAnyPairHelper\",\"NameDynAnyPairSeqHelper\",\"NameHelper\",\"NameHolder\",\"NameList\",\"NameNotFoundException\",\"NameParser\",\"NameValuePair\",\"NameValuePairHelper\",\"NameValuePairSeqHelper\",\"NamedNodeMap\",\"NamedValue\",\"Namespace\",\"NamespaceChangeListener\",\"NamespaceContext\",\"NamespaceSupport\",\"Naming\",\"NamingContext\",\"NamingContextExt\",\"NamingContextExtHelper\",\"NamingContextExtHolder\",\"NamingContextExtOperations\",\"NamingContextExtPOA\",\"NamingContextHelper\",\"NamingContextHolder\",\"NamingContextOperations\",\"NamingContextPOA\",\"NamingEnumeration\",\"NamingEvent\",\"NamingException\",\"NamingExceptionEvent\",\"NamingListener\",\"NamingManager\",\"NamingSecurityException\",\"NavigableMap\",\"NavigableSet\",\"NavigationFilter\",\"NavigationFilter.FilterBypass\",\"NegativeArraySizeException\",\"NestingKind\",\"NetPermission\",\"NetworkInterface\",\"NoClassDefFoundError\",\"NoConnectionPendingException\",\"NoContext\",\"NoContextHelper\",\"NoInitialContextException\",\"NoPermissionException\",\"NoRouteToHostException\",\"NoServant\",\"NoServantHelper\",\"NoSuchAlgorithmException\",\"NoSuchAttributeException\",\"NoSuchElementException\",\"NoSuchFieldError\",\"NoSuchFieldException\",\"NoSuchMechanismException\",\"NoSuchMethodError\",\"NoSuchMethodException\",\"NoSuchObjectException\",\"NoSuchPaddingException\",\"NoSuchProviderException\",\"NoType\",\"Node\",\"NodeChangeEvent\",\"NodeChangeListener\",\"NodeList\",\"NodeSetData\",\"NonReadableChannelException\",\"NonWritableChannelException\",\"NoninvertibleTransformException\",\"NormalizedStringAdapter\",\"Normalizer\",\"NotActiveException\",\"NotBoundException\",\"NotCompliantMBeanException\",\"NotContextException\",\"NotEmpty\",\"NotEmptyHelper\",\"NotEmptyHolder\",\"NotFound\",\"NotFoundHelper\",\"NotFoundHolder\",\"NotFoundReason\",\"NotFoundReasonHelper\",\"NotFoundReasonHolder\",\"NotIdentifiableEvent\",\"NotIdentifiableEventImpl\",\"NotOwnerException\",\"NotSerializableException\",\"NotYetBoundException\",\"NotYetConnectedException\",\"Notation\",\"NotationDeclaration\",\"Notification\",\"NotificationBroadcaster\",\"NotificationBroadcasterSupport\",\"NotificationEmitter\",\"NotificationFilter\",\"NotificationFilterSupport\",\"NotificationListener\",\"NotificationResult\",\"NullCipher\",\"NullPointerException\",\"NullType\",\"Number\",\"NumberFormat\",\"NumberFormat.Field\",\"NumberFormatException\",\"NumberFormatProvider\",\"NumberFormatter\",\"NumberOfDocuments\",\"NumberOfInterveningJobs\",\"NumberUp\",\"NumberUpSupported\",\"NumericShaper\",\"OAEPParameterSpec\",\"OBJECT_NOT_EXIST\",\"OBJ_ADAPTER\",\"OMGVMCID\",\"ORB\",\"ORBIdHelper\",\"ORBInitInfo\",\"ORBInitInfoOperations\",\"ORBInitializer\",\"ORBInitializerOperations\",\"ObjID\",\"Object\",\"ObjectAlreadyActive\",\"ObjectAlreadyActiveHelper\",\"ObjectChangeListener\",\"ObjectFactory\",\"ObjectFactoryBuilder\",\"ObjectHelper\",\"ObjectHolder\",\"ObjectIdHelper\",\"ObjectImpl\",\"ObjectInput\",\"ObjectInputStream\",\"ObjectInputStream.GetField\",\"ObjectInputValidation\",\"ObjectInstance\",\"ObjectName\",\"ObjectNotActive\",\"ObjectNotActiveHelper\",\"ObjectOutput\",\"ObjectOutputStream\",\"ObjectOutputStream.PutField\",\"ObjectReferenceFactory\",\"ObjectReferenceFactoryHelper\",\"ObjectReferenceFactoryHolder\",\"ObjectReferenceTemplate\",\"ObjectReferenceTemplateHelper\",\"ObjectReferenceTemplateHolder\",\"ObjectReferenceTemplateSeqHelper\",\"ObjectReferenceTemplateSeqHolder\",\"ObjectStreamClass\",\"ObjectStreamConstants\",\"ObjectStreamException\",\"ObjectStreamField\",\"ObjectView\",\"Observable\",\"Observer\",\"OceanTheme\",\"OctetSeqHelper\",\"OctetSeqHolder\",\"OctetStreamData\",\"Oid\",\"Oneway\",\"OpenDataException\",\"OpenMBeanAttributeInfo\",\"OpenMBeanAttributeInfoSupport\",\"OpenMBeanConstructorInfo\",\"OpenMBeanConstructorInfoSupport\",\"OpenMBeanInfo\",\"OpenMBeanInfoSupport\",\"OpenMBeanOperationInfo\",\"OpenMBeanOperationInfoSupport\",\"OpenMBeanParameterInfo\",\"OpenMBeanParameterInfoSupport\",\"OpenType\",\"OperatingSystemMXBean\",\"Operation\",\"OperationNotSupportedException\",\"OperationsException\",\"Option\",\"OptionChecker\",\"OptionPaneUI\",\"OptionalDataException\",\"OrientationRequested\",\"OutOfMemoryError\",\"OutputDeviceAssigned\",\"OutputKeys\",\"OutputStream\",\"OutputStreamWriter\",\"OverlappingFileLockException\",\"OverlayLayout\",\"Override\",\"Owner\",\"PBEKey\",\"PBEKeySpec\",\"PBEParameterSpec\",\"PDLOverrideSupported\",\"PERSIST_STORE\",\"PGPData\",\"PKCS8EncodedKeySpec\",\"PKIXBuilderParameters\",\"PKIXCertPathBuilderResult\",\"PKIXCertPathChecker\",\"PKIXCertPathValidatorResult\",\"PKIXParameters\",\"POA\",\"POAHelper\",\"POAManager\",\"POAManagerOperations\",\"POAOperations\",\"PRIVATE_MEMBER\",\"PSSParameterSpec\",\"PSource\",\"PSource.PSpecified\",\"PUBLIC_MEMBER\",\"Pack200\",\"Pack200.Packer\",\"Pack200.Unpacker\",\"Package\",\"PackageElement\",\"PackedColorModel\",\"PageAttributes\",\"PageAttributes.ColorType\",\"PageAttributes.MediaType\",\"PageAttributes.OrientationRequestedType\",\"PageAttributes.OriginType\",\"PageAttributes.PrintQualityType\",\"PageFormat\",\"PageRanges\",\"Pageable\",\"PagedResultsControl\",\"PagedResultsResponseControl\",\"PagesPerMinute\",\"PagesPerMinuteColor\",\"Paint\",\"PaintContext\",\"PaintEvent\",\"Panel\",\"PanelUI\",\"Paper\",\"ParagraphView\",\"Parameter\",\"ParameterBlock\",\"ParameterDescriptor\",\"ParameterMetaData\",\"ParameterMode\",\"ParameterModeHelper\",\"ParameterModeHolder\",\"ParameterizedType\",\"ParseConversionEvent\",\"ParseConversionEventImpl\",\"ParseException\",\"ParsePosition\",\"Parser\",\"ParserAdapter\",\"ParserConfigurationException\",\"ParserDelegator\",\"ParserFactory\",\"PartialResultException\",\"PasswordAuthentication\",\"PasswordCallback\",\"PasswordView\",\"Patch\",\"Path2D\",\"PathIterator\",\"Pattern\",\"PatternSyntaxException\",\"Permission\",\"PermissionCollection\",\"Permissions\",\"PersistenceDelegate\",\"PersistentMBean\",\"PhantomReference\",\"Pipe\",\"Pipe.SinkChannel\",\"Pipe.SourceChannel\",\"PipedInputStream\",\"PipedOutputStream\",\"PipedReader\",\"PipedWriter\",\"PixelGrabber\",\"PixelInterleavedSampleModel\",\"PlainDocument\",\"PlainView\",\"Point\",\"Point2D\",\"Point2D.Double\",\"Point2D.Float\",\"PointerInfo\",\"Policy\",\"PolicyError\",\"PolicyErrorCodeHelper\",\"PolicyErrorHelper\",\"PolicyErrorHolder\",\"PolicyFactory\",\"PolicyFactoryOperations\",\"PolicyHelper\",\"PolicyHolder\",\"PolicyListHelper\",\"PolicyListHolder\",\"PolicyNode\",\"PolicyOperations\",\"PolicyQualifierInfo\",\"PolicySpi\",\"PolicyTypeHelper\",\"Polygon\",\"PooledConnection\",\"Popup\",\"PopupFactory\",\"PopupMenu\",\"PopupMenuEvent\",\"PopupMenuListener\",\"PopupMenuUI\",\"Port\",\"Port.Info\",\"PortInfo\",\"PortUnreachableException\",\"PortableRemoteObject\",\"PortableRemoteObjectDelegate\",\"Position\",\"Position.Bias\",\"PostConstruct\",\"PreDestroy\",\"Predicate\",\"PreferenceChangeEvent\",\"PreferenceChangeListener\",\"Preferences\",\"PreferencesFactory\",\"PreparedStatement\",\"PresentationDirection\",\"PrimitiveType\",\"Principal\",\"PrincipalHolder\",\"PrintConversionEvent\",\"PrintConversionEventImpl\",\"PrintEvent\",\"PrintException\",\"PrintGraphics\",\"PrintJob\",\"PrintJobAdapter\",\"PrintJobAttribute\",\"PrintJobAttributeEvent\",\"PrintJobAttributeListener\",\"PrintJobAttributeSet\",\"PrintJobEvent\",\"PrintJobListener\",\"PrintQuality\",\"PrintRequestAttribute\",\"PrintRequestAttributeSet\",\"PrintService\",\"PrintServiceAttribute\",\"PrintServiceAttributeEvent\",\"PrintServiceAttributeListener\",\"PrintServiceAttributeSet\",\"PrintServiceLookup\",\"PrintStream\",\"PrintWriter\",\"Printable\",\"PrinterAbortException\",\"PrinterException\",\"PrinterGraphics\",\"PrinterIOException\",\"PrinterInfo\",\"PrinterIsAcceptingJobs\",\"PrinterJob\",\"PrinterLocation\",\"PrinterMakeAndModel\",\"PrinterMessageFromOperator\",\"PrinterMoreInfo\",\"PrinterMoreInfoManufacturer\",\"PrinterName\",\"PrinterResolution\",\"PrinterState\",\"PrinterStateReason\",\"PrinterStateReasons\",\"PrinterURI\",\"PriorityBlockingQueue\",\"PriorityQueue\",\"PrivateClassLoader\",\"PrivateCredentialPermission\",\"PrivateKey\",\"PrivateMLet\",\"PrivilegedAction\",\"PrivilegedActionException\",\"PrivilegedExceptionAction\",\"Process\",\"ProcessBuilder\",\"ProcessingEnvironment\",\"ProcessingInstruction\",\"Processor\",\"ProfileDataException\",\"ProfileIdHelper\",\"ProgressBarUI\",\"ProgressMonitor\",\"ProgressMonitorInputStream\",\"Properties\",\"PropertyChangeEvent\",\"PropertyChangeListener\",\"PropertyChangeListenerProxy\",\"PropertyChangeSupport\",\"PropertyDescriptor\",\"PropertyEditor\",\"PropertyEditorManager\",\"PropertyEditorSupport\",\"PropertyException\",\"PropertyPermission\",\"PropertyResourceBundle\",\"PropertyVetoException\",\"ProtectionDomain\",\"ProtocolException\",\"Provider\",\"Provider.Service\",\"ProviderException\",\"Proxy\",\"Proxy.Type\",\"ProxySelector\",\"PublicKey\",\"PushbackInputStream\",\"PushbackReader\",\"QName\",\"QuadCurve2D\",\"QuadCurve2D.Double\",\"QuadCurve2D.Float\",\"Query\",\"QueryEval\",\"QueryExp\",\"Queue\",\"QueuedJobCount\",\"RC2ParameterSpec\",\"RC5ParameterSpec\",\"REBIND\",\"REQUEST_PROCESSING_POLICY_ID\",\"RGBImageFilter\",\"RMIClassLoader\",\"RMIClassLoaderSpi\",\"RMIClientSocketFactory\",\"RMIConnection\",\"RMIConnectionImpl\",\"RMIConnectionImpl_Stub\",\"RMIConnector\",\"RMIConnectorServer\",\"RMICustomMaxStreamFormat\",\"RMIFailureHandler\",\"RMIIIOPServerImpl\",\"RMIJRMPServerImpl\",\"RMISecurityException\",\"RMISecurityManager\",\"RMIServer\",\"RMIServerImpl\",\"RMIServerImpl_Stub\",\"RMIServerSocketFactory\",\"RMISocketFactory\",\"RSAKey\",\"RSAKeyGenParameterSpec\",\"RSAMultiPrimePrivateCrtKey\",\"RSAMultiPrimePrivateCrtKeySpec\",\"RSAOtherPrimeInfo\",\"RSAPrivateCrtKey\",\"RSAPrivateCrtKeySpec\",\"RSAPrivateKey\",\"RSAPrivateKeySpec\",\"RSAPublicKey\",\"RSAPublicKeySpec\",\"RTFEditorKit\",\"RadialGradientPaint\",\"Random\",\"RandomAccess\",\"RandomAccessFile\",\"Raster\",\"RasterFormatException\",\"RasterOp\",\"Rdn\",\"ReadOnlyBufferException\",\"ReadWriteLock\",\"Readable\",\"ReadableByteChannel\",\"Reader\",\"RealmCallback\",\"RealmChoiceCallback\",\"Receiver\",\"Rectangle\",\"Rectangle2D\",\"Rectangle2D.Double\",\"Rectangle2D.Float\",\"RectangularShape\",\"ReentrantLock\",\"ReentrantReadWriteLock\",\"ReentrantReadWriteLock.ReadLock\",\"ReentrantReadWriteLock.WriteLock\",\"Ref\",\"RefAddr\",\"Reference\",\"ReferenceQueue\",\"ReferenceType\",\"ReferenceUriSchemesSupported\",\"Referenceable\",\"ReferralException\",\"ReflectPermission\",\"ReflectionException\",\"RefreshFailedException\",\"Refreshable\",\"Region\",\"RegisterableService\",\"Registry\",\"RegistryHandler\",\"RejectedExecutionException\",\"RejectedExecutionHandler\",\"Relation\",\"RelationException\",\"RelationNotFoundException\",\"RelationNotification\",\"RelationService\",\"RelationServiceMBean\",\"RelationServiceNotRegisteredException\",\"RelationSupport\",\"RelationSupportMBean\",\"RelationType\",\"RelationTypeNotFoundException\",\"RelationTypeSupport\",\"RemarshalException\",\"Remote\",\"RemoteCall\",\"RemoteException\",\"RemoteObject\",\"RemoteObjectInvocationHandler\",\"RemoteRef\",\"RemoteServer\",\"RemoteStub\",\"RenderContext\",\"RenderableImage\",\"RenderableImageOp\",\"RenderableImageProducer\",\"RenderedImage\",\"RenderedImageFactory\",\"Renderer\",\"RenderingHints\",\"RenderingHints.Key\",\"RepaintManager\",\"ReplicateScaleFilter\",\"RepositoryIdHelper\",\"Request\",\"RequestInfo\",\"RequestInfoOperations\",\"RequestProcessingPolicy\",\"RequestProcessingPolicyOperations\",\"RequestProcessingPolicyValue\",\"RequestWrapper\",\"RequestingUserName\",\"RequiredModelMBean\",\"RescaleOp\",\"ResolutionSyntax\",\"ResolveResult\",\"Resolver\",\"Resource\",\"ResourceBundle\",\"Resources\",\"Response\",\"ResponseCache\",\"ResponseHandler\",\"ResponseWrapper\",\"Result\",\"ResultSet\",\"ResultSetMetaData\",\"Retention\",\"RetentionPolicy\",\"RetrievalMethod\",\"ReverbType\",\"Robot\",\"Role\",\"RoleInfo\",\"RoleInfoNotFoundException\",\"RoleList\",\"RoleNotFoundException\",\"RoleResult\",\"RoleStatus\",\"RoleUnresolved\",\"RoleUnresolvedList\",\"RootPaneContainer\",\"RootPaneUI\",\"RoundEnvironment\",\"RoundRectangle2D\",\"RoundRectangle2D.Double\",\"RoundRectangle2D.Float\",\"RoundingMode\",\"RowFilter\",\"RowId\",\"RowIdLifetime\",\"RowMapper\",\"RowSet\",\"RowSetEvent\",\"RowSetInternal\",\"RowSetListener\",\"RowSetMetaData\",\"RowSetMetaDataImpl\",\"RowSetReader\",\"RowSetWarning\",\"RowSetWriter\",\"RowSorter\",\"RowSorterEvent\",\"RowSorterListener\",\"RuleBasedCollator\",\"RunTime\",\"RunTimeOperations\",\"Runnable\",\"RunnableFuture\",\"RunnableScheduledFuture\",\"Runtime\",\"RuntimeErrorException\",\"RuntimeException\",\"RuntimeMBeanException\",\"RuntimeMXBean\",\"RuntimeOperationsException\",\"RuntimePermission\",\"SAAJMetaFactory\",\"SAAJResult\",\"SAXException\",\"SAXNotRecognizedException\",\"SAXNotSupportedException\",\"SAXParseException\",\"SAXParser\",\"SAXParserFactory\",\"SAXResult\",\"SAXSource\",\"SAXTransformerFactory\",\"SERVANT_RETENTION_POLICY_ID\",\"SOAPBinding\",\"SOAPBody\",\"SOAPBodyElement\",\"SOAPConnection\",\"SOAPConnectionFactory\",\"SOAPConstants\",\"SOAPElement\",\"SOAPElementFactory\",\"SOAPEnvelope\",\"SOAPException\",\"SOAPFactory\",\"SOAPFault\",\"SOAPFaultElement\",\"SOAPFaultException\",\"SOAPHandler\",\"SOAPHeader\",\"SOAPHeaderElement\",\"SOAPMessage\",\"SOAPMessageContext\",\"SOAPMessageHandler\",\"SOAPMessageHandlers\",\"SOAPPart\",\"SQLClientInfoException\",\"SQLData\",\"SQLDataException\",\"SQLException\",\"SQLFeatureNotSupportedException\",\"SQLInput\",\"SQLInputImpl\",\"SQLIntegrityConstraintViolationException\",\"SQLInvalidAuthorizationSpecException\",\"SQLNonTransientConnectionException\",\"SQLNonTransientException\",\"SQLOutput\",\"SQLOutputImpl\",\"SQLPermission\",\"SQLRecoverableException\",\"SQLSyntaxErrorException\",\"SQLTimeoutException\",\"SQLTransactionRollbackException\",\"SQLTransientConnectionException\",\"SQLTransientException\",\"SQLWarning\",\"SQLXML\",\"SSLContext\",\"SSLContextSpi\",\"SSLEngine\",\"SSLEngineResult\",\"SSLEngineResult.HandshakeStatus\",\"SSLEngineResult.Status\",\"SSLException\",\"SSLHandshakeException\",\"SSLKeyException\",\"SSLParameters\",\"SSLPeerUnverifiedException\",\"SSLPermission\",\"SSLProtocolException\",\"SSLServerSocket\",\"SSLServerSocketFactory\",\"SSLSession\",\"SSLSessionBindingEvent\",\"SSLSessionBindingListener\",\"SSLSessionContext\",\"SSLSocket\",\"SSLSocketFactory\",\"SUCCESSFUL\",\"SYNC_WITH_TRANSPORT\",\"SYSTEM_EXCEPTION\",\"SampleModel\",\"Sasl\",\"SaslClient\",\"SaslClientFactory\",\"SaslException\",\"SaslServer\",\"SaslServerFactory\",\"Savepoint\",\"Scanner\",\"ScatteringByteChannel\",\"ScheduledExecutorService\",\"ScheduledFuture\",\"ScheduledThreadPoolExecutor\",\"Schema\",\"SchemaFactory\",\"SchemaFactoryLoader\",\"SchemaOutputResolver\",\"SchemaViolationException\",\"ScriptContext\",\"ScriptEngine\",\"ScriptEngineFactory\",\"ScriptEngineManager\",\"ScriptException\",\"ScrollBarUI\",\"ScrollPane\",\"ScrollPaneAdjustable\",\"ScrollPaneConstants\",\"ScrollPaneLayout\",\"ScrollPaneLayout.UIResource\",\"ScrollPaneUI\",\"Scrollable\",\"Scrollbar\",\"SealedObject\",\"SearchControls\",\"SearchResult\",\"SecretKey\",\"SecretKeyFactory\",\"SecretKeyFactorySpi\",\"SecretKeySpec\",\"SecureCacheResponse\",\"SecureClassLoader\",\"SecureRandom\",\"SecureRandomSpi\",\"Security\",\"SecurityException\",\"SecurityManager\",\"SecurityPermission\",\"Segment\",\"SelectableChannel\",\"SelectionKey\",\"Selector\",\"SelectorProvider\",\"Semaphore\",\"SeparatorUI\",\"Sequence\",\"SequenceInputStream\",\"Sequencer\",\"Sequencer.SyncMode\",\"SerialArray\",\"SerialBlob\",\"SerialClob\",\"SerialDatalink\",\"SerialException\",\"SerialJavaObject\",\"SerialRef\",\"SerialStruct\",\"Serializable\",\"SerializablePermission\",\"Servant\",\"ServantActivator\",\"ServantActivatorHelper\",\"ServantActivatorOperations\",\"ServantActivatorPOA\",\"ServantAlreadyActive\",\"ServantAlreadyActiveHelper\",\"ServantLocator\",\"ServantLocatorHelper\",\"ServantLocatorOperations\",\"ServantLocatorPOA\",\"ServantManager\",\"ServantManagerOperations\",\"ServantNotActive\",\"ServantNotActiveHelper\",\"ServantObject\",\"ServantRetentionPolicy\",\"ServantRetentionPolicyOperations\",\"ServantRetentionPolicyValue\",\"ServerCloneException\",\"ServerError\",\"ServerException\",\"ServerIdHelper\",\"ServerNotActiveException\",\"ServerRef\",\"ServerRequest\",\"ServerRequestInfo\",\"ServerRequestInfoOperations\",\"ServerRequestInterceptor\",\"ServerRequestInterceptorOperations\",\"ServerRuntimeException\",\"ServerSocket\",\"ServerSocketChannel\",\"ServerSocketFactory\",\"Service\",\"ServiceConfigurationError\",\"ServiceContext\",\"ServiceContextHelper\",\"ServiceContextHolder\",\"ServiceContextListHelper\",\"ServiceContextListHolder\",\"ServiceDelegate\",\"ServiceDetail\",\"ServiceDetailHelper\",\"ServiceIdHelper\",\"ServiceInformation\",\"ServiceInformationHelper\",\"ServiceInformationHolder\",\"ServiceLoader\",\"ServiceMode\",\"ServiceNotFoundException\",\"ServicePermission\",\"ServiceRegistry\",\"ServiceRegistry.Filter\",\"ServiceUI\",\"ServiceUIFactory\",\"ServiceUnavailableException\",\"Set\",\"SetOfIntegerSyntax\",\"SetOverrideType\",\"SetOverrideTypeHelper\",\"Severity\",\"Shape\",\"ShapeGraphicAttribute\",\"SheetCollate\",\"Short\",\"ShortBuffer\",\"ShortBufferException\",\"ShortHolder\",\"ShortLookupTable\",\"ShortMessage\",\"ShortSeqHelper\",\"ShortSeqHolder\",\"Sides\",\"Signature\",\"SignatureException\",\"SignatureMethod\",\"SignatureMethodParameterSpec\",\"SignatureProperties\",\"SignatureProperty\",\"SignatureSpi\",\"SignedInfo\",\"SignedObject\",\"Signer\",\"SimpleAnnotationValueVisitor6\",\"SimpleAttributeSet\",\"SimpleBeanInfo\",\"SimpleBindings\",\"SimpleDateFormat\",\"SimpleDoc\",\"SimpleElementVisitor6\",\"SimpleFormatter\",\"SimpleJavaFileObject\",\"SimpleScriptContext\",\"SimpleTimeZone\",\"SimpleType\",\"SimpleTypeVisitor6\",\"SinglePixelPackedSampleModel\",\"SingleSelectionModel\",\"Size2DSyntax\",\"SizeLimitExceededException\",\"SizeRequirements\",\"SizeSequence\",\"Skeleton\",\"SkeletonMismatchException\",\"SkeletonNotFoundException\",\"SliderUI\",\"Socket\",\"SocketAddress\",\"SocketChannel\",\"SocketException\",\"SocketFactory\",\"SocketHandler\",\"SocketImpl\",\"SocketImplFactory\",\"SocketOptions\",\"SocketPermission\",\"SocketSecurityException\",\"SocketTimeoutException\",\"SoftBevelBorder\",\"SoftReference\",\"SortControl\",\"SortKey\",\"SortOrder\",\"SortResponseControl\",\"SortedMap\",\"SortedSet\",\"SortingFocusTraversalPolicy\",\"Soundbank\",\"SoundbankReader\",\"SoundbankResource\",\"Source\",\"SourceDataLine\",\"SourceLocator\",\"SourceVersion\",\"SpinnerDateModel\",\"SpinnerListModel\",\"SpinnerModel\",\"SpinnerNumberModel\",\"SpinnerUI\",\"SplashScreen\",\"SplitPaneUI\",\"Spring\",\"SpringLayout\",\"SpringLayout.Constraints\",\"SslRMIClientSocketFactory\",\"SslRMIServerSocketFactory\",\"StAXResult\",\"StAXSource\",\"Stack\",\"StackOverflowError\",\"StackTraceElement\",\"StandardEmitterMBean\",\"StandardJavaFileManager\",\"StandardLocation\",\"StandardMBean\",\"StartDocument\",\"StartElement\",\"StartTlsRequest\",\"StartTlsResponse\",\"State\",\"StateEdit\",\"StateEditable\",\"StateFactory\",\"Statement\",\"StatementEvent\",\"StatementEventListener\",\"StreamCorruptedException\",\"StreamFilter\",\"StreamHandler\",\"StreamPrintService\",\"StreamPrintServiceFactory\",\"StreamReaderDelegate\",\"StreamResult\",\"StreamSource\",\"StreamTokenizer\",\"Streamable\",\"StreamableValue\",\"StrictMath\",\"String\",\"StringBuffer\",\"StringBufferInputStream\",\"StringBuilder\",\"StringCharacterIterator\",\"StringContent\",\"StringHolder\",\"StringIndexOutOfBoundsException\",\"StringMonitor\",\"StringMonitorMBean\",\"StringNameHelper\",\"StringReader\",\"StringRefAddr\",\"StringSelection\",\"StringSeqHelper\",\"StringSeqHolder\",\"StringTokenizer\",\"StringValueExp\",\"StringValueHelper\",\"StringWriter\",\"Stroke\",\"Struct\",\"StructMember\",\"StructMemberHelper\",\"Stub\",\"StubDelegate\",\"StubNotFoundException\",\"Style\",\"StyleConstants\",\"StyleConstants.CharacterConstants\",\"StyleConstants.ColorConstants\",\"StyleConstants.FontConstants\",\"StyleConstants.ParagraphConstants\",\"StyleContext\",\"StyleSheet\",\"StyleSheet.BoxPainter\",\"StyleSheet.ListPainter\",\"StyledDocument\",\"StyledEditorKit\",\"StyledEditorKit.AlignmentAction\",\"StyledEditorKit.BoldAction\",\"StyledEditorKit.FontFamilyAction\",\"StyledEditorKit.FontSizeAction\",\"StyledEditorKit.ForegroundAction\",\"StyledEditorKit.ItalicAction\",\"StyledEditorKit.StyledTextAction\",\"StyledEditorKit.UnderlineAction\",\"Subject\",\"SubjectDelegationPermission\",\"SubjectDomainCombiner\",\"SupportedAnnotationTypes\",\"SupportedOptions\",\"SupportedSourceVersion\",\"SupportedValuesAttribute\",\"SuppressWarnings\",\"SwingConstants\",\"SwingPropertyChangeSupport\",\"SwingUtilities\",\"SwingWorker\",\"SyncFactory\",\"SyncFactoryException\",\"SyncFailedException\",\"SyncProvider\",\"SyncProviderException\",\"SyncResolver\",\"SyncScopeHelper\",\"SynchronousQueue\",\"SynthConstants\",\"SynthContext\",\"SynthGraphicsUtils\",\"SynthLookAndFeel\",\"SynthPainter\",\"SynthStyle\",\"SynthStyleFactory\",\"Synthesizer\",\"SysexMessage\",\"System\",\"SystemColor\",\"SystemException\",\"SystemFlavorMap\",\"SystemTray\",\"TAG_ALTERNATE_IIOP_ADDRESS\",\"TAG_CODE_SETS\",\"TAG_INTERNET_IOP\",\"TAG_JAVA_CODEBASE\",\"TAG_MULTIPLE_COMPONENTS\",\"TAG_ORB_TYPE\",\"TAG_POLICIES\",\"TAG_RMI_CUSTOM_MAX_STREAM_FORMAT\",\"TCKind\",\"THREAD_POLICY_ID\",\"TIMEOUT\",\"TRANSACTION_MODE\",\"TRANSACTION_REQUIRED\",\"TRANSACTION_ROLLEDBACK\",\"TRANSACTION_UNAVAILABLE\",\"TRANSIENT\",\"TRANSPORT_RETRY\",\"TabExpander\",\"TabSet\",\"TabStop\",\"TabableView\",\"TabbedPaneUI\",\"TableCellEditor\",\"TableCellRenderer\",\"TableColumn\",\"TableColumnModel\",\"TableColumnModelEvent\",\"TableColumnModelListener\",\"TableHeaderUI\",\"TableModel\",\"TableModelEvent\",\"TableModelListener\",\"TableRowSorter\",\"TableStringConverter\",\"TableUI\",\"TableView\",\"TabularData\",\"TabularDataSupport\",\"TabularType\",\"TagElement\",\"TaggedComponent\",\"TaggedComponentHelper\",\"TaggedComponentHolder\",\"TaggedProfile\",\"TaggedProfileHelper\",\"TaggedProfileHolder\",\"Target\",\"TargetDataLine\",\"TargetedNotification\",\"Templates\",\"TemplatesHandler\",\"Text\",\"TextAction\",\"TextArea\",\"TextAttribute\",\"TextComponent\",\"TextEvent\",\"TextField\",\"TextHitInfo\",\"TextInputCallback\",\"TextLayout\",\"TextLayout.CaretPolicy\",\"TextListener\",\"TextMeasurer\",\"TextOutputCallback\",\"TextSyntax\",\"TextUI\",\"TexturePaint\",\"Thread\",\"Thread.State\",\"Thread.UncaughtExceptionHandler\",\"ThreadDeath\",\"ThreadFactory\",\"ThreadGroup\",\"ThreadInfo\",\"ThreadLocal\",\"ThreadMXBean\",\"ThreadPolicy\",\"ThreadPolicyOperations\",\"ThreadPolicyValue\",\"ThreadPoolExecutor\",\"ThreadPoolExecutor.AbortPolicy\",\"ThreadPoolExecutor.CallerRunsPolicy\",\"ThreadPoolExecutor.DiscardOldestPolicy\",\"ThreadPoolExecutor.DiscardPolicy\",\"Throwable\",\"Tie\",\"TileObserver\",\"Time\",\"TimeLimitExceededException\",\"TimeUnit\",\"TimeZone\",\"TimeZoneNameProvider\",\"TimeoutException\",\"Timer\",\"TimerAlarmClockNotification\",\"TimerMBean\",\"TimerNotification\",\"TimerTask\",\"Timestamp\",\"TitledBorder\",\"TooManyListenersException\",\"Tool\",\"ToolBarUI\",\"ToolProvider\",\"ToolTipManager\",\"ToolTipUI\",\"Toolkit\",\"Track\",\"TransactionRequiredException\",\"TransactionRolledbackException\",\"TransactionService\",\"TransactionalWriter\",\"TransferHandler\",\"Transferable\",\"Transform\",\"TransformAttribute\",\"TransformException\",\"TransformParameterSpec\",\"TransformService\",\"Transformer\",\"TransformerConfigurationException\",\"TransformerException\",\"TransformerFactory\",\"TransformerFactoryConfigurationError\",\"TransformerHandler\",\"Transmitter\",\"Transparency\",\"TrayIcon\",\"TreeCellEditor\",\"TreeCellRenderer\",\"TreeExpansionEvent\",\"TreeExpansionListener\",\"TreeMap\",\"TreeModel\",\"TreeModelEvent\",\"TreeModelListener\",\"TreeNode\",\"TreePath\",\"TreeSelectionEvent\",\"TreeSelectionListener\",\"TreeSelectionModel\",\"TreeSet\",\"TreeUI\",\"TreeWillExpandListener\",\"TrustAnchor\",\"TrustManager\",\"TrustManagerFactory\",\"TrustManagerFactorySpi\",\"Type\",\"TypeCode\",\"TypeCodeHolder\",\"TypeConstraintException\",\"TypeElement\",\"TypeInfo\",\"TypeInfoProvider\",\"TypeKind\",\"TypeKindVisitor6\",\"TypeMirror\",\"TypeMismatch\",\"TypeMismatchHelper\",\"TypeNotPresentException\",\"TypeParameterElement\",\"TypeVariable\",\"TypeVisitor\",\"Types\",\"UID\",\"UIDefaults\",\"UIDefaults.ActiveValue\",\"UIDefaults.LazyInputMap\",\"UIDefaults.LazyValue\",\"UIDefaults.ProxyLazyValue\",\"UIEvent\",\"UIManager\",\"UIManager.LookAndFeelInfo\",\"UIResource\",\"ULongLongSeqHelper\",\"ULongLongSeqHolder\",\"ULongSeqHelper\",\"ULongSeqHolder\",\"UNKNOWN\",\"UNSUPPORTED_POLICY\",\"UNSUPPORTED_POLICY_VALUE\",\"URI\",\"URIDereferencer\",\"URIException\",\"URIParameter\",\"URIReference\",\"URIReferenceException\",\"URIResolver\",\"URISyntax\",\"URISyntaxException\",\"URL\",\"URLClassLoader\",\"URLConnection\",\"URLDataSource\",\"URLDecoder\",\"URLEncoder\",\"URLStreamHandler\",\"URLStreamHandlerFactory\",\"URLStringHelper\",\"USER_EXCEPTION\",\"UShortSeqHelper\",\"UShortSeqHolder\",\"UTFDataFormatException\",\"UUID\",\"UndeclaredThrowableException\",\"UndoManager\",\"UndoableEdit\",\"UndoableEditEvent\",\"UndoableEditListener\",\"UndoableEditSupport\",\"UnexpectedException\",\"UnicastRemoteObject\",\"UnionMember\",\"UnionMemberHelper\",\"UnknownAnnotationValueException\",\"UnknownElementException\",\"UnknownEncoding\",\"UnknownEncodingHelper\",\"UnknownError\",\"UnknownException\",\"UnknownFormatConversionException\",\"UnknownFormatFlagsException\",\"UnknownGroupException\",\"UnknownHostException\",\"UnknownObjectException\",\"UnknownServiceException\",\"UnknownTypeException\",\"UnknownUserException\",\"UnknownUserExceptionHelper\",\"UnknownUserExceptionHolder\",\"UnmappableCharacterException\",\"UnmarshalException\",\"Unmarshaller\",\"UnmarshallerHandler\",\"UnmodifiableClassException\",\"UnmodifiableSetException\",\"UnrecoverableEntryException\",\"UnrecoverableKeyException\",\"Unreferenced\",\"UnresolvedAddressException\",\"UnresolvedPermission\",\"UnsatisfiedLinkError\",\"UnsolicitedNotification\",\"UnsolicitedNotificationEvent\",\"UnsolicitedNotificationListener\",\"UnsupportedAddressTypeException\",\"UnsupportedAudioFileException\",\"UnsupportedCallbackException\",\"UnsupportedCharsetException\",\"UnsupportedClassVersionError\",\"UnsupportedDataTypeException\",\"UnsupportedEncodingException\",\"UnsupportedFlavorException\",\"UnsupportedLookAndFeelException\",\"UnsupportedOperationException\",\"UserDataHandler\",\"UserException\",\"Util\",\"UtilDelegate\",\"Utilities\",\"VMID\",\"VM_ABSTRACT\",\"VM_CUSTOM\",\"VM_NONE\",\"VM_TRUNCATABLE\",\"ValidationEvent\",\"ValidationEventCollector\",\"ValidationEventHandler\",\"ValidationEventImpl\",\"ValidationEventLocator\",\"ValidationEventLocatorImpl\",\"ValidationException\",\"Validator\",\"ValidatorHandler\",\"ValueBase\",\"ValueBaseHelper\",\"ValueBaseHolder\",\"ValueExp\",\"ValueFactory\",\"ValueHandler\",\"ValueHandlerMultiFormat\",\"ValueInputStream\",\"ValueMember\",\"ValueMemberHelper\",\"ValueOutputStream\",\"VariableElement\",\"VariableHeightLayoutCache\",\"Vector\",\"VerifyError\",\"VersionSpecHelper\",\"VetoableChangeListener\",\"VetoableChangeListenerProxy\",\"VetoableChangeSupport\",\"View\",\"ViewFactory\",\"ViewportLayout\",\"ViewportUI\",\"VirtualMachineError\",\"Visibility\",\"VisibilityHelper\",\"VoiceStatus\",\"Void\",\"VolatileImage\",\"W3CDomHandler\",\"WCharSeqHelper\",\"WCharSeqHolder\",\"WStringSeqHelper\",\"WStringSeqHolder\",\"WStringValueHelper\",\"WeakHashMap\",\"WeakReference\",\"WebEndpoint\",\"WebFault\",\"WebMethod\",\"WebParam\",\"WebResult\",\"WebRowSet\",\"WebService\",\"WebServiceClient\",\"WebServiceContext\",\"WebServiceException\",\"WebServicePermission\",\"WebServiceProvider\",\"WebServiceRef\",\"WebServiceRefs\",\"WildcardType\",\"Window\",\"WindowAdapter\",\"WindowConstants\",\"WindowEvent\",\"WindowFocusListener\",\"WindowListener\",\"WindowStateListener\",\"WrappedPlainView\",\"Wrapper\",\"WritableByteChannel\",\"WritableRaster\",\"WritableRenderedImage\",\"WriteAbortedException\",\"Writer\",\"WrongAdapter\",\"WrongAdapterHelper\",\"WrongPolicy\",\"WrongPolicyHelper\",\"WrongTransaction\",\"WrongTransactionHelper\",\"WrongTransactionHolder\",\"X500Principal\",\"X500PrivateCredential\",\"X509CRL\",\"X509CRLEntry\",\"X509CRLSelector\",\"X509CertSelector\",\"X509Certificate\",\"X509Data\",\"X509EncodedKeySpec\",\"X509ExtendedKeyManager\",\"X509Extension\",\"X509IssuerSerial\",\"X509KeyManager\",\"X509TrustManager\",\"XAConnection\",\"XADataSource\",\"XAException\",\"XAResource\",\"XMLConstants\",\"XMLCryptoContext\",\"XMLDecoder\",\"XMLEncoder\",\"XMLEvent\",\"XMLEventAllocator\",\"XMLEventConsumer\",\"XMLEventFactory\",\"XMLEventReader\",\"XMLEventWriter\",\"XMLFilter\",\"XMLFilterImpl\",\"XMLFormatter\",\"XMLGregorianCalendar\",\"XMLInputFactory\",\"XMLObject\",\"XMLOutputFactory\",\"XMLParseException\",\"XMLReader\",\"XMLReaderAdapter\",\"XMLReaderFactory\",\"XMLReporter\",\"XMLResolver\",\"XMLSignContext\",\"XMLSignature\",\"XMLSignatureException\",\"XMLSignatureFactory\",\"XMLStreamConstants\",\"XMLStreamException\",\"XMLStreamReader\",\"XMLStreamWriter\",\"XMLStructure\",\"XMLValidateContext\",\"XPath\",\"XPathConstants\",\"XPathException\",\"XPathExpression\",\"XPathExpressionException\",\"XPathFactory\",\"XPathFactoryConfigurationException\",\"XPathFilter2ParameterSpec\",\"XPathFilterParameterSpec\",\"XPathFunction\",\"XPathFunctionException\",\"XPathFunctionResolver\",\"XPathType\",\"XPathVariableResolver\",\"XSLTTransformParameterSpec\",\"Xid\",\"XmlAccessOrder\",\"XmlAccessType\",\"XmlAccessorOrder\",\"XmlAccessorType\",\"XmlAdapter\",\"XmlAnyAttribute\",\"XmlAnyElement\",\"XmlAttachmentRef\",\"XmlAttribute\",\"XmlElement\",\"XmlElementDecl\",\"XmlElementRef\",\"XmlElementRefs\",\"XmlElementWrapper\",\"XmlElements\",\"XmlEnum\",\"XmlEnumValue\",\"XmlID\",\"XmlIDREF\",\"XmlInlineBinaryData\",\"XmlJavaTypeAdapter\",\"XmlJavaTypeAdapters\",\"XmlList\",\"XmlMimeType\",\"XmlMixed\",\"XmlNs\",\"XmlNsForm\",\"XmlReader\",\"XmlRegistry\",\"XmlRootElement\",\"XmlSchema\",\"XmlSchemaType\",\"XmlSchemaTypes\",\"XmlTransient\",\"XmlType\",\"XmlValue\",\"XmlWriter\",\"ZipEntry\",\"ZipError\",\"ZipException\",\"ZipFile\",\"ZipInputStream\",\"ZipOutputStream\",\"ZoneView\",\"_BindingIteratorImplBase\",\"_BindingIteratorStub\",\"_DynAnyFactoryStub\",\"_DynAnyStub\",\"_DynArrayStub\",\"_DynEnumStub\",\"_DynFixedStub\",\"_DynSequenceStub\",\"_DynStructStub\",\"_DynUnionStub\",\"_DynValueStub\",\"_IDLTypeStub\",\"_NamingContextExtStub\",\"_NamingContextImplBase\",\"_NamingContextStub\",\"_PolicyStub\",\"_Remote_Stub\",\"_ServantActivatorStub\",\"_ServantLocatorStub\"])), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [Rule {rMatcher = AnyChar \"fF\", rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [Rule {rMatcher = StringDetect \"L\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"'\\\\\\\\u[0-9a-fA-F]{4}'\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"//\\\\s*BEGIN.*$\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"//\\\\s*END.*$\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Java\",\"String\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.(format|printf)\\\\b\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Java\",\"EnterPrintf\")]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Java\",\"Commentar 1\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Java\",\"Commentar 2\")]},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.{3,3}\\\\s+\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(import\\\\s+static)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Java\",\"StaticImports\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(package|import)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Java\",\"Imports\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[_\\\\w][_\\\\w\\\\d]*(?=[\\\\s]*(/\\\\*\\\\s*\\\\d+\\\\s*\\\\*/\\\\s*)?[(])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"@[_\\\\w][_\\\\w\\\\d]*\", reCaseSensitive = True}), rAttribute = AttributeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[.]{1,1}\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Java\",\"Member\")]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Java\",\"InFunctionCall\")]},Rule {rMatcher = AnyChar \":!%&+,-/.*<=>?[]|~^;\", 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}),(\"Printf\",Context {cName = \"Printf\", cSyntax = \"Java\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Java\",\"PrintfString\")]},Rule {rMatcher = IncludeRules (\"Java\",\"InFunctionCall\"), 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}),(\"PrintfString\",Context {cName = \"PrintfString\", cSyntax = \"Java\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCStringChar, rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"%(\\\\d+\\\\$)?(-|#|\\\\+|\\\\ |0|,|\\\\()*\\\\d*(\\\\.\\\\d+)?[a-hosxA-CEGHSX]\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%(\\\\d+\\\\$)?(-|#|\\\\+|\\\\ |0|,|\\\\()*\\\\d*(t|T)(a|A|b|B|c|C|d|D|e|F|h|H|I|j|k|l|L|m|M|N|p|P|Q|r|R|s|S|T|y|Y|z|Z)\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%(%|n)\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"StaticImports\",Context {cName = \"StaticImports\", cSyntax = \"Java\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*.*;\", reCaseSensitive = True}), rAttribute = ImportTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Java\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCStringChar, rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\u[0-9a-fA-F]{4}\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Alfredo Luiz Foltran Fialho (alfoltran@ig.com.br)\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [\"*.java\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Javadoc.hs b/src/Skylighting/Syntax/Javadoc.hs
--- a/src/Skylighting/Syntax/Javadoc.hs
+++ b/src/Skylighting/Syntax/Javadoc.hs
@@ -2,1051 +2,6 @@
 module Skylighting.Syntax.Javadoc (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Javadoc"
-  , sFilename = "javadoc.xml"
-  , sShortname = "Javadoc"
-  , sContexts =
-      fromList
-        [ ( "FindJavadoc"
-          , Context
-              { cName = "FindJavadoc"
-              , cSyntax = "Javadoc"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "/**/"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "/**"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "JavadocFSar" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "InlineTagar"
-          , Context
-              { cName = "InlineTagar"
-              , cSyntax = "Javadoc"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "HTML" , "" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "JavadocFSar"
-          , Context
-              { cName = "JavadocFSar"
-              , cSyntax = "Javadoc"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , 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 = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "Javadocar" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\.\\s*$)"
-                              , reCompiled = Just (compileRegex True "(\\.\\s*$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "Javadocar" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\.\\s)(?![\\da-z])"
-                              , reCompiled = Just (compileRegex True "(\\.\\s)(?![\\da-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "Javadocar" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\**\\s*(?=@(author|deprecated|exception|param|return|see|serial|serialData|serialField|since|throws|version)(\\s|$))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\**\\s*(?=@(author|deprecated|exception|param|return|see|serial|serialData|serialField|since|throws|version)(\\s|$))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "Javadocar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@code "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "LiteralTagar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@code "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "LiteralTagar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@docRoot}"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@inheritDoc}"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@link "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "InlineTagar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@link "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "InlineTagar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@linkplain "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "InlineTagar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@linkplain "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "InlineTagar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@literal "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "LiteralTagar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@literal "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "LiteralTagar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@value}"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@value "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "InlineTagar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@value "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "InlineTagar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "HTML" , "" )
-                      , 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
-              }
-          )
-        , ( "JavadocParam"
-          , Context
-              { cName = "JavadocParam"
-              , cSyntax = "Javadoc"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , 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 = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S*(\\s|$)"
-                              , reCompiled = Just (compileRegex True "\\S*(\\s|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Javadocar"
-          , Context
-              { cName = "Javadocar"
-              , cSyntax = "Javadoc"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\*+(?!/)"
-                              , reCompiled = Just (compileRegex True "\\*+(?!/)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@author "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@deprecated "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@exception "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "JavadocParam" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@param "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "JavadocParam" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@return "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@see "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "SeeTag" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@serial "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@serialData "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@serialField "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@since "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@throws "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "JavadocParam" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@version "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@author "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@deprecated "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@exception "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "JavadocParam" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@param "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "JavadocParam" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@return "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@see "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "SeeTag" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@serial "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@serialData "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@serialField "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@since "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@throws "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "JavadocParam" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@version "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@code "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "LiteralTagar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@code "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "LiteralTagar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@docRoot}"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@inheritDoc}"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@link "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "InlineTagar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@link "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "InlineTagar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@linkplain "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "InlineTagar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@linkplain "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "InlineTagar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@literal "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "LiteralTagar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@literal "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "LiteralTagar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@value}"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@value "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "InlineTagar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{@value "
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Javadoc" , "InlineTagar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "HTML" , "" )
-                      , 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
-              }
-          )
-        , ( "LiteralTagar"
-          , Context
-              { cName = "LiteralTagar"
-              , cSyntax = "Javadoc"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SeeTag"
-          , Context
-              { cName = "SeeTag"
-              , cSyntax = "Javadoc"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "HTML" , "" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Start"
-          , Context
-              { cName = "Start"
-              , cSyntax = "Javadoc"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Javadoc" , "FindJavadoc" )
-                      , 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
-              }
-          )
-        ]
-  , sAuthor = "Alfredo Luiz Foltran Fialho (alfoltran@ig.com.br)"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions = []
-  , sStartingContext = "Start"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Javadoc\", sFilename = \"javadoc.xml\", sShortname = \"Javadoc\", sContexts = fromList [(\"FindJavadoc\",Context {cName = \"FindJavadoc\", cSyntax = \"Javadoc\", cRules = [Rule {rMatcher = StringDetect \"/**/\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"/**\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"JavadocFSar\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"InlineTagar\",Context {cName = \"InlineTagar\", cSyntax = \"Javadoc\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = IncludeRules (\"HTML\",\"\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"JavadocFSar\",Context {cName = \"JavadocFSar\", cSyntax = \"Javadoc\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(!|\\\\?)\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"Javadocar\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\.\\\\s*$)\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"Javadocar\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\.\\\\s)(?![\\\\da-z])\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"Javadocar\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\**\\\\s*(?=@(author|deprecated|exception|param|return|see|serial|serialData|serialField|since|throws|version)(\\\\s|$))\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"Javadocar\")]},Rule {rMatcher = StringDetect \"{@code \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"LiteralTagar\")]},Rule {rMatcher = StringDetect \"{@code \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"LiteralTagar\")]},Rule {rMatcher = StringDetect \"{@docRoot}\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"{@inheritDoc}\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"{@link \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"InlineTagar\")]},Rule {rMatcher = StringDetect \"{@link \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"InlineTagar\")]},Rule {rMatcher = StringDetect \"{@linkplain \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"InlineTagar\")]},Rule {rMatcher = StringDetect \"{@linkplain \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"InlineTagar\")]},Rule {rMatcher = StringDetect \"{@literal \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"LiteralTagar\")]},Rule {rMatcher = StringDetect \"{@literal \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"LiteralTagar\")]},Rule {rMatcher = StringDetect \"{@value}\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"{@value \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"InlineTagar\")]},Rule {rMatcher = StringDetect \"{@value \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"InlineTagar\")]},Rule {rMatcher = IncludeRules (\"HTML\",\"\"), 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}),(\"JavadocParam\",Context {cName = \"JavadocParam\", cSyntax = \"Javadoc\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S*(?=\\\\*/)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S*(\\\\s|$)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Javadocar\",Context {cName = \"Javadocar\", cSyntax = \"Javadoc\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\*+(?!/)\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"@author \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"@deprecated \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"@exception \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"JavadocParam\")]},Rule {rMatcher = StringDetect \"@param \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"JavadocParam\")]},Rule {rMatcher = StringDetect \"@return \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"@see \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"SeeTag\")]},Rule {rMatcher = StringDetect \"@serial \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"@serialData \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"@serialField \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"@since \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"@throws \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"JavadocParam\")]},Rule {rMatcher = StringDetect \"@version \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"@author \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"@deprecated \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"@exception \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"JavadocParam\")]},Rule {rMatcher = StringDetect \"@param \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"JavadocParam\")]},Rule {rMatcher = StringDetect \"@return \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"@see \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"SeeTag\")]},Rule {rMatcher = StringDetect \"@serial \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"@serialData \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"@serialField \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"@since \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"@throws \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"JavadocParam\")]},Rule {rMatcher = StringDetect \"@version \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"{@code \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"LiteralTagar\")]},Rule {rMatcher = StringDetect \"{@code \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"LiteralTagar\")]},Rule {rMatcher = StringDetect \"{@docRoot}\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"{@inheritDoc}\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"{@link \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"InlineTagar\")]},Rule {rMatcher = StringDetect \"{@link \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"InlineTagar\")]},Rule {rMatcher = StringDetect \"{@linkplain \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"InlineTagar\")]},Rule {rMatcher = StringDetect \"{@linkplain \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"InlineTagar\")]},Rule {rMatcher = StringDetect \"{@literal \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"LiteralTagar\")]},Rule {rMatcher = StringDetect \"{@literal \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"LiteralTagar\")]},Rule {rMatcher = StringDetect \"{@value}\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"{@value \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"InlineTagar\")]},Rule {rMatcher = StringDetect \"{@value \", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Javadoc\",\"InlineTagar\")]},Rule {rMatcher = IncludeRules (\"HTML\",\"\"), 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}),(\"LiteralTagar\",Context {cName = \"LiteralTagar\", cSyntax = \"Javadoc\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SeeTag\",Context {cName = \"SeeTag\", cSyntax = \"Javadoc\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = IncludeRules (\"HTML\",\"\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Start\",Context {cName = \"Start\", cSyntax = \"Javadoc\", cRules = [Rule {rMatcher = IncludeRules (\"Javadoc\",\"FindJavadoc\"), 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})], sAuthor = \"Alfredo Luiz Foltran Fialho (alfoltran@ig.com.br)\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [], sStartingContext = \"Start\"}"
diff --git a/src/Skylighting/Syntax/Javascript.hs b/src/Skylighting/Syntax/Javascript.hs
--- a/src/Skylighting/Syntax/Javascript.hs
+++ b/src/Skylighting/Syntax/Javascript.hs
@@ -2,1437 +2,6 @@
 module Skylighting.Syntax.Javascript (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "JavaScript"
-  , sFilename = "javascript.xml"
-  , sShortname = "Javascript"
-  , sContexts =
-      fromList
-        [ ( "(charclass caret first check)"
-          , Context
-              { cName = "(charclass caret first check)"
-              , cSyntax = "JavaScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '^'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "JavaScript" , "Regular Expression Character Class" ) ]
-                      }
-                  ]
-              , cAttribute = SpecialCharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext =
-                  [ Push ( "JavaScript" , "Regular Expression Character Class" ) ]
-              , cDynamic = False
-              }
-          )
-        , ( "(regex caret first check)"
-          , Context
-              { cName = "(regex caret first check)"
-              , cSyntax = "JavaScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '^'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JavaScript" , "Regular Expression" ) ]
-                      }
-                  ]
-              , cAttribute = SpecialCharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext =
-                  [ Push ( "JavaScript" , "Regular Expression" ) ]
-              , cDynamic = False
-              }
-          )
-        , ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "JavaScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Modelines" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Conditional Expression"
-          , Context
-              { cName = "Conditional Expression"
-              , cSyntax = "JavaScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ':'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "JavaScript" , "Normal" )
-                      , 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
-              }
-          )
-        , ( "Multi/inline Comment"
-          , Context
-              { cName = "Multi/inline Comment"
-              , cSyntax = "JavaScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Modelines" , "" )
-                      , 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 ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "NoRegExp"
-          , Context
-              { cName = "NoRegExp"
-              , cSyntax = "JavaScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '/'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "JavaScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "//BEGIN"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JavaScript" , "region_marker" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "//END"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JavaScript" , "region_marker" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JavaScript" , "NoRegExp" ) ]
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JavaScript" , "NoRegExp" ) ]
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JavaScript" , "NoRegExp" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JavaScript" , "NoRegExp" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "])"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JavaScript" , "NoRegExp" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "break"
-                               , "case"
-                               , "catch"
-                               , "continue"
-                               , "debugger"
-                               , "do"
-                               , "else"
-                               , "finally"
-                               , "for"
-                               , "if"
-                               , "return"
-                               , "switch"
-                               , "throw"
-                               , "try"
-                               , "while"
-                               , "with"
-                               ])
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "const"
-                               , "delete"
-                               , "function"
-                               , "in"
-                               , "instanceof"
-                               , "new"
-                               , "this"
-                               , "typeof"
-                               , "var"
-                               , "void"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "class"
-                               , "enum"
-                               , "extends"
-                               , "implements"
-                               , "interface"
-                               , "let"
-                               , "private"
-                               , "protected"
-                               , "public"
-                               , "static"
-                               , "super"
-                               , "yield"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Infinity" , "NaN" , "false" , "null" , "true" , "undefined" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JavaScript" , "NoRegExp" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "as" , "default" , "export" , "from" , "import" , "package" ])
-                      , rAttribute = ImportTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JavaScript" , "Template" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "String.raw`"
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JavaScript" , "RawTemplate" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z_$][\\w$]*(?=\\s*\\.)"
-                              , reCompiled =
-                                  Just (compileRegex True "[a-zA-Z_$][\\w$]*(?=\\s*\\.)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JavaScript" , "Object Member" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z_$][\\w$]*(?=\\s*\\()"
-                              , reCompiled =
-                                  Just (compileRegex True "[a-zA-Z_$][\\w$]*(?=\\s*\\()")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AttributeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JavaScript" , "NoRegExp" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '.'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JavaScript" , "Object Member" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z_$][\\w$]*"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z_$][\\w$]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JavaScript" , "NoRegExp" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JavaScript" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JavaScript" , "String SQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "" )
-                      , rAttribute = NormalTok
-                      , 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 ( "JavaScript" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "JavaScript" , "Multi/inline Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '/'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "JavaScript" , "(regex caret first check)" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JavaScript" , "Object" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '?'
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "JavaScript" , "Conditional Expression" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ":!%&+,-/.*<=>?|~^;"
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Object"
-          , Context
-              { cName = "Object"
-              , cSyntax = "JavaScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "const"
-                               , "delete"
-                               , "function"
-                               , "in"
-                               , "instanceof"
-                               , "new"
-                               , "this"
-                               , "typeof"
-                               , "var"
-                               , "void"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z_$][\\w$]*\\s*(?=:)"
-                              , reCompiled =
-                                  Just (compileRegex True "[a-zA-Z_$][\\w$]*\\s*(?=:)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "JavaScript" , "Normal" )
-                      , 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
-              }
-          )
-        , ( "Object Member"
-          , Context
-              { cName = "Object Member"
-              , cSyntax = "JavaScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '.'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z_$][\\w$]*(?=\\s*\\.)"
-                              , reCompiled =
-                                  Just (compileRegex True "[a-zA-Z_$][\\w$]*(?=\\s*\\.)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JavaScript" , "Object Member" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z_$][\\w$]*"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z_$][\\w$]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AttributeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "JavaScript" , "NoRegExp" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "RawTemplate"
-          , Context
-              { cName = "RawTemplate"
-              , cSyntax = "JavaScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = VerbatimStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Regular Expression"
-          , Context
-              { cName = "Regular Expression"
-              , cSyntax = "JavaScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "/\\w*"
-                              , reCompiled = Just (compileRegex True "/\\w*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\{[\\d, ]+\\}"
-                              , reCompiled = Just (compileRegex True "\\{[\\d, ]+\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[bB]"
-                              , reCompiled = Just (compileRegex True "\\\\[bB]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[nrtvfDdSsWw]"
-                              , reCompiled = Just (compileRegex True "\\\\[nrtvfDdSsWw]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "JavaScript" , "(charclass caret first check)" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\."
-                              , reCompiled = Just (compileRegex True "\\\\.")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$(?=/)"
-                              , reCompiled = Just (compileRegex True "\\$(?=/)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "?+*()|"
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Regular Expression Character Class"
-          , Context
-              { cName = "Regular Expression Character Class"
-              , cSyntax = "JavaScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[\\[\\]]"
-                              , reCompiled = Just (compileRegex True "\\\\[\\[\\]]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\."
-                              , reCompiled = Just (compileRegex True "\\\\.")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = SpecialCharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Shebang"
-          , Context
-              { cName = "Shebang"
-              , cSyntax = "JavaScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '#' '!'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "JavaScript" , "Comment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "JavaScript" , "Normal" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Push ( "JavaScript" , "Normal" ) ]
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "JavaScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\u[0-9a-fA-F]{4}"
-                              , reCompiled = Just (compileRegex True "\\\\u[0-9a-fA-F]{4}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String SQ"
-          , Context
-              { cName = "String SQ"
-              , cSyntax = "JavaScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\u[0-9a-fA-F]{4}"
-                              , reCompiled = Just (compileRegex True "\\\\u[0-9a-fA-F]{4}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Substitution"
-          , Context
-              { cName = "Substitution"
-              , cSyntax = "JavaScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "JavaScript" , "Normal" )
-                      , 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
-              }
-          )
-        , ( "Template"
-          , Context
-              { cName = "Template"
-              , cSyntax = "JavaScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '`'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '{'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JavaScript" , "Substitution" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = VerbatimStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "region_marker"
-          , Context
-              { cName = "region_marker"
-              , cSyntax = "JavaScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = RegionMarkerTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor =
-      "Anders Lund (anders@alweb.dk), Joseph Wenninger (jowenn@kde.org), Whitehawk Stormchaser (zerokode@gmx.net)"
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.js" , "*.kwinscript" ]
-  , sStartingContext = "Shebang"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"JavaScript\", sFilename = \"javascript.xml\", sShortname = \"Javascript\", sContexts = fromList [(\"(charclass caret first check)\",Context {cName = \"(charclass caret first check)\", cSyntax = \"JavaScript\", cRules = [Rule {rMatcher = DetectChar '^', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"Regular Expression Character Class\")]}], cAttribute = SpecialCharTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Push (\"JavaScript\",\"Regular Expression Character Class\")], cDynamic = False}),(\"(regex caret first check)\",Context {cName = \"(regex caret first check)\", cSyntax = \"JavaScript\", cRules = [Rule {rMatcher = DetectChar '^', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"Regular Expression\")]}], cAttribute = SpecialCharTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Push (\"JavaScript\",\"Regular Expression\")], cDynamic = False}),(\"Comment\",Context {cName = \"Comment\", cSyntax = \"JavaScript\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Modelines\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Conditional Expression\",Context {cName = \"Conditional Expression\", cSyntax = \"JavaScript\", cRules = [Rule {rMatcher = DetectChar ':', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"JavaScript\",\"Normal\"), 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}),(\"Multi/inline Comment\",Context {cName = \"Multi/inline Comment\", cSyntax = \"JavaScript\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Modelines\",\"\"), 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]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"NoRegExp\",Context {cName = \"NoRegExp\", cSyntax = \"JavaScript\", cRules = [Rule {rMatcher = Detect2Chars '/' '/', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '/', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"JavaScript\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"//BEGIN\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"region_marker\")]},Rule {rMatcher = StringDetect \"//END\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"region_marker\")]},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"NoRegExp\")]},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"NoRegExp\")]},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"NoRegExp\")]},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"NoRegExp\")]},Rule {rMatcher = AnyChar \"])\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"NoRegExp\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"break\",\"case\",\"catch\",\"continue\",\"debugger\",\"do\",\"else\",\"finally\",\"for\",\"if\",\"return\",\"switch\",\"throw\",\"try\",\"while\",\"with\"])), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"const\",\"delete\",\"function\",\"in\",\"instanceof\",\"new\",\"this\",\"typeof\",\"var\",\"void\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"class\",\"enum\",\"extends\",\"implements\",\"interface\",\"let\",\"private\",\"protected\",\"public\",\"static\",\"super\",\"yield\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"Infinity\",\"NaN\",\"false\",\"null\",\"true\",\"undefined\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"NoRegExp\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"as\",\"default\",\"export\",\"from\",\"import\",\"package\"])), rAttribute = ImportTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '`', rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"Template\")]},Rule {rMatcher = StringDetect \"String.raw`\", rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"RawTemplate\")]},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z_$][\\\\w$]*(?=\\\\s*\\\\.)\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"Object Member\")]},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z_$][\\\\w$]*(?=\\\\s*\\\\()\", reCaseSensitive = True}), rAttribute = AttributeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"NoRegExp\")]},Rule {rMatcher = DetectChar '.', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"Object Member\")]},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z_$][\\\\w$]*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"NoRegExp\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"String\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"String SQ\")]},Rule {rMatcher = IncludeRules (\"Doxygen\",\"\"), rAttribute = NormalTok, 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 (\"JavaScript\",\"Comment\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"Multi/inline Comment\")]},Rule {rMatcher = DetectChar '/', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"(regex caret first check)\")]},Rule {rMatcher = DetectChar '{', rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"Object\")]},Rule {rMatcher = DetectChar '?', rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"Conditional Expression\")]},Rule {rMatcher = AnyChar \":!%&+,-/.*<=>?|~^;\", rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Object\",Context {cName = \"Object\", cSyntax = \"JavaScript\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"const\",\"delete\",\"function\",\"in\",\"instanceof\",\"new\",\"this\",\"typeof\",\"var\",\"void\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z_$][\\\\w$]*\\\\s*(?=:)\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"JavaScript\",\"Normal\"), 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}),(\"Object Member\",Context {cName = \"Object Member\", cSyntax = \"JavaScript\", cRules = [Rule {rMatcher = DetectChar '.', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z_$][\\\\w$]*(?=\\\\s*\\\\.)\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"Object Member\")]},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z_$][\\\\w$]*\", reCaseSensitive = True}), rAttribute = AttributeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"JavaScript\",\"NoRegExp\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"RawTemplate\",Context {cName = \"RawTemplate\", cSyntax = \"JavaScript\", cRules = [Rule {rMatcher = DetectChar '`', rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = VerbatimStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Regular Expression\",Context {cName = \"Regular Expression\", cSyntax = \"JavaScript\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"/\\\\w*\", reCaseSensitive = True}), rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\{[\\\\d, ]+\\\\}\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[bB]\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[nrtvfDdSsWw]\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"(charclass caret first check)\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$(?=/)\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"?+*()|\", rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Regular Expression Character Class\",Context {cName = \"Regular Expression Character Class\", cSyntax = \"JavaScript\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[\\\\[\\\\]]\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ']', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = SpecialCharTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Shebang\",Context {cName = \"Shebang\", cSyntax = \"JavaScript\", cRules = [Rule {rMatcher = Detect2Chars '#' '!', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"JavaScript\",\"Comment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Push (\"JavaScript\",\"Normal\")], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Push (\"JavaScript\",\"Normal\")], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"JavaScript\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\u[0-9a-fA-F]{4}\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String SQ\",Context {cName = \"String SQ\", cSyntax = \"JavaScript\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\u[0-9a-fA-F]{4}\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Substitution\",Context {cName = \"Substitution\", cSyntax = \"JavaScript\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"JavaScript\",\"Normal\"), 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}),(\"Template\",Context {cName = \"Template\", cSyntax = \"JavaScript\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '`', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '$' '{', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JavaScript\",\"Substitution\")]},Rule {rMatcher = DetectChar '`', rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = VerbatimStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"region_marker\",Context {cName = \"region_marker\", cSyntax = \"JavaScript\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectSpaces, rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = RegionMarkerTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Anders Lund (anders@alweb.dk), Joseph Wenninger (jowenn@kde.org), Whitehawk Stormchaser (zerokode@gmx.net)\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.js\",\"*.kwinscript\"], sStartingContext = \"Shebang\"}"
diff --git a/src/Skylighting/Syntax/Json.hs b/src/Skylighting/Syntax/Json.hs
--- a/src/Skylighting/Syntax/Json.hs
+++ b/src/Skylighting/Syntax/Json.hs
@@ -2,535 +2,6 @@
 module Skylighting.Syntax.Json (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "JSON"
-  , sFilename = "json.xml"
-  , sShortname = "Json"
-  , sContexts =
-      fromList
-        [ ( "Array"
-          , Context
-              { cName = "Array"
-              , cSyntax = "JSON"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ','
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSON" , "Pair" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSON" , "Array" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSON" , "String_Value" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "false" , "null" , "true" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-?(?:[0-9]|[1-9][0-9]+)\\.[0-9]+(?:[eE][+-]?[0-9]+)?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "-?(?:[0-9]|[1-9][0-9]+)\\.[0-9]+(?:[eE][+-]?[0-9]+)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-?(?:[0-9]|[1-9][0-9]+)(?:[eE][+-]?[0-9]+)?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "-?(?:[0-9]|[1-9][0-9]+)(?:[eE][+-]?[0-9]+)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "JSON"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSON" , "Pair" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSON" , "Array" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Pair"
-          , Context
-              { cName = "Pair"
-              , cSyntax = "JSON"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSON" , "String_Key" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ':'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSON" , "Value" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ','
-                      , rAttribute = FunctionTok
-                      , 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 = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String_Key"
-          , Context
-              { cName = "String_Key"
-              , cSyntax = "JSON"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(?:[\"\\\\/bfnrt]|u[0-9a-fA-f]{4})"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\(?:[\"\\\\/bfnrt]|u[0-9a-fA-f]{4})")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String_Value"
-          , Context
-              { cName = "String_Value"
-              , cSyntax = "JSON"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(?:[\"\\\\/bfnrt]|u[0-9a-fA-f]{4})"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\(?:[\"\\\\/bfnrt]|u[0-9a-fA-f]{4})")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Value"
-          , Context
-              { cName = "Value"
-              , cSyntax = "JSON"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSON" , "String_Value" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSON" , "Pair" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSON" , "Array" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ','
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "false" , "null" , "true" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-?(?:[0-9]|[1-9][0-9]+)\\.[0-9]+(?:[eE][+-]?[0-9]+)?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "-?(?:[0-9]|[1-9][0-9]+)\\.[0-9]+(?:[eE][+-]?[0-9]+)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-?(?:[0-9]|[1-9][0-9]+)(?:[eE][+-]?[0-9]+)?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "-?(?:[0-9]|[1-9][0-9]+)(?:[eE][+-]?[0-9]+)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Sebastian Pipping (sebastian@pipping.org)"
-  , sVersion = "2"
-  , sLicense = "GPL"
-  , sExtensions = [ "*.json" , ".kateproject" , ".arcconfig" ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"JSON\", sFilename = \"json.xml\", sShortname = \"Json\", sContexts = fromList [(\"Array\",Context {cName = \"Array\", cSyntax = \"JSON\", cRules = [Rule {rMatcher = DetectChar ',', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ']', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '{', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSON\",\"Pair\")]},Rule {rMatcher = DetectChar '[', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSON\",\"Array\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSON\",\"String_Value\")]},Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"false\",\"null\",\"true\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-?(?:[0-9]|[1-9][0-9]+)\\\\.[0-9]+(?:[eE][+-]?[0-9]+)?\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-?(?:[0-9]|[1-9][0-9]+)(?:[eE][+-]?[0-9]+)?\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"JSON\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSON\",\"Pair\")]},Rule {rMatcher = DetectChar '[', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSON\",\"Array\")]},Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Pair\",Context {cName = \"Pair\", cSyntax = \"JSON\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSON\",\"String_Key\")]},Rule {rMatcher = DetectChar ':', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSON\",\"Value\")]},Rule {rMatcher = DetectChar '}', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar ',', rAttribute = FunctionTok, 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 = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String_Key\",Context {cName = \"String_Key\", cSyntax = \"JSON\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(?:[\\\"\\\\\\\\/bfnrt]|u[0-9a-fA-f]{4})\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String_Value\",Context {cName = \"String_Value\", cSyntax = \"JSON\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(?:[\\\"\\\\\\\\/bfnrt]|u[0-9a-fA-f]{4})\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Value\",Context {cName = \"Value\", cSyntax = \"JSON\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSON\",\"String_Value\")]},Rule {rMatcher = DetectChar '{', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSON\",\"Pair\")]},Rule {rMatcher = DetectChar '[', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSON\",\"Array\")]},Rule {rMatcher = DetectChar '}', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar ',', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"false\",\"null\",\"true\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-?(?:[0-9]|[1-9][0-9]+)\\\\.[0-9]+(?:[eE][+-]?[0-9]+)?\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-?(?:[0-9]|[1-9][0-9]+)(?:[eE][+-]?[0-9]+)?\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Sebastian Pipping (sebastian@pipping.org)\", sVersion = \"2\", sLicense = \"GPL\", sExtensions = [\"*.json\",\".kateproject\",\".arcconfig\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Jsp.hs b/src/Skylighting/Syntax/Jsp.hs
--- a/src/Skylighting/Syntax/Jsp.hs
+++ b/src/Skylighting/Syntax/Jsp.hs
@@ -2,7845 +2,6 @@
 module Skylighting.Syntax.Jsp (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "JSP"
-  , sFilename = "jsp.xml"
-  , sShortname = "Jsp"
-  , sContexts =
-      fromList
-        [ ( "Html Attribute"
-          , Context
-              { cName = "Html Attribute"
-              , cSyntax = "JSP"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\/?>"
-                              , reCompiled = Just (compileRegex False "\\/?>")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*=\\s*"
-                              , reCompiled = Just (compileRegex False "\\s*=\\s*")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Html Value" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<%--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%(!|=)?"
-                              , reCompiled = Just (compileRegex False "<%(!|=)?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Scriptlet" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Expression" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Html Comment"
-          , Context
-              { cName = "Html Comment"
-              , cSyntax = "JSP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<%--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%(!|=)?"
-                              , reCompiled = Just (compileRegex False "<%(!|=)?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Scriptlet" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Expression" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\/*-->"
-                              , reCompiled = Just (compileRegex False "\\/*-->")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Html Double Quoted Value"
-          , Context
-              { cName = "Html Double Quoted Value"
-              , cSyntax = "JSP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<%--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%(!|=)?"
-                              , reCompiled = Just (compileRegex False "<%(!|=)?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Scriptlet" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Expression" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\s*\\/?\\s*\\$?\\w*:\\$?\\w*"
-                              , reCompiled =
-                                  Just (compileRegex False "<\\s*\\/?\\s*\\$?\\w*:\\$?\\w*")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Custom Tag" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\"|&quot;|&#34;)"
-                              , reCompiled = Just (compileRegex False "(\"|&quot;|&#34;)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Html Single Quoted Value"
-          , Context
-              { cName = "Html Single Quoted Value"
-              , cSyntax = "JSP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<%--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%(!|=)?"
-                              , reCompiled = Just (compileRegex False "<%(!|=)?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Scriptlet" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Expression" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\s*\\/?\\s*\\$?\\w*:\\$?\\w*"
-                              , reCompiled =
-                                  Just (compileRegex False "<\\s*\\/?\\s*\\$?\\w*:\\$?\\w*")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Custom Tag" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "('|&#39;)"
-                              , reCompiled = Just (compileRegex False "('|&#39;)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Html Unquoted Value"
-          , Context
-              { cName = "Html Unquoted Value"
-              , cSyntax = "JSP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<%--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%(!|=)?"
-                              , reCompiled = Just (compileRegex False "<%(!|=)?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Scriptlet" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Expression" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\s*\\/?\\s*\\$?\\w*:\\$?\\w*"
-                              , reCompiled =
-                                  Just (compileRegex False "<\\s*\\/?\\s*\\$?\\w*:\\$?\\w*")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Custom Tag" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\/?>"
-                              , reCompiled = Just (compileRegex False "\\/?>")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s+"
-                              , reCompiled = Just (compileRegex False "\\s+")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Html Value"
-          , Context
-              { cName = "Html Value"
-              , cSyntax = "JSP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<%--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%(!|=)?"
-                              , reCompiled = Just (compileRegex False "<%(!|=)?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Scriptlet" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Expression" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\s*\\/?\\s*\\$?\\w*:\\$?\\w*"
-                              , reCompiled =
-                                  Just (compileRegex False "<\\s*\\/?\\s*\\$?\\w*:\\$?\\w*")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Custom Tag" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\"|&quot;|&#34;)"
-                              , reCompiled = Just (compileRegex False "(\"|&quot;|&#34;)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Html Double Quoted Value" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "('|&#39;)"
-                              , reCompiled = Just (compileRegex False "('|&#39;)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Html Single Quoted Value" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*#?-?_?\\.?[a-zA-Z0-9]*"
-                              , reCompiled =
-                                  Just (compileRegex False "\\s*#?-?_?\\.?[a-zA-Z0-9]*")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Html Unquoted Value" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\/?>"
-                              , reCompiled = Just (compileRegex False "\\/?>")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Java Multi-Line Comment"
-          , Context
-              { cName = "Java Multi-Line Comment"
-              , cSyntax = "JSP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Java Single-Line Comment"
-          , Context
-              { cName = "Java Single-Line Comment"
-              , cSyntax = "JSP"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Java String"
-          , Context
-              { cName = "Java String"
-              , cSyntax = "JSP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Jsp Comment"
-          , Context
-              { cName = "Jsp Comment"
-              , cSyntax = "JSP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "--%>"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Jsp Custom Tag"
-          , Context
-              { cName = "Jsp Custom Tag"
-              , cSyntax = "JSP"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\/?>"
-                              , reCompiled = Just (compileRegex False "\\/?>")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*=\\s*"
-                              , reCompiled = Just (compileRegex False "\\s*=\\s*")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Custom Tag Value" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<%--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%(!|=)?"
-                              , reCompiled = Just (compileRegex False "<%(!|=)?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Scriptlet" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Expression" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Jsp Custom Tag Value"
-          , Context
-              { cName = "Jsp Custom Tag Value"
-              , cSyntax = "JSP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<%--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%(!|=)?"
-                              , reCompiled = Just (compileRegex False "<%(!|=)?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Scriptlet" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Expression" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "JSP" , "Jsp Double Quoted Custom Tag Value" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "JSP" , "Jsp Single Quoted Custom Tag Value" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\/?>"
-                              , reCompiled = Just (compileRegex False "\\/?>")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Jsp Double Quoted Custom Tag Value"
-          , Context
-              { cName = "Jsp Double Quoted Custom Tag Value"
-              , cSyntax = "JSP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<%--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%(!|=)?"
-                              , reCompiled = Just (compileRegex False "<%(!|=)?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Scriptlet" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Expression" ) ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Jsp Double Quoted Param Value"
-          , Context
-              { cName = "Jsp Double Quoted Param Value"
-              , cSyntax = "JSP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<%--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%(!|=)?"
-                              , reCompiled = Just (compileRegex False "<%(!|=)?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Scriptlet" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Expression" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Jsp Expression"
-          , Context
-              { cName = "Jsp Expression"
-              , cSyntax = "JSP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "'${'"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "abstract"
-                               , "assert"
-                               , "break"
-                               , "case"
-                               , "catch"
-                               , "class"
-                               , "continue"
-                               , "default"
-                               , "do"
-                               , "else"
-                               , "extends"
-                               , "false"
-                               , "finally"
-                               , "for"
-                               , "goto"
-                               , "if"
-                               , "implements"
-                               , "import"
-                               , "instanceof"
-                               , "interface"
-                               , "native"
-                               , "new"
-                               , "null"
-                               , "package"
-                               , "private"
-                               , "protected"
-                               , "public"
-                               , "return"
-                               , "strictfp"
-                               , "super"
-                               , "switch"
-                               , "synchronized"
-                               , "this"
-                               , "throw"
-                               , "throws"
-                               , "transient"
-                               , "true"
-                               , "try"
-                               , "volatile"
-                               , "while"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "and"
-                               , "div"
-                               , "empty"
-                               , "eq"
-                               , "false"
-                               , "ge"
-                               , "gt"
-                               , "instanceof"
-                               , "le"
-                               , "lt"
-                               , "mod"
-                               , "ne"
-                               , "not"
-                               , "null"
-                               , "or"
-                               , "true"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "boolean"
-                               , "byte"
-                               , "char"
-                               , "const"
-                               , "double"
-                               , "final"
-                               , "float"
-                               , "int"
-                               , "long"
-                               , "short"
-                               , "static"
-                               , "void"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ARG_IN"
-                               , "ARG_INOUT"
-                               , "ARG_OUT"
-                               , "AWTError"
-                               , "AWTEvent"
-                               , "AWTEventListener"
-                               , "AWTEventListenerProxy"
-                               , "AWTEventMulticaster"
-                               , "AWTException"
-                               , "AWTKeyStroke"
-                               , "AWTPermission"
-                               , "AbstractAction"
-                               , "AbstractBorder"
-                               , "AbstractButton"
-                               , "AbstractCellEditor"
-                               , "AbstractCollection"
-                               , "AbstractColorChooserPanel"
-                               , "AbstractDocument"
-                               , "AbstractFormatter"
-                               , "AbstractFormatterFactory"
-                               , "AbstractInterruptibleChannel"
-                               , "AbstractLayoutCache"
-                               , "AbstractList"
-                               , "AbstractListModel"
-                               , "AbstractMap"
-                               , "AbstractMethodError"
-                               , "AbstractPreferences"
-                               , "AbstractSelectableChannel"
-                               , "AbstractSelectionKey"
-                               , "AbstractSelector"
-                               , "AbstractSequentialList"
-                               , "AbstractSet"
-                               , "AbstractSpinnerModel"
-                               , "AbstractTableModel"
-                               , "AbstractUndoableEdit"
-                               , "AbstractWriter"
-                               , "AccessControlContext"
-                               , "AccessControlException"
-                               , "AccessController"
-                               , "AccessException"
-                               , "Accessible"
-                               , "AccessibleAction"
-                               , "AccessibleBundle"
-                               , "AccessibleComponent"
-                               , "AccessibleContext"
-                               , "AccessibleEditableText"
-                               , "AccessibleExtendedComponent"
-                               , "AccessibleExtendedTable"
-                               , "AccessibleHyperlink"
-                               , "AccessibleHypertext"
-                               , "AccessibleIcon"
-                               , "AccessibleKeyBinding"
-                               , "AccessibleObject"
-                               , "AccessibleRelation"
-                               , "AccessibleRelationSet"
-                               , "AccessibleResourceBundle"
-                               , "AccessibleRole"
-                               , "AccessibleSelection"
-                               , "AccessibleState"
-                               , "AccessibleStateSet"
-                               , "AccessibleTable"
-                               , "AccessibleTableModelChange"
-                               , "AccessibleText"
-                               , "AccessibleValue"
-                               , "AccountExpiredException"
-                               , "Acl"
-                               , "AclEntry"
-                               , "AclNotFoundException"
-                               , "Action"
-                               , "ActionEvent"
-                               , "ActionListener"
-                               , "ActionMap"
-                               , "ActionMapUIResource"
-                               , "Activatable"
-                               , "ActivateFailedException"
-                               , "ActivationDesc"
-                               , "ActivationException"
-                               , "ActivationGroup"
-                               , "ActivationGroupDesc"
-                               , "ActivationGroupID"
-                               , "ActivationGroup_Stub"
-                               , "ActivationID"
-                               , "ActivationInstantiator"
-                               , "ActivationMonitor"
-                               , "ActivationSystem"
-                               , "Activator"
-                               , "ActiveEvent"
-                               , "ActiveValue"
-                               , "AdapterActivator"
-                               , "AdapterActivatorOperations"
-                               , "AdapterAlreadyExists"
-                               , "AdapterAlreadyExistsHelper"
-                               , "AdapterInactive"
-                               , "AdapterInactiveHelper"
-                               , "AdapterNonExistent"
-                               , "AdapterNonExistentHelper"
-                               , "AddressHelper"
-                               , "Adjustable"
-                               , "AdjustmentEvent"
-                               , "AdjustmentListener"
-                               , "Adler32"
-                               , "AffineTransform"
-                               , "AffineTransformOp"
-                               , "AlgorithmParameterGenerator"
-                               , "AlgorithmParameterGeneratorSpi"
-                               , "AlgorithmParameterSpec"
-                               , "AlgorithmParameters"
-                               , "AlgorithmParametersSpi"
-                               , "AlignmentAction"
-                               , "AllPermission"
-                               , "AlphaComposite"
-                               , "AlreadyBound"
-                               , "AlreadyBoundException"
-                               , "AlreadyBoundHelper"
-                               , "AlreadyBoundHolder"
-                               , "AlreadyConnectedException"
-                               , "AncestorEvent"
-                               , "AncestorListener"
-                               , "Annotation"
-                               , "Any"
-                               , "AnyHolder"
-                               , "AnySeqHelper"
-                               , "AnySeqHolder"
-                               , "AppConfigurationEntry"
-                               , "Applet"
-                               , "AppletContext"
-                               , "AppletInitializer"
-                               , "AppletStub"
-                               , "ApplicationException"
-                               , "Arc2D"
-                               , "Area"
-                               , "AreaAveragingScaleFilter"
-                               , "ArithmeticException"
-                               , "Array"
-                               , "ArrayIndexOutOfBoundsException"
-                               , "ArrayList"
-                               , "ArrayStoreException"
-                               , "Arrays"
-                               , "AssertionError"
-                               , "AsyncBoxView"
-                               , "AsynchronousCloseException"
-                               , "Attr"
-                               , "Attribute"
-                               , "AttributeContext"
-                               , "AttributeException"
-                               , "AttributeInUseException"
-                               , "AttributeList"
-                               , "AttributeListImpl"
-                               , "AttributeModificationException"
-                               , "AttributeSet"
-                               , "AttributeSetUtilities"
-                               , "AttributeUndoableEdit"
-                               , "AttributedCharacterIterator"
-                               , "AttributedString"
-                               , "Attributes"
-                               , "AttributesImpl"
-                               , "AudioClip"
-                               , "AudioFileFormat"
-                               , "AudioFileReader"
-                               , "AudioFileWriter"
-                               , "AudioFormat"
-                               , "AudioInputStream"
-                               , "AudioPermission"
-                               , "AudioSystem"
-                               , "AuthPermission"
-                               , "AuthenticationException"
-                               , "AuthenticationNotSupportedException"
-                               , "Authenticator"
-                               , "Autoscroll"
-                               , "BAD_CONTEXT"
-                               , "BAD_INV_ORDER"
-                               , "BAD_OPERATION"
-                               , "BAD_PARAM"
-                               , "BAD_POLICY"
-                               , "BAD_POLICY_TYPE"
-                               , "BAD_POLICY_VALUE"
-                               , "BAD_TYPECODE"
-                               , "BCSIterator"
-                               , "BCSSServiceProvider"
-                               , "BYTE_ARRAY"
-                               , "BackingStoreException"
-                               , "BadKind"
-                               , "BadLocationException"
-                               , "BadPaddingException"
-                               , "BandCombineOp"
-                               , "BandedSampleModel"
-                               , "BasicArrowButton"
-                               , "BasicAttribute"
-                               , "BasicAttributes"
-                               , "BasicBorders"
-                               , "BasicButtonListener"
-                               , "BasicButtonUI"
-                               , "BasicCaret"
-                               , "BasicCheckBoxMenuItemUI"
-                               , "BasicCheckBoxUI"
-                               , "BasicColorChooserUI"
-                               , "BasicComboBoxEditor"
-                               , "BasicComboBoxRenderer"
-                               , "BasicComboBoxUI"
-                               , "BasicComboPopup"
-                               , "BasicDesktopIconUI"
-                               , "BasicDesktopPaneUI"
-                               , "BasicDirectoryModel"
-                               , "BasicEditorPaneUI"
-                               , "BasicFileChooserUI"
-                               , "BasicFormattedTextFieldUI"
-                               , "BasicGraphicsUtils"
-                               , "BasicHTML"
-                               , "BasicHighlighter"
-                               , "BasicIconFactory"
-                               , "BasicInternalFrameTitlePane"
-                               , "BasicInternalFrameUI"
-                               , "BasicLabelUI"
-                               , "BasicListUI"
-                               , "BasicLookAndFeel"
-                               , "BasicMenuBarUI"
-                               , "BasicMenuItemUI"
-                               , "BasicMenuUI"
-                               , "BasicOptionPaneUI"
-                               , "BasicPanelUI"
-                               , "BasicPasswordFieldUI"
-                               , "BasicPermission"
-                               , "BasicPopupMenuSeparatorUI"
-                               , "BasicPopupMenuUI"
-                               , "BasicProgressBarUI"
-                               , "BasicRadioButtonMenuItemUI"
-                               , "BasicRadioButtonUI"
-                               , "BasicRootPaneUI"
-                               , "BasicScrollBarUI"
-                               , "BasicScrollPaneUI"
-                               , "BasicSeparatorUI"
-                               , "BasicSliderUI"
-                               , "BasicSpinnerUI"
-                               , "BasicSplitPaneDivider"
-                               , "BasicSplitPaneUI"
-                               , "BasicStroke"
-                               , "BasicTabbedPaneUI"
-                               , "BasicTableHeaderUI"
-                               , "BasicTableUI"
-                               , "BasicTextAreaUI"
-                               , "BasicTextFieldUI"
-                               , "BasicTextPaneUI"
-                               , "BasicTextUI"
-                               , "BasicToggleButtonUI"
-                               , "BasicToolBarSeparatorUI"
-                               , "BasicToolBarUI"
-                               , "BasicToolTipUI"
-                               , "BasicTreeUI"
-                               , "BasicViewportUI"
-                               , "BatchUpdateException"
-                               , "BeanContext"
-                               , "BeanContextChild"
-                               , "BeanContextChildComponentProxy"
-                               , "BeanContextChildSupport"
-                               , "BeanContextContainerProxy"
-                               , "BeanContextEvent"
-                               , "BeanContextMembershipEvent"
-                               , "BeanContextMembershipListener"
-                               , "BeanContextProxy"
-                               , "BeanContextServiceAvailableEvent"
-                               , "BeanContextServiceProvider"
-                               , "BeanContextServiceProviderBeanInfo"
-                               , "BeanContextServiceRevokedEvent"
-                               , "BeanContextServiceRevokedListener"
-                               , "BeanContextServices"
-                               , "BeanContextServicesListener"
-                               , "BeanContextServicesSupport"
-                               , "BeanContextSupport"
-                               , "BeanDescriptor"
-                               , "BeanInfo"
-                               , "Beans"
-                               , "BeepAction"
-                               , "BevelBorder"
-                               , "BevelBorderUIResource"
-                               , "Bias"
-                               , "Bidi"
-                               , "BigDecimal"
-                               , "BigInteger"
-                               , "BinaryRefAddr"
-                               , "BindException"
-                               , "Binding"
-                               , "BindingHelper"
-                               , "BindingHolder"
-                               , "BindingIterator"
-                               , "BindingIteratorHelper"
-                               , "BindingIteratorHolder"
-                               , "BindingIteratorOperations"
-                               , "BindingIteratorPOA"
-                               , "BindingListHelper"
-                               , "BindingListHolder"
-                               , "BindingType"
-                               , "BindingTypeHelper"
-                               , "BindingTypeHolder"
-                               , "BitSet"
-                               , "Blob"
-                               , "BlockView"
-                               , "BoldAction"
-                               , "Book"
-                               , "Boolean"
-                               , "BooleanControl"
-                               , "BooleanHolder"
-                               , "BooleanSeqHelper"
-                               , "BooleanSeqHolder"
-                               , "Border"
-                               , "BorderFactory"
-                               , "BorderLayout"
-                               , "BorderUIResource"
-                               , "BoundedRangeModel"
-                               , "Bounds"
-                               , "Box"
-                               , "BoxLayout"
-                               , "BoxPainter"
-                               , "BoxView"
-                               , "BoxedValueHelper"
-                               , "BreakIterator"
-                               , "Buffer"
-                               , "BufferCapabilities"
-                               , "BufferOverflowException"
-                               , "BufferStrategy"
-                               , "BufferUnderflowException"
-                               , "BufferedImage"
-                               , "BufferedImageFilter"
-                               , "BufferedImageOp"
-                               , "BufferedInputStream"
-                               , "BufferedOutputStream"
-                               , "BufferedReader"
-                               , "BufferedWriter"
-                               , "Button"
-                               , "ButtonAreaLayout"
-                               , "ButtonBorder"
-                               , "ButtonGroup"
-                               , "ButtonModel"
-                               , "ButtonUI"
-                               , "Byte"
-                               , "ByteArrayInputStream"
-                               , "ByteArrayOutputStream"
-                               , "ByteBuffer"
-                               , "ByteChannel"
-                               , "ByteHolder"
-                               , "ByteLookupTable"
-                               , "ByteOrder"
-                               , "CDATASection"
-                               , "CHAR_ARRAY"
-                               , "CMMException"
-                               , "COMM_FAILURE"
-                               , "CRC32"
-                               , "CRL"
-                               , "CRLException"
-                               , "CRLSelector"
-                               , "CSS"
-                               , "CTX_RESTRICT_SCOPE"
-                               , "Calendar"
-                               , "CallableStatement"
-                               , "Callback"
-                               , "CallbackHandler"
-                               , "CancelablePrintJob"
-                               , "CancelledKeyException"
-                               , "CannotProceed"
-                               , "CannotProceedException"
-                               , "CannotProceedHelper"
-                               , "CannotProceedHolder"
-                               , "CannotRedoException"
-                               , "CannotUndoException"
-                               , "Canvas"
-                               , "CardLayout"
-                               , "Caret"
-                               , "CaretEvent"
-                               , "CaretListener"
-                               , "CaretPolicy"
-                               , "CellEditor"
-                               , "CellEditorListener"
-                               , "CellRendererPane"
-                               , "CertPath"
-                               , "CertPathBuilder"
-                               , "CertPathBuilderException"
-                               , "CertPathBuilderResult"
-                               , "CertPathBuilderSpi"
-                               , "CertPathParameters"
-                               , "CertPathRep"
-                               , "CertPathValidator"
-                               , "CertPathValidatorException"
-                               , "CertPathValidatorResult"
-                               , "CertPathValidatorSpi"
-                               , "CertSelector"
-                               , "CertStore"
-                               , "CertStoreException"
-                               , "CertStoreParameters"
-                               , "CertStoreSpi"
-                               , "Certificate"
-                               , "CertificateEncodingException"
-                               , "CertificateException"
-                               , "CertificateExpiredException"
-                               , "CertificateFactory"
-                               , "CertificateFactorySpi"
-                               , "CertificateNotYetValidException"
-                               , "CertificateParsingException"
-                               , "CertificateRep"
-                               , "ChangeEvent"
-                               , "ChangeListener"
-                               , "ChangedCharSetException"
-                               , "Channel"
-                               , "ChannelBinding"
-                               , "Channels"
-                               , "CharArrayReader"
-                               , "CharArrayWriter"
-                               , "CharBuffer"
-                               , "CharConversionException"
-                               , "CharHolder"
-                               , "CharSeqHelper"
-                               , "CharSeqHolder"
-                               , "CharSequence"
-                               , "Character"
-                               , "CharacterAttribute"
-                               , "CharacterCodingException"
-                               , "CharacterConstants"
-                               , "CharacterData"
-                               , "CharacterIterator"
-                               , "Charset"
-                               , "CharsetDecoder"
-                               , "CharsetEncoder"
-                               , "CharsetProvider"
-                               , "Checkbox"
-                               , "CheckboxGroup"
-                               , "CheckboxMenuItem"
-                               , "CheckedInputStream"
-                               , "CheckedOutputStream"
-                               , "Checksum"
-                               , "Choice"
-                               , "ChoiceCallback"
-                               , "ChoiceFormat"
-                               , "Chromaticity"
-                               , "Cipher"
-                               , "CipherInputStream"
-                               , "CipherOutputStream"
-                               , "CipherSpi"
-                               , "Class"
-                               , "ClassCastException"
-                               , "ClassCircularityError"
-                               , "ClassDesc"
-                               , "ClassFormatError"
-                               , "ClassLoader"
-                               , "ClassNotFoundException"
-                               , "ClientRequestInfo"
-                               , "ClientRequestInfoOperations"
-                               , "ClientRequestInterceptor"
-                               , "ClientRequestInterceptorOperations"
-                               , "Clip"
-                               , "Clipboard"
-                               , "ClipboardOwner"
-                               , "Clob"
-                               , "CloneNotSupportedException"
-                               , "Cloneable"
-                               , "ClosedByInterruptException"
-                               , "ClosedChannelException"
-                               , "ClosedSelectorException"
-                               , "CodeSets"
-                               , "CodeSource"
-                               , "Codec"
-                               , "CodecFactory"
-                               , "CodecFactoryHelper"
-                               , "CodecFactoryOperations"
-                               , "CodecOperations"
-                               , "CoderMalfunctionError"
-                               , "CoderResult"
-                               , "CodingErrorAction"
-                               , "CollationElementIterator"
-                               , "CollationKey"
-                               , "Collator"
-                               , "Collection"
-                               , "CollectionCertStoreParameters"
-                               , "Collections"
-                               , "Color"
-                               , "ColorAttribute"
-                               , "ColorChooserComponentFactory"
-                               , "ColorChooserUI"
-                               , "ColorConstants"
-                               , "ColorConvertOp"
-                               , "ColorModel"
-                               , "ColorSelectionModel"
-                               , "ColorSpace"
-                               , "ColorSupported"
-                               , "ColorType"
-                               , "ColorUIResource"
-                               , "ComboBoxEditor"
-                               , "ComboBoxModel"
-                               , "ComboBoxUI"
-                               , "ComboPopup"
-                               , "CommandEnvironment"
-                               , "Comment"
-                               , "CommunicationException"
-                               , "Comparable"
-                               , "Comparator"
-                               , "Compiler"
-                               , "CompletionStatus"
-                               , "CompletionStatusHelper"
-                               , "Component"
-                               , "ComponentAdapter"
-                               , "ComponentColorModel"
-                               , "ComponentEvent"
-                               , "ComponentIdHelper"
-                               , "ComponentInputMap"
-                               , "ComponentInputMapUIResource"
-                               , "ComponentListener"
-                               , "ComponentOrientation"
-                               , "ComponentSampleModel"
-                               , "ComponentUI"
-                               , "ComponentView"
-                               , "Composite"
-                               , "CompositeContext"
-                               , "CompositeName"
-                               , "CompositeView"
-                               , "CompoundBorder"
-                               , "CompoundBorderUIResource"
-                               , "CompoundControl"
-                               , "CompoundEdit"
-                               , "CompoundName"
-                               , "Compression"
-                               , "ConcurrentModificationException"
-                               , "Configuration"
-                               , "ConfigurationException"
-                               , "ConfirmationCallback"
-                               , "ConnectException"
-                               , "ConnectIOException"
-                               , "Connection"
-                               , "ConnectionEvent"
-                               , "ConnectionEventListener"
-                               , "ConnectionPendingException"
-                               , "ConnectionPoolDataSource"
-                               , "ConsoleHandler"
-                               , "Constraints"
-                               , "Constructor"
-                               , "Container"
-                               , "ContainerAdapter"
-                               , "ContainerEvent"
-                               , "ContainerListener"
-                               , "ContainerOrderFocusTraversalPolicy"
-                               , "Content"
-                               , "ContentHandler"
-                               , "ContentHandlerFactory"
-                               , "ContentModel"
-                               , "Context"
-                               , "ContextList"
-                               , "ContextNotEmptyException"
-                               , "ContextualRenderedImageFactory"
-                               , "Control"
-                               , "ControlFactory"
-                               , "ControllerEventListener"
-                               , "ConvolveOp"
-                               , "CookieHolder"
-                               , "Copies"
-                               , "CopiesSupported"
-                               , "CopyAction"
-                               , "CredentialExpiredException"
-                               , "CropImageFilter"
-                               , "CubicCurve2D"
-                               , "Currency"
-                               , "Current"
-                               , "CurrentHelper"
-                               , "CurrentHolder"
-                               , "CurrentOperations"
-                               , "Cursor"
-                               , "CustomMarshal"
-                               , "CustomValue"
-                               , "Customizer"
-                               , "CutAction"
-                               , "DATA_CONVERSION"
-                               , "DESKeySpec"
-                               , "DESedeKeySpec"
-                               , "DGC"
-                               , "DHGenParameterSpec"
-                               , "DHKey"
-                               , "DHParameterSpec"
-                               , "DHPrivateKey"
-                               , "DHPrivateKeySpec"
-                               , "DHPublicKey"
-                               , "DHPublicKeySpec"
-                               , "DOMException"
-                               , "DOMImplementation"
-                               , "DOMLocator"
-                               , "DOMResult"
-                               , "DOMSource"
-                               , "DSAKey"
-                               , "DSAKeyPairGenerator"
-                               , "DSAParameterSpec"
-                               , "DSAParams"
-                               , "DSAPrivateKey"
-                               , "DSAPrivateKeySpec"
-                               , "DSAPublicKey"
-                               , "DSAPublicKeySpec"
-                               , "DTD"
-                               , "DTDConstants"
-                               , "DTDHandler"
-                               , "DataBuffer"
-                               , "DataBufferByte"
-                               , "DataBufferDouble"
-                               , "DataBufferFloat"
-                               , "DataBufferInt"
-                               , "DataBufferShort"
-                               , "DataBufferUShort"
-                               , "DataFlavor"
-                               , "DataFormatException"
-                               , "DataInput"
-                               , "DataInputStream"
-                               , "DataLine"
-                               , "DataOutput"
-                               , "DataOutputStream"
-                               , "DataSource"
-                               , "DataTruncation"
-                               , "DatabaseMetaData"
-                               , "DatagramChannel"
-                               , "DatagramPacket"
-                               , "DatagramSocket"
-                               , "DatagramSocketImpl"
-                               , "DatagramSocketImplFactory"
-                               , "Date"
-                               , "DateEditor"
-                               , "DateFormat"
-                               , "DateFormatSymbols"
-                               , "DateFormatter"
-                               , "DateTimeAtCompleted"
-                               , "DateTimeAtCreation"
-                               , "DateTimeAtProcessing"
-                               , "DateTimeSyntax"
-                               , "DebugGraphics"
-                               , "DecimalFormat"
-                               , "DecimalFormatSymbols"
-                               , "DeclHandler"
-                               , "DefaultBoundedRangeModel"
-                               , "DefaultButtonModel"
-                               , "DefaultCaret"
-                               , "DefaultCellEditor"
-                               , "DefaultColorSelectionModel"
-                               , "DefaultComboBoxModel"
-                               , "DefaultDesktopManager"
-                               , "DefaultEditor"
-                               , "DefaultEditorKit"
-                               , "DefaultFocusManager"
-                               , "DefaultFocusTraversalPolicy"
-                               , "DefaultFormatter"
-                               , "DefaultFormatterFactory"
-                               , "DefaultHandler"
-                               , "DefaultHighlightPainter"
-                               , "DefaultHighlighter"
-                               , "DefaultKeyTypedAction"
-                               , "DefaultKeyboardFocusManager"
-                               , "DefaultListCellRenderer"
-                               , "DefaultListModel"
-                               , "DefaultListSelectionModel"
-                               , "DefaultMenuLayout"
-                               , "DefaultMetalTheme"
-                               , "DefaultMutableTreeNode"
-                               , "DefaultPersistenceDelegate"
-                               , "DefaultSelectionType"
-                               , "DefaultSingleSelectionModel"
-                               , "DefaultStyledDocument"
-                               , "DefaultTableCellRenderer"
-                               , "DefaultTableColumnModel"
-                               , "DefaultTableModel"
-                               , "DefaultTextUI"
-                               , "DefaultTreeCellEditor"
-                               , "DefaultTreeCellRenderer"
-                               , "DefaultTreeModel"
-                               , "DefaultTreeSelectionModel"
-                               , "DefinitionKind"
-                               , "DefinitionKindHelper"
-                               , "Deflater"
-                               , "DeflaterOutputStream"
-                               , "Delegate"
-                               , "DelegationPermission"
-                               , "DesignMode"
-                               , "DesktopIconUI"
-                               , "DesktopManager"
-                               , "DesktopPaneUI"
-                               , "Destination"
-                               , "DestinationType"
-                               , "DestroyFailedException"
-                               , "Destroyable"
-                               , "Dialog"
-                               , "DialogType"
-                               , "Dictionary"
-                               , "DigestException"
-                               , "DigestInputStream"
-                               , "DigestOutputStream"
-                               , "Dimension"
-                               , "Dimension2D"
-                               , "DimensionUIResource"
-                               , "DirContext"
-                               , "DirObjectFactory"
-                               , "DirStateFactory"
-                               , "DirectColorModel"
-                               , "DirectoryManager"
-                               , "DisplayMode"
-                               , "DnDConstants"
-                               , "Doc"
-                               , "DocAttribute"
-                               , "DocAttributeSet"
-                               , "DocFlavor"
-                               , "DocPrintJob"
-                               , "Document"
-                               , "DocumentBuilder"
-                               , "DocumentBuilderFactory"
-                               , "DocumentEvent"
-                               , "DocumentFilter"
-                               , "DocumentFragment"
-                               , "DocumentHandler"
-                               , "DocumentListener"
-                               , "DocumentName"
-                               , "DocumentParser"
-                               , "DocumentType"
-                               , "DomainCombiner"
-                               , "DomainManager"
-                               , "DomainManagerOperations"
-                               , "Double"
-                               , "DoubleBuffer"
-                               , "DoubleHolder"
-                               , "DoubleSeqHelper"
-                               , "DoubleSeqHolder"
-                               , "DragGestureEvent"
-                               , "DragGestureListener"
-                               , "DragGestureRecognizer"
-                               , "DragSource"
-                               , "DragSourceAdapter"
-                               , "DragSourceContext"
-                               , "DragSourceDragEvent"
-                               , "DragSourceDropEvent"
-                               , "DragSourceEvent"
-                               , "DragSourceListener"
-                               , "DragSourceMotionListener"
-                               , "Driver"
-                               , "DriverManager"
-                               , "DriverPropertyInfo"
-                               , "DropTarget"
-                               , "DropTargetAdapter"
-                               , "DropTargetAutoScroller"
-                               , "DropTargetContext"
-                               , "DropTargetDragEvent"
-                               , "DropTargetDropEvent"
-                               , "DropTargetEvent"
-                               , "DropTargetListener"
-                               , "DuplicateName"
-                               , "DuplicateNameHelper"
-                               , "DynAny"
-                               , "DynAnyFactory"
-                               , "DynAnyFactoryHelper"
-                               , "DynAnyFactoryOperations"
-                               , "DynAnyHelper"
-                               , "DynAnyOperations"
-                               , "DynAnySeqHelper"
-                               , "DynArray"
-                               , "DynArrayHelper"
-                               , "DynArrayOperations"
-                               , "DynEnum"
-                               , "DynEnumHelper"
-                               , "DynEnumOperations"
-                               , "DynFixed"
-                               , "DynFixedHelper"
-                               , "DynFixedOperations"
-                               , "DynSequence"
-                               , "DynSequenceHelper"
-                               , "DynSequenceOperations"
-                               , "DynStruct"
-                               , "DynStructHelper"
-                               , "DynStructOperations"
-                               , "DynUnion"
-                               , "DynUnionHelper"
-                               , "DynUnionOperations"
-                               , "DynValue"
-                               , "DynValueBox"
-                               , "DynValueBoxOperations"
-                               , "DynValueCommon"
-                               , "DynValueCommonOperations"
-                               , "DynValueHelper"
-                               , "DynValueOperations"
-                               , "DynamicImplementation"
-                               , "DynamicUtilTreeNode"
-                               , "ENCODING_CDR_ENCAPS"
-                               , "EOFException"
-                               , "EditorKit"
-                               , "Element"
-                               , "ElementChange"
-                               , "ElementEdit"
-                               , "ElementIterator"
-                               , "ElementSpec"
-                               , "Ellipse2D"
-                               , "EmptyBorder"
-                               , "EmptyBorderUIResource"
-                               , "EmptySelectionModel"
-                               , "EmptyStackException"
-                               , "EncodedKeySpec"
-                               , "Encoder"
-                               , "Encoding"
-                               , "EncryptedPrivateKeyInfo"
-                               , "Engineering"
-                               , "Entity"
-                               , "EntityReference"
-                               , "EntityResolver"
-                               , "Entry"
-                               , "EnumControl"
-                               , "EnumSyntax"
-                               , "Enumeration"
-                               , "Environment"
-                               , "Error"
-                               , "ErrorHandler"
-                               , "ErrorListener"
-                               , "ErrorManager"
-                               , "EtchedBorder"
-                               , "EtchedBorderUIResource"
-                               , "Event"
-                               , "EventContext"
-                               , "EventDirContext"
-                               , "EventHandler"
-                               , "EventListener"
-                               , "EventListenerList"
-                               , "EventListenerProxy"
-                               , "EventObject"
-                               , "EventQueue"
-                               , "EventSetDescriptor"
-                               , "EventType"
-                               , "Exception"
-                               , "ExceptionInInitializerError"
-                               , "ExceptionList"
-                               , "ExceptionListener"
-                               , "ExemptionMechanism"
-                               , "ExemptionMechanismException"
-                               , "ExemptionMechanismSpi"
-                               , "ExpandVetoException"
-                               , "ExportException"
-                               , "Expression"
-                               , "ExtendedRequest"
-                               , "ExtendedResponse"
-                               , "Externalizable"
-                               , "FREE_MEM"
-                               , "FactoryConfigurationError"
-                               , "FailedLoginException"
-                               , "FeatureDescriptor"
-                               , "Fidelity"
-                               , "Field"
-                               , "FieldBorder"
-                               , "FieldNameHelper"
-                               , "FieldPosition"
-                               , "FieldView"
-                               , "File"
-                               , "FileCacheImageInputStream"
-                               , "FileCacheImageOutputStream"
-                               , "FileChannel"
-                               , "FileChooserUI"
-                               , "FileDescriptor"
-                               , "FileDialog"
-                               , "FileFilter"
-                               , "FileHandler"
-                               , "FileIcon16"
-                               , "FileImageInputStream"
-                               , "FileImageOutputStream"
-                               , "FileInputStream"
-                               , "FileLock"
-                               , "FileLockInterruptionException"
-                               , "FileNameMap"
-                               , "FileNotFoundException"
-                               , "FileOutputStream"
-                               , "FilePermission"
-                               , "FileReader"
-                               , "FileSystemView"
-                               , "FileView"
-                               , "FileWriter"
-                               , "FilenameFilter"
-                               , "Filler"
-                               , "Filter"
-                               , "FilterBypass"
-                               , "FilterInputStream"
-                               , "FilterOutputStream"
-                               , "FilterReader"
-                               , "FilterWriter"
-                               , "FilteredImageSource"
-                               , "Finishings"
-                               , "FixedHeightLayoutCache"
-                               , "FixedHolder"
-                               , "FlatteningPathIterator"
-                               , "FlavorException"
-                               , "FlavorMap"
-                               , "FlavorTable"
-                               , "FlipContents"
-                               , "Float"
-                               , "FloatBuffer"
-                               , "FloatControl"
-                               , "FloatHolder"
-                               , "FloatSeqHelper"
-                               , "FloatSeqHolder"
-                               , "FlowLayout"
-                               , "FlowStrategy"
-                               , "FlowView"
-                               , "Flush3DBorder"
-                               , "FocusAdapter"
-                               , "FocusEvent"
-                               , "FocusListener"
-                               , "FocusManager"
-                               , "FocusTraversalPolicy"
-                               , "FolderIcon16"
-                               , "Font"
-                               , "FontAttribute"
-                               , "FontConstants"
-                               , "FontFamilyAction"
-                               , "FontFormatException"
-                               , "FontMetrics"
-                               , "FontRenderContext"
-                               , "FontSizeAction"
-                               , "FontUIResource"
-                               , "ForegroundAction"
-                               , "FormView"
-                               , "Format"
-                               , "FormatConversionProvider"
-                               , "FormatMismatch"
-                               , "FormatMismatchHelper"
-                               , "Formatter"
-                               , "ForwardRequest"
-                               , "ForwardRequestHelper"
-                               , "Frame"
-                               , "GSSContext"
-                               , "GSSCredential"
-                               , "GSSException"
-                               , "GSSManager"
-                               , "GSSName"
-                               , "GZIPInputStream"
-                               , "GZIPOutputStream"
-                               , "GapContent"
-                               , "GatheringByteChannel"
-                               , "GeneralPath"
-                               , "GeneralSecurityException"
-                               , "GetField"
-                               , "GlyphJustificationInfo"
-                               , "GlyphMetrics"
-                               , "GlyphPainter"
-                               , "GlyphVector"
-                               , "GlyphView"
-                               , "GradientPaint"
-                               , "GraphicAttribute"
-                               , "Graphics"
-                               , "Graphics2D"
-                               , "GraphicsConfigTemplate"
-                               , "GraphicsConfiguration"
-                               , "GraphicsDevice"
-                               , "GraphicsEnvironment"
-                               , "GrayFilter"
-                               , "GregorianCalendar"
-                               , "GridBagConstraints"
-                               , "GridBagLayout"
-                               , "GridLayout"
-                               , "Group"
-                               , "Guard"
-                               , "GuardedObject"
-                               , "HTML"
-                               , "HTMLDocument"
-                               , "HTMLEditorKit"
-                               , "HTMLFrameHyperlinkEvent"
-                               , "HTMLWriter"
-                               , "Handler"
-                               , "HandlerBase"
-                               , "HandshakeCompletedEvent"
-                               , "HandshakeCompletedListener"
-                               , "HasControls"
-                               , "HashAttributeSet"
-                               , "HashDocAttributeSet"
-                               , "HashMap"
-                               , "HashPrintJobAttributeSet"
-                               , "HashPrintRequestAttributeSet"
-                               , "HashPrintServiceAttributeSet"
-                               , "HashSet"
-                               , "Hashtable"
-                               , "HeadlessException"
-                               , "HierarchyBoundsAdapter"
-                               , "HierarchyBoundsListener"
-                               , "HierarchyEvent"
-                               , "HierarchyListener"
-                               , "Highlight"
-                               , "HighlightPainter"
-                               , "Highlighter"
-                               , "HostnameVerifier"
-                               , "HttpURLConnection"
-                               , "HttpsURLConnection"
-                               , "HyperlinkEvent"
-                               , "HyperlinkListener"
-                               , "ICC_ColorSpace"
-                               , "ICC_Profile"
-                               , "ICC_ProfileGray"
-                               , "ICC_ProfileRGB"
-                               , "IDLEntity"
-                               , "IDLType"
-                               , "IDLTypeHelper"
-                               , "IDLTypeOperations"
-                               , "ID_ASSIGNMENT_POLICY_ID"
-                               , "ID_UNIQUENESS_POLICY_ID"
-                               , "IIOByteBuffer"
-                               , "IIOException"
-                               , "IIOImage"
-                               , "IIOInvalidTreeException"
-                               , "IIOMetadata"
-                               , "IIOMetadataController"
-                               , "IIOMetadataFormat"
-                               , "IIOMetadataFormatImpl"
-                               , "IIOMetadataNode"
-                               , "IIOParam"
-                               , "IIOParamController"
-                               , "IIOReadProgressListener"
-                               , "IIOReadUpdateListener"
-                               , "IIOReadWarningListener"
-                               , "IIORegistry"
-                               , "IIOServiceProvider"
-                               , "IIOWriteProgressListener"
-                               , "IIOWriteWarningListener"
-                               , "IMPLICIT_ACTIVATION_POLICY_ID"
-                               , "IMP_LIMIT"
-                               , "INITIALIZE"
-                               , "INPUT_STREAM"
-                               , "INTERNAL"
-                               , "INTF_REPOS"
-                               , "INVALID_TRANSACTION"
-                               , "INV_FLAG"
-                               , "INV_IDENT"
-                               , "INV_OBJREF"
-                               , "INV_POLICY"
-                               , "IOException"
-                               , "IOR"
-                               , "IORHelper"
-                               , "IORHolder"
-                               , "IORInfo"
-                               , "IORInfoOperations"
-                               , "IORInterceptor"
-                               , "IORInterceptorOperations"
-                               , "IRObject"
-                               , "IRObjectOperations"
-                               , "ISO"
-                               , "Icon"
-                               , "IconUIResource"
-                               , "IconView"
-                               , "IdAssignmentPolicy"
-                               , "IdAssignmentPolicyOperations"
-                               , "IdAssignmentPolicyValue"
-                               , "IdUniquenessPolicy"
-                               , "IdUniquenessPolicyOperations"
-                               , "IdUniquenessPolicyValue"
-                               , "IdentifierHelper"
-                               , "Identity"
-                               , "IdentityHashMap"
-                               , "IdentityScope"
-                               , "IllegalAccessError"
-                               , "IllegalAccessException"
-                               , "IllegalArgumentException"
-                               , "IllegalBlockSizeException"
-                               , "IllegalBlockingModeException"
-                               , "IllegalCharsetNameException"
-                               , "IllegalComponentStateException"
-                               , "IllegalMonitorStateException"
-                               , "IllegalPathStateException"
-                               , "IllegalSelectorException"
-                               , "IllegalStateException"
-                               , "IllegalThreadStateException"
-                               , "Image"
-                               , "ImageCapabilities"
-                               , "ImageConsumer"
-                               , "ImageFilter"
-                               , "ImageGraphicAttribute"
-                               , "ImageIO"
-                               , "ImageIcon"
-                               , "ImageInputStream"
-                               , "ImageInputStreamImpl"
-                               , "ImageInputStreamSpi"
-                               , "ImageObserver"
-                               , "ImageOutputStream"
-                               , "ImageOutputStreamImpl"
-                               , "ImageOutputStreamSpi"
-                               , "ImageProducer"
-                               , "ImageReadParam"
-                               , "ImageReader"
-                               , "ImageReaderSpi"
-                               , "ImageReaderWriterSpi"
-                               , "ImageTranscoder"
-                               , "ImageTranscoderSpi"
-                               , "ImageTypeSpecifier"
-                               , "ImageView"
-                               , "ImageWriteParam"
-                               , "ImageWriter"
-                               , "ImageWriterSpi"
-                               , "ImagingOpException"
-                               , "ImplicitActivationPolicy"
-                               , "ImplicitActivationPolicyOperations"
-                               , "ImplicitActivationPolicyValue"
-                               , "IncompatibleClassChangeError"
-                               , "InconsistentTypeCode"
-                               , "InconsistentTypeCodeHelper"
-                               , "IndexColorModel"
-                               , "IndexOutOfBoundsException"
-                               , "IndexedPropertyDescriptor"
-                               , "IndirectionException"
-                               , "Inet4Address"
-                               , "Inet6Address"
-                               , "InetAddress"
-                               , "InetSocketAddress"
-                               , "Inflater"
-                               , "InflaterInputStream"
-                               , "Info"
-                               , "InheritableThreadLocal"
-                               , "InitialContext"
-                               , "InitialContextFactory"
-                               , "InitialContextFactoryBuilder"
-                               , "InitialDirContext"
-                               , "InitialLdapContext"
-                               , "InlineView"
-                               , "InputContext"
-                               , "InputEvent"
-                               , "InputMap"
-                               , "InputMapUIResource"
-                               , "InputMethod"
-                               , "InputMethodContext"
-                               , "InputMethodDescriptor"
-                               , "InputMethodEvent"
-                               , "InputMethodHighlight"
-                               , "InputMethodListener"
-                               , "InputMethodRequests"
-                               , "InputSource"
-                               , "InputStream"
-                               , "InputStreamReader"
-                               , "InputSubset"
-                               , "InputVerifier"
-                               , "InsertBreakAction"
-                               , "InsertContentAction"
-                               , "InsertHTMLTextAction"
-                               , "InsertTabAction"
-                               , "Insets"
-                               , "InsetsUIResource"
-                               , "InstantiationError"
-                               , "InstantiationException"
-                               , "Instrument"
-                               , "InsufficientResourcesException"
-                               , "IntBuffer"
-                               , "IntHolder"
-                               , "Integer"
-                               , "IntegerSyntax"
-                               , "Interceptor"
-                               , "InterceptorOperations"
-                               , "InternalError"
-                               , "InternalFrameAdapter"
-                               , "InternalFrameBorder"
-                               , "InternalFrameEvent"
-                               , "InternalFrameFocusTraversalPolicy"
-                               , "InternalFrameListener"
-                               , "InternalFrameUI"
-                               , "InternationalFormatter"
-                               , "InterruptedException"
-                               , "InterruptedIOException"
-                               , "InterruptedNamingException"
-                               , "InterruptibleChannel"
-                               , "IntrospectionException"
-                               , "Introspector"
-                               , "Invalid"
-                               , "InvalidAddress"
-                               , "InvalidAddressHelper"
-                               , "InvalidAddressHolder"
-                               , "InvalidAlgorithmParameterException"
-                               , "InvalidAttributeIdentifierException"
-                               , "InvalidAttributeValueException"
-                               , "InvalidAttributesException"
-                               , "InvalidClassException"
-                               , "InvalidDnDOperationException"
-                               , "InvalidKeyException"
-                               , "InvalidKeySpecException"
-                               , "InvalidMarkException"
-                               , "InvalidMidiDataException"
-                               , "InvalidName"
-                               , "InvalidNameException"
-                               , "InvalidNameHelper"
-                               , "InvalidNameHolder"
-                               , "InvalidObjectException"
-                               , "InvalidParameterException"
-                               , "InvalidParameterSpecException"
-                               , "InvalidPolicy"
-                               , "InvalidPolicyHelper"
-                               , "InvalidPreferencesFormatException"
-                               , "InvalidSearchControlsException"
-                               , "InvalidSearchFilterException"
-                               , "InvalidSeq"
-                               , "InvalidSlot"
-                               , "InvalidSlotHelper"
-                               , "InvalidTransactionException"
-                               , "InvalidTypeForEncoding"
-                               , "InvalidTypeForEncodingHelper"
-                               , "InvalidValue"
-                               , "InvalidValueHelper"
-                               , "InvocationEvent"
-                               , "InvocationHandler"
-                               , "InvocationTargetException"
-                               , "InvokeHandler"
-                               , "IstringHelper"
-                               , "ItalicAction"
-                               , "ItemEvent"
-                               , "ItemListener"
-                               , "ItemSelectable"
-                               , "Iterator"
-                               , "IvParameterSpec"
-                               , "JApplet"
-                               , "JButton"
-                               , "JCheckBox"
-                               , "JCheckBoxMenuItem"
-                               , "JColorChooser"
-                               , "JComboBox"
-                               , "JComponent"
-                               , "JDesktopIcon"
-                               , "JDesktopPane"
-                               , "JDialog"
-                               , "JEditorPane"
-                               , "JFileChooser"
-                               , "JFormattedTextField"
-                               , "JFrame"
-                               , "JIS"
-                               , "JInternalFrame"
-                               , "JLabel"
-                               , "JLayeredPane"
-                               , "JList"
-                               , "JMenu"
-                               , "JMenuBar"
-                               , "JMenuItem"
-                               , "JOptionPane"
-                               , "JPEGHuffmanTable"
-                               , "JPEGImageReadParam"
-                               , "JPEGImageWriteParam"
-                               , "JPEGQTable"
-                               , "JPanel"
-                               , "JPasswordField"
-                               , "JPopupMenu"
-                               , "JProgressBar"
-                               , "JRadioButton"
-                               , "JRadioButtonMenuItem"
-                               , "JRootPane"
-                               , "JScrollBar"
-                               , "JScrollPane"
-                               , "JSeparator"
-                               , "JSlider"
-                               , "JSpinner"
-                               , "JSplitPane"
-                               , "JTabbedPane"
-                               , "JTable"
-                               , "JTableHeader"
-                               , "JTextArea"
-                               , "JTextComponent"
-                               , "JTextField"
-                               , "JTextPane"
-                               , "JToggleButton"
-                               , "JToolBar"
-                               , "JToolTip"
-                               , "JTree"
-                               , "JViewport"
-                               , "JWindow"
-                               , "JarEntry"
-                               , "JarException"
-                               , "JarFile"
-                               , "JarInputStream"
-                               , "JarOutputStream"
-                               , "JarURLConnection"
-                               , "JobAttributes"
-                               , "JobHoldUntil"
-                               , "JobImpressions"
-                               , "JobImpressionsCompleted"
-                               , "JobImpressionsSupported"
-                               , "JobKOctets"
-                               , "JobKOctetsProcessed"
-                               , "JobKOctetsSupported"
-                               , "JobMediaSheets"
-                               , "JobMediaSheetsCompleted"
-                               , "JobMediaSheetsSupported"
-                               , "JobMessageFromOperator"
-                               , "JobName"
-                               , "JobOriginatingUserName"
-                               , "JobPriority"
-                               , "JobPrioritySupported"
-                               , "JobSheets"
-                               , "JobState"
-                               , "JobStateReason"
-                               , "JobStateReasons"
-                               , "KerberosKey"
-                               , "KerberosPrincipal"
-                               , "KerberosTicket"
-                               , "Kernel"
-                               , "Key"
-                               , "KeyAdapter"
-                               , "KeyAgreement"
-                               , "KeyAgreementSpi"
-                               , "KeyBinding"
-                               , "KeyEvent"
-                               , "KeyEventDispatcher"
-                               , "KeyEventPostProcessor"
-                               , "KeyException"
-                               , "KeyFactory"
-                               , "KeyFactorySpi"
-                               , "KeyGenerator"
-                               , "KeyGeneratorSpi"
-                               , "KeyListener"
-                               , "KeyManagementException"
-                               , "KeyManager"
-                               , "KeyManagerFactory"
-                               , "KeyManagerFactorySpi"
-                               , "KeyPair"
-                               , "KeyPairGenerator"
-                               , "KeyPairGeneratorSpi"
-                               , "KeySelectionManager"
-                               , "KeySpec"
-                               , "KeyStore"
-                               , "KeyStoreException"
-                               , "KeyStoreSpi"
-                               , "KeyStroke"
-                               , "KeyboardFocusManager"
-                               , "Keymap"
-                               , "LDAPCertStoreParameters"
-                               , "LIFESPAN_POLICY_ID"
-                               , "LOCATION_FORWARD"
-                               , "Label"
-                               , "LabelUI"
-                               , "LabelView"
-                               , "LanguageCallback"
-                               , "LastOwnerException"
-                               , "LayerPainter"
-                               , "LayeredHighlighter"
-                               , "LayoutFocusTraversalPolicy"
-                               , "LayoutManager"
-                               , "LayoutManager2"
-                               , "LayoutQueue"
-                               , "LazyInputMap"
-                               , "LazyValue"
-                               , "LdapContext"
-                               , "LdapReferralException"
-                               , "Lease"
-                               , "Level"
-                               , "LexicalHandler"
-                               , "LifespanPolicy"
-                               , "LifespanPolicyOperations"
-                               , "LifespanPolicyValue"
-                               , "LimitExceededException"
-                               , "Line"
-                               , "Line2D"
-                               , "LineBorder"
-                               , "LineBorderUIResource"
-                               , "LineBreakMeasurer"
-                               , "LineEvent"
-                               , "LineListener"
-                               , "LineMetrics"
-                               , "LineNumberInputStream"
-                               , "LineNumberReader"
-                               , "LineUnavailableException"
-                               , "LinkController"
-                               , "LinkException"
-                               , "LinkLoopException"
-                               , "LinkRef"
-                               , "LinkageError"
-                               , "LinkedHashMap"
-                               , "LinkedHashSet"
-                               , "LinkedList"
-                               , "List"
-                               , "ListCellRenderer"
-                               , "ListDataEvent"
-                               , "ListDataListener"
-                               , "ListEditor"
-                               , "ListIterator"
-                               , "ListModel"
-                               , "ListPainter"
-                               , "ListResourceBundle"
-                               , "ListSelectionEvent"
-                               , "ListSelectionListener"
-                               , "ListSelectionModel"
-                               , "ListUI"
-                               , "ListView"
-                               , "LoaderHandler"
-                               , "LocalObject"
-                               , "Locale"
-                               , "LocateRegistry"
-                               , "Locator"
-                               , "LocatorImpl"
-                               , "LogManager"
-                               , "LogRecord"
-                               , "LogStream"
-                               , "Logger"
-                               , "LoggingPermission"
-                               , "LoginContext"
-                               , "LoginException"
-                               , "LoginModule"
-                               , "LoginModuleControlFlag"
-                               , "Long"
-                               , "LongBuffer"
-                               , "LongHolder"
-                               , "LongLongSeqHelper"
-                               , "LongLongSeqHolder"
-                               , "LongSeqHelper"
-                               , "LongSeqHolder"
-                               , "LookAndFeel"
-                               , "LookAndFeelInfo"
-                               , "LookupOp"
-                               , "LookupTable"
-                               , "MARSHAL"
-                               , "Mac"
-                               , "MacSpi"
-                               , "MalformedInputException"
-                               , "MalformedLinkException"
-                               , "MalformedURLException"
-                               , "ManagerFactoryParameters"
-                               , "Manifest"
-                               , "Map"
-                               , "MapMode"
-                               , "MappedByteBuffer"
-                               , "MarginBorder"
-                               , "MarshalException"
-                               , "MarshalledObject"
-                               , "MaskFormatter"
-                               , "Matcher"
-                               , "Math"
-                               , "MatteBorder"
-                               , "MatteBorderUIResource"
-                               , "Media"
-                               , "MediaName"
-                               , "MediaPrintableArea"
-                               , "MediaSize"
-                               , "MediaSizeName"
-                               , "MediaTracker"
-                               , "MediaTray"
-                               , "MediaType"
-                               , "Member"
-                               , "MemoryCacheImageInputStream"
-                               , "MemoryCacheImageOutputStream"
-                               , "MemoryHandler"
-                               , "MemoryImageSource"
-                               , "Menu"
-                               , "MenuBar"
-                               , "MenuBarBorder"
-                               , "MenuBarUI"
-                               , "MenuComponent"
-                               , "MenuContainer"
-                               , "MenuDragMouseEvent"
-                               , "MenuDragMouseListener"
-                               , "MenuElement"
-                               , "MenuEvent"
-                               , "MenuItem"
-                               , "MenuItemBorder"
-                               , "MenuItemUI"
-                               , "MenuKeyEvent"
-                               , "MenuKeyListener"
-                               , "MenuListener"
-                               , "MenuSelectionManager"
-                               , "MenuShortcut"
-                               , "MessageDigest"
-                               , "MessageDigestSpi"
-                               , "MessageFormat"
-                               , "MessageProp"
-                               , "MetaEventListener"
-                               , "MetaMessage"
-                               , "MetalBorders"
-                               , "MetalButtonUI"
-                               , "MetalCheckBoxIcon"
-                               , "MetalCheckBoxUI"
-                               , "MetalComboBoxButton"
-                               , "MetalComboBoxEditor"
-                               , "MetalComboBoxIcon"
-                               , "MetalComboBoxUI"
-                               , "MetalDesktopIconUI"
-                               , "MetalFileChooserUI"
-                               , "MetalIconFactory"
-                               , "MetalInternalFrameTitlePane"
-                               , "MetalInternalFrameUI"
-                               , "MetalLabelUI"
-                               , "MetalLookAndFeel"
-                               , "MetalPopupMenuSeparatorUI"
-                               , "MetalProgressBarUI"
-                               , "MetalRadioButtonUI"
-                               , "MetalRootPaneUI"
-                               , "MetalScrollBarUI"
-                               , "MetalScrollButton"
-                               , "MetalScrollPaneUI"
-                               , "MetalSeparatorUI"
-                               , "MetalSliderUI"
-                               , "MetalSplitPaneUI"
-                               , "MetalTabbedPaneUI"
-                               , "MetalTextFieldUI"
-                               , "MetalTheme"
-                               , "MetalToggleButtonUI"
-                               , "MetalToolBarUI"
-                               , "MetalToolTipUI"
-                               , "MetalTreeUI"
-                               , "Method"
-                               , "MethodDescriptor"
-                               , "MidiChannel"
-                               , "MidiDevice"
-                               , "MidiDeviceProvider"
-                               , "MidiEvent"
-                               , "MidiFileFormat"
-                               , "MidiFileReader"
-                               , "MidiFileWriter"
-                               , "MidiMessage"
-                               , "MidiSystem"
-                               , "MidiUnavailableException"
-                               , "MimeTypeParseException"
-                               , "MinimalHTMLWriter"
-                               , "MissingResourceException"
-                               , "Mixer"
-                               , "MixerProvider"
-                               , "ModificationItem"
-                               , "Modifier"
-                               , "MouseAdapter"
-                               , "MouseDragGestureRecognizer"
-                               , "MouseEvent"
-                               , "MouseInputAdapter"
-                               , "MouseInputListener"
-                               , "MouseListener"
-                               , "MouseMotionAdapter"
-                               , "MouseMotionListener"
-                               , "MouseWheelEvent"
-                               , "MouseWheelListener"
-                               , "MultiButtonUI"
-                               , "MultiColorChooserUI"
-                               , "MultiComboBoxUI"
-                               , "MultiDesktopIconUI"
-                               , "MultiDesktopPaneUI"
-                               , "MultiDoc"
-                               , "MultiDocPrintJob"
-                               , "MultiDocPrintService"
-                               , "MultiFileChooserUI"
-                               , "MultiInternalFrameUI"
-                               , "MultiLabelUI"
-                               , "MultiListUI"
-                               , "MultiLookAndFeel"
-                               , "MultiMenuBarUI"
-                               , "MultiMenuItemUI"
-                               , "MultiOptionPaneUI"
-                               , "MultiPanelUI"
-                               , "MultiPixelPackedSampleModel"
-                               , "MultiPopupMenuUI"
-                               , "MultiProgressBarUI"
-                               , "MultiRootPaneUI"
-                               , "MultiScrollBarUI"
-                               , "MultiScrollPaneUI"
-                               , "MultiSeparatorUI"
-                               , "MultiSliderUI"
-                               , "MultiSpinnerUI"
-                               , "MultiSplitPaneUI"
-                               , "MultiTabbedPaneUI"
-                               , "MultiTableHeaderUI"
-                               , "MultiTableUI"
-                               , "MultiTextUI"
-                               , "MultiToolBarUI"
-                               , "MultiToolTipUI"
-                               , "MultiTreeUI"
-                               , "MultiViewportUI"
-                               , "MulticastSocket"
-                               , "MultipleComponentProfileHelper"
-                               , "MultipleComponentProfileHolder"
-                               , "MultipleDocumentHandling"
-                               , "MultipleDocumentHandlingType"
-                               , "MultipleMaster"
-                               , "MutableAttributeSet"
-                               , "MutableComboBoxModel"
-                               , "MutableTreeNode"
-                               , "NA"
-                               , "NO_IMPLEMENT"
-                               , "NO_MEMORY"
-                               , "NO_PERMISSION"
-                               , "NO_RESOURCES"
-                               , "NO_RESPONSE"
-                               , "NVList"
-                               , "Name"
-                               , "NameAlreadyBoundException"
-                               , "NameCallback"
-                               , "NameClassPair"
-                               , "NameComponent"
-                               , "NameComponentHelper"
-                               , "NameComponentHolder"
-                               , "NameDynAnyPair"
-                               , "NameDynAnyPairHelper"
-                               , "NameDynAnyPairSeqHelper"
-                               , "NameHelper"
-                               , "NameHolder"
-                               , "NameNotFoundException"
-                               , "NameParser"
-                               , "NameValuePair"
-                               , "NameValuePairHelper"
-                               , "NameValuePairSeqHelper"
-                               , "NamedNodeMap"
-                               , "NamedValue"
-                               , "NamespaceChangeListener"
-                               , "NamespaceSupport"
-                               , "Naming"
-                               , "NamingContext"
-                               , "NamingContextExt"
-                               , "NamingContextExtHelper"
-                               , "NamingContextExtHolder"
-                               , "NamingContextExtOperations"
-                               , "NamingContextExtPOA"
-                               , "NamingContextHelper"
-                               , "NamingContextHolder"
-                               , "NamingContextOperations"
-                               , "NamingContextPOA"
-                               , "NamingEnumeration"
-                               , "NamingEvent"
-                               , "NamingException"
-                               , "NamingExceptionEvent"
-                               , "NamingListener"
-                               , "NamingManager"
-                               , "NamingSecurityException"
-                               , "NavigationFilter"
-                               , "NegativeArraySizeException"
-                               , "NetPermission"
-                               , "NetworkInterface"
-                               , "NoClassDefFoundError"
-                               , "NoConnectionPendingException"
-                               , "NoContext"
-                               , "NoContextHelper"
-                               , "NoInitialContextException"
-                               , "NoPermissionException"
-                               , "NoRouteToHostException"
-                               , "NoServant"
-                               , "NoServantHelper"
-                               , "NoSuchAlgorithmException"
-                               , "NoSuchAttributeException"
-                               , "NoSuchElementException"
-                               , "NoSuchFieldError"
-                               , "NoSuchFieldException"
-                               , "NoSuchMethodError"
-                               , "NoSuchMethodException"
-                               , "NoSuchObjectException"
-                               , "NoSuchPaddingException"
-                               , "NoSuchProviderException"
-                               , "Node"
-                               , "NodeChangeEvent"
-                               , "NodeChangeListener"
-                               , "NodeDimensions"
-                               , "NodeList"
-                               , "NonReadableChannelException"
-                               , "NonWritableChannelException"
-                               , "NoninvertibleTransformException"
-                               , "NotActiveException"
-                               , "NotBoundException"
-                               , "NotContextException"
-                               , "NotEmpty"
-                               , "NotEmptyHelper"
-                               , "NotEmptyHolder"
-                               , "NotFound"
-                               , "NotFoundHelper"
-                               , "NotFoundHolder"
-                               , "NotFoundReason"
-                               , "NotFoundReasonHelper"
-                               , "NotFoundReasonHolder"
-                               , "NotOwnerException"
-                               , "NotSerializableException"
-                               , "NotYetBoundException"
-                               , "NotYetConnectedException"
-                               , "Notation"
-                               , "NullCipher"
-                               , "NullPointerException"
-                               , "Number"
-                               , "NumberEditor"
-                               , "NumberFormat"
-                               , "NumberFormatException"
-                               , "NumberFormatter"
-                               , "NumberOfDocuments"
-                               , "NumberOfInterveningJobs"
-                               , "NumberUp"
-                               , "NumberUpSupported"
-                               , "NumericShaper"
-                               , "OBJECT_NOT_EXIST"
-                               , "OBJ_ADAPTER"
-                               , "OMGVMCID"
-                               , "ORB"
-                               , "ORBInitInfo"
-                               , "ORBInitInfoOperations"
-                               , "ORBInitializer"
-                               , "ORBInitializerOperations"
-                               , "ObjID"
-                               , "Object"
-                               , "ObjectAlreadyActive"
-                               , "ObjectAlreadyActiveHelper"
-                               , "ObjectChangeListener"
-                               , "ObjectFactory"
-                               , "ObjectFactoryBuilder"
-                               , "ObjectHelper"
-                               , "ObjectHolder"
-                               , "ObjectIdHelper"
-                               , "ObjectImpl"
-                               , "ObjectInput"
-                               , "ObjectInputStream"
-                               , "ObjectInputValidation"
-                               , "ObjectNotActive"
-                               , "ObjectNotActiveHelper"
-                               , "ObjectOutput"
-                               , "ObjectOutputStream"
-                               , "ObjectStreamClass"
-                               , "ObjectStreamConstants"
-                               , "ObjectStreamException"
-                               , "ObjectStreamField"
-                               , "ObjectView"
-                               , "Observable"
-                               , "Observer"
-                               , "OctetSeqHelper"
-                               , "OctetSeqHolder"
-                               , "Oid"
-                               , "OpenType"
-                               , "Operation"
-                               , "OperationNotSupportedException"
-                               , "Option"
-                               , "OptionDialogBorder"
-                               , "OptionPaneUI"
-                               , "OptionalDataException"
-                               , "OrientationRequested"
-                               , "OrientationRequestedType"
-                               , "OriginType"
-                               , "Other"
-                               , "OutOfMemoryError"
-                               , "OutputDeviceAssigned"
-                               , "OutputKeys"
-                               , "OutputStream"
-                               , "OutputStreamWriter"
-                               , "OverlappingFileLockException"
-                               , "OverlayLayout"
-                               , "Owner"
-                               , "PBEKey"
-                               , "PBEKeySpec"
-                               , "PBEParameterSpec"
-                               , "PDLOverrideSupported"
-                               , "PERSIST_STORE"
-                               , "PKCS8EncodedKeySpec"
-                               , "PKIXBuilderParameters"
-                               , "PKIXCertPathBuilderResult"
-                               , "PKIXCertPathChecker"
-                               , "PKIXCertPathValidatorResult"
-                               , "PKIXParameters"
-                               , "POA"
-                               , "POAHelper"
-                               , "POAManager"
-                               , "POAManagerOperations"
-                               , "POAOperations"
-                               , "PRIVATE_MEMBER"
-                               , "PSSParameterSpec"
-                               , "PUBLIC_MEMBER"
-                               , "Package"
-                               , "PackedColorModel"
-                               , "PageAttributes"
-                               , "PageFormat"
-                               , "PageRanges"
-                               , "Pageable"
-                               , "PagesPerMinute"
-                               , "PagesPerMinuteColor"
-                               , "Paint"
-                               , "PaintContext"
-                               , "PaintEvent"
-                               , "PaletteBorder"
-                               , "PaletteCloseIcon"
-                               , "Panel"
-                               , "PanelUI"
-                               , "Paper"
-                               , "ParagraphAttribute"
-                               , "ParagraphConstants"
-                               , "ParagraphView"
-                               , "Parameter"
-                               , "ParameterBlock"
-                               , "ParameterDescriptor"
-                               , "ParameterMetaData"
-                               , "ParameterMode"
-                               , "ParameterModeHelper"
-                               , "ParameterModeHolder"
-                               , "ParseException"
-                               , "ParsePosition"
-                               , "Parser"
-                               , "ParserAdapter"
-                               , "ParserCallback"
-                               , "ParserConfigurationException"
-                               , "ParserDelegator"
-                               , "ParserFactory"
-                               , "PartialResultException"
-                               , "PasswordAuthentication"
-                               , "PasswordCallback"
-                               , "PasswordView"
-                               , "PasteAction"
-                               , "Patch"
-                               , "PathIterator"
-                               , "Pattern"
-                               , "PatternSyntaxException"
-                               , "Permission"
-                               , "PermissionCollection"
-                               , "Permissions"
-                               , "PersistenceDelegate"
-                               , "PhantomReference"
-                               , "Pipe"
-                               , "PipedInputStream"
-                               , "PipedOutputStream"
-                               , "PipedReader"
-                               , "PipedWriter"
-                               , "PixelGrabber"
-                               , "PixelInterleavedSampleModel"
-                               , "PlainDocument"
-                               , "PlainView"
-                               , "Point"
-                               , "Point2D"
-                               , "Policy"
-                               , "PolicyError"
-                               , "PolicyErrorCodeHelper"
-                               , "PolicyErrorHelper"
-                               , "PolicyErrorHolder"
-                               , "PolicyFactory"
-                               , "PolicyFactoryOperations"
-                               , "PolicyHelper"
-                               , "PolicyHolder"
-                               , "PolicyListHelper"
-                               , "PolicyListHolder"
-                               , "PolicyNode"
-                               , "PolicyOperations"
-                               , "PolicyQualifierInfo"
-                               , "PolicyTypeHelper"
-                               , "Polygon"
-                               , "PooledConnection"
-                               , "Popup"
-                               , "PopupFactory"
-                               , "PopupMenu"
-                               , "PopupMenuBorder"
-                               , "PopupMenuEvent"
-                               , "PopupMenuListener"
-                               , "PopupMenuUI"
-                               , "Port"
-                               , "PortUnreachableException"
-                               , "PortableRemoteObject"
-                               , "PortableRemoteObjectDelegate"
-                               , "Position"
-                               , "PreferenceChangeEvent"
-                               , "PreferenceChangeListener"
-                               , "Preferences"
-                               , "PreferencesFactory"
-                               , "PreparedStatement"
-                               , "PresentationDirection"
-                               , "Principal"
-                               , "PrincipalHolder"
-                               , "PrintEvent"
-                               , "PrintException"
-                               , "PrintGraphics"
-                               , "PrintJob"
-                               , "PrintJobAdapter"
-                               , "PrintJobAttribute"
-                               , "PrintJobAttributeEvent"
-                               , "PrintJobAttributeListener"
-                               , "PrintJobAttributeSet"
-                               , "PrintJobEvent"
-                               , "PrintJobListener"
-                               , "PrintQuality"
-                               , "PrintQualityType"
-                               , "PrintRequestAttribute"
-                               , "PrintRequestAttributeSet"
-                               , "PrintService"
-                               , "PrintServiceAttribute"
-                               , "PrintServiceAttributeEvent"
-                               , "PrintServiceAttributeListener"
-                               , "PrintServiceAttributeSet"
-                               , "PrintServiceLookup"
-                               , "PrintStream"
-                               , "PrintWriter"
-                               , "Printable"
-                               , "PrinterAbortException"
-                               , "PrinterException"
-                               , "PrinterGraphics"
-                               , "PrinterIOException"
-                               , "PrinterInfo"
-                               , "PrinterIsAcceptingJobs"
-                               , "PrinterJob"
-                               , "PrinterLocation"
-                               , "PrinterMakeAndModel"
-                               , "PrinterMessageFromOperator"
-                               , "PrinterMoreInfo"
-                               , "PrinterMoreInfoManufacturer"
-                               , "PrinterName"
-                               , "PrinterResolution"
-                               , "PrinterState"
-                               , "PrinterStateReason"
-                               , "PrinterStateReasons"
-                               , "PrinterURI"
-                               , "PrivateCredentialPermission"
-                               , "PrivateKey"
-                               , "PrivilegedAction"
-                               , "PrivilegedActionException"
-                               , "PrivilegedExceptionAction"
-                               , "Process"
-                               , "ProcessingInstruction"
-                               , "ProfileDataException"
-                               , "ProfileIdHelper"
-                               , "ProgressBarUI"
-                               , "ProgressMonitor"
-                               , "ProgressMonitorInputStream"
-                               , "Properties"
-                               , "PropertyChangeEvent"
-                               , "PropertyChangeListener"
-                               , "PropertyChangeListenerProxy"
-                               , "PropertyChangeSupport"
-                               , "PropertyDescriptor"
-                               , "PropertyEditor"
-                               , "PropertyEditorManager"
-                               , "PropertyEditorSupport"
-                               , "PropertyPermission"
-                               , "PropertyResourceBundle"
-                               , "PropertyVetoException"
-                               , "ProtectionDomain"
-                               , "ProtocolException"
-                               , "Provider"
-                               , "ProviderException"
-                               , "Proxy"
-                               , "ProxyLazyValue"
-                               , "PublicKey"
-                               , "PushbackInputStream"
-                               , "PushbackReader"
-                               , "PutField"
-                               , "QuadCurve2D"
-                               , "QueuedJobCount"
-                               , "RC2ParameterSpec"
-                               , "RC5ParameterSpec"
-                               , "READER"
-                               , "REQUEST_PROCESSING_POLICY_ID"
-                               , "RGBImageFilter"
-                               , "RMIClassLoader"
-                               , "RMIClassLoaderSpi"
-                               , "RMIClientSocketFactory"
-                               , "RMIFailureHandler"
-                               , "RMISecurityException"
-                               , "RMISecurityManager"
-                               , "RMIServerSocketFactory"
-                               , "RMISocketFactory"
-                               , "RSAKey"
-                               , "RSAKeyGenParameterSpec"
-                               , "RSAMultiPrimePrivateCrtKey"
-                               , "RSAMultiPrimePrivateCrtKeySpec"
-                               , "RSAOtherPrimeInfo"
-                               , "RSAPrivateCrtKey"
-                               , "RSAPrivateCrtKeySpec"
-                               , "RSAPrivateKey"
-                               , "RSAPrivateKeySpec"
-                               , "RSAPublicKey"
-                               , "RSAPublicKeySpec"
-                               , "RTFEditorKit"
-                               , "RadioButtonBorder"
-                               , "Random"
-                               , "RandomAccess"
-                               , "RandomAccessFile"
-                               , "Raster"
-                               , "RasterFormatException"
-                               , "RasterOp"
-                               , "ReadOnlyBufferException"
-                               , "ReadableByteChannel"
-                               , "Reader"
-                               , "Receiver"
-                               , "Rectangle"
-                               , "Rectangle2D"
-                               , "RectangularShape"
-                               , "Ref"
-                               , "RefAddr"
-                               , "Reference"
-                               , "ReferenceQueue"
-                               , "ReferenceUriSchemesSupported"
-                               , "Referenceable"
-                               , "ReferralException"
-                               , "ReflectPermission"
-                               , "RefreshFailedException"
-                               , "Refreshable"
-                               , "RegisterableService"
-                               , "Registry"
-                               , "RegistryHandler"
-                               , "RemarshalException"
-                               , "Remote"
-                               , "RemoteCall"
-                               , "RemoteException"
-                               , "RemoteObject"
-                               , "RemoteRef"
-                               , "RemoteServer"
-                               , "RemoteStub"
-                               , "RenderContext"
-                               , "RenderableImage"
-                               , "RenderableImageOp"
-                               , "RenderableImageProducer"
-                               , "RenderedImage"
-                               , "RenderedImageFactory"
-                               , "Renderer"
-                               , "RenderingHints"
-                               , "RepaintManager"
-                               , "ReplicateScaleFilter"
-                               , "RepositoryIdHelper"
-                               , "Request"
-                               , "RequestInfo"
-                               , "RequestInfoOperations"
-                               , "RequestProcessingPolicy"
-                               , "RequestProcessingPolicyOperations"
-                               , "RequestProcessingPolicyValue"
-                               , "RequestingUserName"
-                               , "RescaleOp"
-                               , "ResolutionSyntax"
-                               , "ResolveResult"
-                               , "Resolver"
-                               , "ResourceBundle"
-                               , "ResponseHandler"
-                               , "Result"
-                               , "ResultSet"
-                               , "ResultSetMetaData"
-                               , "ReverbType"
-                               , "Robot"
-                               , "RolloverButtonBorder"
-                               , "RootPaneContainer"
-                               , "RootPaneUI"
-                               , "RoundRectangle2D"
-                               , "RowMapper"
-                               , "RowSet"
-                               , "RowSetEvent"
-                               , "RowSetInternal"
-                               , "RowSetListener"
-                               , "RowSetMetaData"
-                               , "RowSetReader"
-                               , "RowSetWriter"
-                               , "RuleBasedCollator"
-                               , "RunTime"
-                               , "RunTimeOperations"
-                               , "Runnable"
-                               , "Runtime"
-                               , "RuntimeException"
-                               , "RuntimePermission"
-                               , "SAXException"
-                               , "SAXNotRecognizedException"
-                               , "SAXNotSupportedException"
-                               , "SAXParseException"
-                               , "SAXParser"
-                               , "SAXParserFactory"
-                               , "SAXResult"
-                               , "SAXSource"
-                               , "SAXTransformerFactory"
-                               , "SERVANT_RETENTION_POLICY_ID"
-                               , "SERVICE_FORMATTED"
-                               , "SQLData"
-                               , "SQLException"
-                               , "SQLInput"
-                               , "SQLOutput"
-                               , "SQLPermission"
-                               , "SQLWarning"
-                               , "SSLContext"
-                               , "SSLContextSpi"
-                               , "SSLException"
-                               , "SSLHandshakeException"
-                               , "SSLKeyException"
-                               , "SSLPeerUnverifiedException"
-                               , "SSLPermission"
-                               , "SSLProtocolException"
-                               , "SSLServerSocket"
-                               , "SSLServerSocketFactory"
-                               , "SSLSession"
-                               , "SSLSessionBindingEvent"
-                               , "SSLSessionBindingListener"
-                               , "SSLSessionContext"
-                               , "SSLSocket"
-                               , "SSLSocketFactory"
-                               , "STRING"
-                               , "SUCCESSFUL"
-                               , "SYNC_WITH_TRANSPORT"
-                               , "SYSTEM_EXCEPTION"
-                               , "SampleModel"
-                               , "Savepoint"
-                               , "ScatteringByteChannel"
-                               , "SchemaViolationException"
-                               , "ScrollBarUI"
-                               , "ScrollPane"
-                               , "ScrollPaneAdjustable"
-                               , "ScrollPaneBorder"
-                               , "ScrollPaneConstants"
-                               , "ScrollPaneLayout"
-                               , "ScrollPaneUI"
-                               , "Scrollable"
-                               , "Scrollbar"
-                               , "SealedObject"
-                               , "SearchControls"
-                               , "SearchResult"
-                               , "SecretKey"
-                               , "SecretKeyFactory"
-                               , "SecretKeyFactorySpi"
-                               , "SecretKeySpec"
-                               , "SecureClassLoader"
-                               , "SecureRandom"
-                               , "SecureRandomSpi"
-                               , "Security"
-                               , "SecurityException"
-                               , "SecurityManager"
-                               , "SecurityPermission"
-                               , "Segment"
-                               , "SelectableChannel"
-                               , "SelectionKey"
-                               , "Selector"
-                               , "SelectorProvider"
-                               , "Separator"
-                               , "SeparatorUI"
-                               , "Sequence"
-                               , "SequenceInputStream"
-                               , "Sequencer"
-                               , "Serializable"
-                               , "SerializablePermission"
-                               , "Servant"
-                               , "ServantActivator"
-                               , "ServantActivatorHelper"
-                               , "ServantActivatorOperations"
-                               , "ServantActivatorPOA"
-                               , "ServantAlreadyActive"
-                               , "ServantAlreadyActiveHelper"
-                               , "ServantLocator"
-                               , "ServantLocatorHelper"
-                               , "ServantLocatorOperations"
-                               , "ServantLocatorPOA"
-                               , "ServantManager"
-                               , "ServantManagerOperations"
-                               , "ServantNotActive"
-                               , "ServantNotActiveHelper"
-                               , "ServantObject"
-                               , "ServantRetentionPolicy"
-                               , "ServantRetentionPolicyOperations"
-                               , "ServantRetentionPolicyValue"
-                               , "ServerCloneException"
-                               , "ServerError"
-                               , "ServerException"
-                               , "ServerNotActiveException"
-                               , "ServerRef"
-                               , "ServerRequest"
-                               , "ServerRequestInfo"
-                               , "ServerRequestInfoOperations"
-                               , "ServerRequestInterceptor"
-                               , "ServerRequestInterceptorOperations"
-                               , "ServerRuntimeException"
-                               , "ServerSocket"
-                               , "ServerSocketChannel"
-                               , "ServerSocketFactory"
-                               , "ServiceContext"
-                               , "ServiceContextHelper"
-                               , "ServiceContextHolder"
-                               , "ServiceContextListHelper"
-                               , "ServiceContextListHolder"
-                               , "ServiceDetail"
-                               , "ServiceDetailHelper"
-                               , "ServiceIdHelper"
-                               , "ServiceInformation"
-                               , "ServiceInformationHelper"
-                               , "ServiceInformationHolder"
-                               , "ServicePermission"
-                               , "ServiceRegistry"
-                               , "ServiceUI"
-                               , "ServiceUIFactory"
-                               , "ServiceUnavailableException"
-                               , "Set"
-                               , "SetOfIntegerSyntax"
-                               , "SetOverrideType"
-                               , "SetOverrideTypeHelper"
-                               , "Severity"
-                               , "Shape"
-                               , "ShapeGraphicAttribute"
-                               , "SheetCollate"
-                               , "Short"
-                               , "ShortBuffer"
-                               , "ShortBufferException"
-                               , "ShortHolder"
-                               , "ShortLookupTable"
-                               , "ShortMessage"
-                               , "ShortSeqHelper"
-                               , "ShortSeqHolder"
-                               , "Sides"
-                               , "SidesType"
-                               , "Signature"
-                               , "SignatureException"
-                               , "SignatureSpi"
-                               , "SignedObject"
-                               , "Signer"
-                               , "SimpleAttributeSet"
-                               , "SimpleBeanInfo"
-                               , "SimpleDateFormat"
-                               , "SimpleDoc"
-                               , "SimpleFormatter"
-                               , "SimpleTimeZone"
-                               , "SinglePixelPackedSampleModel"
-                               , "SingleSelectionModel"
-                               , "SinkChannel"
-                               , "Size2DSyntax"
-                               , "SizeLimitExceededException"
-                               , "SizeRequirements"
-                               , "SizeSequence"
-                               , "Skeleton"
-                               , "SkeletonMismatchException"
-                               , "SkeletonNotFoundException"
-                               , "SliderUI"
-                               , "Socket"
-                               , "SocketAddress"
-                               , "SocketChannel"
-                               , "SocketException"
-                               , "SocketFactory"
-                               , "SocketHandler"
-                               , "SocketImpl"
-                               , "SocketImplFactory"
-                               , "SocketOptions"
-                               , "SocketPermission"
-                               , "SocketSecurityException"
-                               , "SocketTimeoutException"
-                               , "SoftBevelBorder"
-                               , "SoftReference"
-                               , "SortedMap"
-                               , "SortedSet"
-                               , "SortingFocusTraversalPolicy"
-                               , "Soundbank"
-                               , "SoundbankReader"
-                               , "SoundbankResource"
-                               , "Source"
-                               , "SourceChannel"
-                               , "SourceDataLine"
-                               , "SourceLocator"
-                               , "SpinnerDateModel"
-                               , "SpinnerListModel"
-                               , "SpinnerModel"
-                               , "SpinnerNumberModel"
-                               , "SpinnerUI"
-                               , "SplitPaneBorder"
-                               , "SplitPaneUI"
-                               , "Spring"
-                               , "SpringLayout"
-                               , "Stack"
-                               , "StackOverflowError"
-                               , "StackTraceElement"
-                               , "StartTlsRequest"
-                               , "StartTlsResponse"
-                               , "State"
-                               , "StateEdit"
-                               , "StateEditable"
-                               , "StateFactory"
-                               , "Statement"
-                               , "StreamCorruptedException"
-                               , "StreamHandler"
-                               , "StreamPrintService"
-                               , "StreamPrintServiceFactory"
-                               , "StreamResult"
-                               , "StreamSource"
-                               , "StreamTokenizer"
-                               , "Streamable"
-                               , "StreamableValue"
-                               , "StrictMath"
-                               , "String"
-                               , "StringBuffer"
-                               , "StringBufferInputStream"
-                               , "StringCharacterIterator"
-                               , "StringContent"
-                               , "StringHolder"
-                               , "StringIndexOutOfBoundsException"
-                               , "StringNameHelper"
-                               , "StringReader"
-                               , "StringRefAddr"
-                               , "StringSelection"
-                               , "StringSeqHelper"
-                               , "StringSeqHolder"
-                               , "StringTokenizer"
-                               , "StringValueHelper"
-                               , "StringWriter"
-                               , "Stroke"
-                               , "Struct"
-                               , "StructMember"
-                               , "StructMemberHelper"
-                               , "Stub"
-                               , "StubDelegate"
-                               , "StubNotFoundException"
-                               , "Style"
-                               , "StyleConstants"
-                               , "StyleContext"
-                               , "StyleSheet"
-                               , "StyledDocument"
-                               , "StyledEditorKit"
-                               , "StyledTextAction"
-                               , "Subject"
-                               , "SubjectDomainCombiner"
-                               , "Subset"
-                               , "SupportedValuesAttribute"
-                               , "SwingConstants"
-                               , "SwingPropertyChangeSupport"
-                               , "SwingUtilities"
-                               , "SyncFailedException"
-                               , "SyncMode"
-                               , "SyncScopeHelper"
-                               , "Synthesizer"
-                               , "SysexMessage"
-                               , "System"
-                               , "SystemColor"
-                               , "SystemException"
-                               , "SystemFlavorMap"
-                               , "TAG_ALTERNATE_IIOP_ADDRESS"
-                               , "TAG_CODE_SETS"
-                               , "TAG_INTERNET_IOP"
-                               , "TAG_JAVA_CODEBASE"
-                               , "TAG_MULTIPLE_COMPONENTS"
-                               , "TAG_ORB_TYPE"
-                               , "TAG_POLICIES"
-                               , "TCKind"
-                               , "THREAD_POLICY_ID"
-                               , "TRANSACTION_REQUIRED"
-                               , "TRANSACTION_ROLLEDBACK"
-                               , "TRANSIENT"
-                               , "TRANSPORT_RETRY"
-                               , "TabExpander"
-                               , "TabSet"
-                               , "TabStop"
-                               , "TabableView"
-                               , "TabbedPaneUI"
-                               , "TableCellEditor"
-                               , "TableCellRenderer"
-                               , "TableColumn"
-                               , "TableColumnModel"
-                               , "TableColumnModelEvent"
-                               , "TableColumnModelListener"
-                               , "TableHeaderBorder"
-                               , "TableHeaderUI"
-                               , "TableModel"
-                               , "TableModelEvent"
-                               , "TableModelListener"
-                               , "TableUI"
-                               , "TableView"
-                               , "Tag"
-                               , "TagElement"
-                               , "TaggedComponent"
-                               , "TaggedComponentHelper"
-                               , "TaggedComponentHolder"
-                               , "TaggedProfile"
-                               , "TaggedProfileHelper"
-                               , "TaggedProfileHolder"
-                               , "TargetDataLine"
-                               , "Templates"
-                               , "TemplatesHandler"
-                               , "Text"
-                               , "TextAction"
-                               , "TextArea"
-                               , "TextAttribute"
-                               , "TextComponent"
-                               , "TextEvent"
-                               , "TextField"
-                               , "TextFieldBorder"
-                               , "TextHitInfo"
-                               , "TextInputCallback"
-                               , "TextLayout"
-                               , "TextListener"
-                               , "TextMeasurer"
-                               , "TextOutputCallback"
-                               , "TextSyntax"
-                               , "TextUI"
-                               , "TexturePaint"
-                               , "Thread"
-                               , "ThreadDeath"
-                               , "ThreadGroup"
-                               , "ThreadLocal"
-                               , "ThreadPolicy"
-                               , "ThreadPolicyOperations"
-                               , "ThreadPolicyValue"
-                               , "Throwable"
-                               , "Tie"
-                               , "TileObserver"
-                               , "Time"
-                               , "TimeLimitExceededException"
-                               , "TimeZone"
-                               , "Timer"
-                               , "TimerTask"
-                               , "Timestamp"
-                               , "TitledBorder"
-                               , "TitledBorderUIResource"
-                               , "ToggleButtonBorder"
-                               , "ToggleButtonModel"
-                               , "TooManyListenersException"
-                               , "ToolBarBorder"
-                               , "ToolBarUI"
-                               , "ToolTipManager"
-                               , "ToolTipUI"
-                               , "Toolkit"
-                               , "Track"
-                               , "TransactionRequiredException"
-                               , "TransactionRolledbackException"
-                               , "TransactionService"
-                               , "TransferHandler"
-                               , "Transferable"
-                               , "TransformAttribute"
-                               , "Transformer"
-                               , "TransformerConfigurationException"
-                               , "TransformerException"
-                               , "TransformerFactory"
-                               , "TransformerFactoryConfigurationError"
-                               , "TransformerHandler"
-                               , "Transmitter"
-                               , "Transparency"
-                               , "TreeCellEditor"
-                               , "TreeCellRenderer"
-                               , "TreeControlIcon"
-                               , "TreeExpansionEvent"
-                               , "TreeExpansionListener"
-                               , "TreeFolderIcon"
-                               , "TreeLeafIcon"
-                               , "TreeMap"
-                               , "TreeModel"
-                               , "TreeModelEvent"
-                               , "TreeModelListener"
-                               , "TreeNode"
-                               , "TreePath"
-                               , "TreeSelectionEvent"
-                               , "TreeSelectionListener"
-                               , "TreeSelectionModel"
-                               , "TreeSet"
-                               , "TreeUI"
-                               , "TreeWillExpandListener"
-                               , "TrustAnchor"
-                               , "TrustManager"
-                               , "TrustManagerFactory"
-                               , "TrustManagerFactorySpi"
-                               , "Type"
-                               , "TypeCode"
-                               , "TypeCodeHolder"
-                               , "TypeMismatch"
-                               , "TypeMismatchHelper"
-                               , "Types"
-                               , "UID"
-                               , "UIDefaults"
-                               , "UIManager"
-                               , "UIResource"
-                               , "ULongLongSeqHelper"
-                               , "ULongLongSeqHolder"
-                               , "ULongSeqHelper"
-                               , "ULongSeqHolder"
-                               , "UNKNOWN"
-                               , "UNSUPPORTED_POLICY"
-                               , "UNSUPPORTED_POLICY_VALUE"
-                               , "URI"
-                               , "URIException"
-                               , "URIResolver"
-                               , "URISyntax"
-                               , "URISyntaxException"
-                               , "URL"
-                               , "URLClassLoader"
-                               , "URLConnection"
-                               , "URLDecoder"
-                               , "URLEncoder"
-                               , "URLStreamHandler"
-                               , "URLStreamHandlerFactory"
-                               , "URLStringHelper"
-                               , "USER_EXCEPTION"
-                               , "UShortSeqHelper"
-                               , "UShortSeqHolder"
-                               , "UTFDataFormatException"
-                               , "UndeclaredThrowableException"
-                               , "UnderlineAction"
-                               , "UndoManager"
-                               , "UndoableEdit"
-                               , "UndoableEditEvent"
-                               , "UndoableEditListener"
-                               , "UndoableEditSupport"
-                               , "UnexpectedException"
-                               , "UnicastRemoteObject"
-                               , "UnicodeBlock"
-                               , "UnionMember"
-                               , "UnionMemberHelper"
-                               , "UnknownEncoding"
-                               , "UnknownEncodingHelper"
-                               , "UnknownError"
-                               , "UnknownException"
-                               , "UnknownGroupException"
-                               , "UnknownHostException"
-                               , "UnknownObjectException"
-                               , "UnknownServiceException"
-                               , "UnknownTag"
-                               , "UnknownUserException"
-                               , "UnknownUserExceptionHelper"
-                               , "UnknownUserExceptionHolder"
-                               , "UnmappableCharacterException"
-                               , "UnmarshalException"
-                               , "UnmodifiableSetException"
-                               , "UnrecoverableKeyException"
-                               , "Unreferenced"
-                               , "UnresolvedAddressException"
-                               , "UnresolvedPermission"
-                               , "UnsatisfiedLinkError"
-                               , "UnsolicitedNotification"
-                               , "UnsolicitedNotificationEvent"
-                               , "UnsolicitedNotificationListener"
-                               , "UnsupportedAddressTypeException"
-                               , "UnsupportedAudioFileException"
-                               , "UnsupportedCallbackException"
-                               , "UnsupportedCharsetException"
-                               , "UnsupportedClassVersionError"
-                               , "UnsupportedEncodingException"
-                               , "UnsupportedFlavorException"
-                               , "UnsupportedLookAndFeelException"
-                               , "UnsupportedOperationException"
-                               , "UserException"
-                               , "Util"
-                               , "UtilDelegate"
-                               , "Utilities"
-                               , "VMID"
-                               , "VM_ABSTRACT"
-                               , "VM_CUSTOM"
-                               , "VM_NONE"
-                               , "VM_TRUNCATABLE"
-                               , "ValueBase"
-                               , "ValueBaseHelper"
-                               , "ValueBaseHolder"
-                               , "ValueFactory"
-                               , "ValueHandler"
-                               , "ValueMember"
-                               , "ValueMemberHelper"
-                               , "VariableHeightLayoutCache"
-                               , "Vector"
-                               , "VerifyError"
-                               , "VersionSpecHelper"
-                               , "VetoableChangeListener"
-                               , "VetoableChangeListenerProxy"
-                               , "VetoableChangeSupport"
-                               , "View"
-                               , "ViewFactory"
-                               , "ViewportLayout"
-                               , "ViewportUI"
-                               , "VirtualMachineError"
-                               , "Visibility"
-                               , "VisibilityHelper"
-                               , "VoiceStatus"
-                               , "Void"
-                               , "VolatileImage"
-                               , "WCharSeqHelper"
-                               , "WCharSeqHolder"
-                               , "WStringSeqHelper"
-                               , "WStringSeqHolder"
-                               , "WStringValueHelper"
-                               , "WeakHashMap"
-                               , "WeakReference"
-                               , "Window"
-                               , "WindowAdapter"
-                               , "WindowConstants"
-                               , "WindowEvent"
-                               , "WindowFocusListener"
-                               , "WindowListener"
-                               , "WindowStateListener"
-                               , "WrappedPlainView"
-                               , "WritableByteChannel"
-                               , "WritableRaster"
-                               , "WritableRenderedImage"
-                               , "WriteAbortedException"
-                               , "Writer"
-                               , "WrongAdapter"
-                               , "WrongAdapterHelper"
-                               , "WrongPolicy"
-                               , "WrongPolicyHelper"
-                               , "WrongTransaction"
-                               , "WrongTransactionHelper"
-                               , "WrongTransactionHolder"
-                               , "X500Principal"
-                               , "X500PrivateCredential"
-                               , "X509CRL"
-                               , "X509CRLEntry"
-                               , "X509CRLSelector"
-                               , "X509CertSelector"
-                               , "X509Certificate"
-                               , "X509EncodedKeySpec"
-                               , "X509Extension"
-                               , "X509KeyManager"
-                               , "X509TrustManager"
-                               , "XAConnection"
-                               , "XADataSource"
-                               , "XAException"
-                               , "XAResource"
-                               , "XMLDecoder"
-                               , "XMLEncoder"
-                               , "XMLFilter"
-                               , "XMLFilterImpl"
-                               , "XMLFormatter"
-                               , "XMLReader"
-                               , "XMLReaderAdapter"
-                               , "XMLReaderFactory"
-                               , "Xid"
-                               , "ZipEntry"
-                               , "ZipException"
-                               , "ZipFile"
-                               , "ZipInputStream"
-                               , "ZipOutputStream"
-                               , "ZoneView"
-                               , "_BindingIteratorImplBase"
-                               , "_BindingIteratorStub"
-                               , "_DynAnyFactoryStub"
-                               , "_DynAnyStub"
-                               , "_DynArrayStub"
-                               , "_DynEnumStub"
-                               , "_DynFixedStub"
-                               , "_DynSequenceStub"
-                               , "_DynStructStub"
-                               , "_DynUnionStub"
-                               , "_DynValueStub"
-                               , "_IDLTypeStub"
-                               , "_NamingContextExtStub"
-                               , "_NamingContextImplBase"
-                               , "_NamingContextStub"
-                               , "_PolicyStub"
-                               , "_Remote_Stub"
-                               , "_ServantActivatorStub"
-                               , "_ServantLocatorStub"
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = AnyChar "fF"
-                              , rAttribute = FloatTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = StringDetect "ULL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LUL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LLU"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "UL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LU"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "U"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "L"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Java String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "!%&()+,-<=>?[]^{|}~"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Jsp Scriptlet"
-          , Context
-              { cName = "Jsp Scriptlet"
-              , cSyntax = "JSP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '%' '>'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\s*jsp:(declaration|expression|scriptlet)\\s*>"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False "<\\s*jsp:(declaration|expression|scriptlet)\\s*>")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Scriptlet" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "abstract"
-                               , "assert"
-                               , "break"
-                               , "case"
-                               , "catch"
-                               , "class"
-                               , "continue"
-                               , "default"
-                               , "do"
-                               , "else"
-                               , "extends"
-                               , "false"
-                               , "finally"
-                               , "for"
-                               , "goto"
-                               , "if"
-                               , "implements"
-                               , "import"
-                               , "instanceof"
-                               , "interface"
-                               , "native"
-                               , "new"
-                               , "null"
-                               , "package"
-                               , "private"
-                               , "protected"
-                               , "public"
-                               , "return"
-                               , "strictfp"
-                               , "super"
-                               , "switch"
-                               , "synchronized"
-                               , "this"
-                               , "throw"
-                               , "throws"
-                               , "transient"
-                               , "true"
-                               , "try"
-                               , "volatile"
-                               , "while"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "and"
-                               , "div"
-                               , "empty"
-                               , "eq"
-                               , "false"
-                               , "ge"
-                               , "gt"
-                               , "instanceof"
-                               , "le"
-                               , "lt"
-                               , "mod"
-                               , "ne"
-                               , "not"
-                               , "null"
-                               , "or"
-                               , "true"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "boolean"
-                               , "byte"
-                               , "char"
-                               , "const"
-                               , "double"
-                               , "final"
-                               , "float"
-                               , "int"
-                               , "long"
-                               , "short"
-                               , "static"
-                               , "void"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ARG_IN"
-                               , "ARG_INOUT"
-                               , "ARG_OUT"
-                               , "AWTError"
-                               , "AWTEvent"
-                               , "AWTEventListener"
-                               , "AWTEventListenerProxy"
-                               , "AWTEventMulticaster"
-                               , "AWTException"
-                               , "AWTKeyStroke"
-                               , "AWTPermission"
-                               , "AbstractAction"
-                               , "AbstractBorder"
-                               , "AbstractButton"
-                               , "AbstractCellEditor"
-                               , "AbstractCollection"
-                               , "AbstractColorChooserPanel"
-                               , "AbstractDocument"
-                               , "AbstractFormatter"
-                               , "AbstractFormatterFactory"
-                               , "AbstractInterruptibleChannel"
-                               , "AbstractLayoutCache"
-                               , "AbstractList"
-                               , "AbstractListModel"
-                               , "AbstractMap"
-                               , "AbstractMethodError"
-                               , "AbstractPreferences"
-                               , "AbstractSelectableChannel"
-                               , "AbstractSelectionKey"
-                               , "AbstractSelector"
-                               , "AbstractSequentialList"
-                               , "AbstractSet"
-                               , "AbstractSpinnerModel"
-                               , "AbstractTableModel"
-                               , "AbstractUndoableEdit"
-                               , "AbstractWriter"
-                               , "AccessControlContext"
-                               , "AccessControlException"
-                               , "AccessController"
-                               , "AccessException"
-                               , "Accessible"
-                               , "AccessibleAction"
-                               , "AccessibleBundle"
-                               , "AccessibleComponent"
-                               , "AccessibleContext"
-                               , "AccessibleEditableText"
-                               , "AccessibleExtendedComponent"
-                               , "AccessibleExtendedTable"
-                               , "AccessibleHyperlink"
-                               , "AccessibleHypertext"
-                               , "AccessibleIcon"
-                               , "AccessibleKeyBinding"
-                               , "AccessibleObject"
-                               , "AccessibleRelation"
-                               , "AccessibleRelationSet"
-                               , "AccessibleResourceBundle"
-                               , "AccessibleRole"
-                               , "AccessibleSelection"
-                               , "AccessibleState"
-                               , "AccessibleStateSet"
-                               , "AccessibleTable"
-                               , "AccessibleTableModelChange"
-                               , "AccessibleText"
-                               , "AccessibleValue"
-                               , "AccountExpiredException"
-                               , "Acl"
-                               , "AclEntry"
-                               , "AclNotFoundException"
-                               , "Action"
-                               , "ActionEvent"
-                               , "ActionListener"
-                               , "ActionMap"
-                               , "ActionMapUIResource"
-                               , "Activatable"
-                               , "ActivateFailedException"
-                               , "ActivationDesc"
-                               , "ActivationException"
-                               , "ActivationGroup"
-                               , "ActivationGroupDesc"
-                               , "ActivationGroupID"
-                               , "ActivationGroup_Stub"
-                               , "ActivationID"
-                               , "ActivationInstantiator"
-                               , "ActivationMonitor"
-                               , "ActivationSystem"
-                               , "Activator"
-                               , "ActiveEvent"
-                               , "ActiveValue"
-                               , "AdapterActivator"
-                               , "AdapterActivatorOperations"
-                               , "AdapterAlreadyExists"
-                               , "AdapterAlreadyExistsHelper"
-                               , "AdapterInactive"
-                               , "AdapterInactiveHelper"
-                               , "AdapterNonExistent"
-                               , "AdapterNonExistentHelper"
-                               , "AddressHelper"
-                               , "Adjustable"
-                               , "AdjustmentEvent"
-                               , "AdjustmentListener"
-                               , "Adler32"
-                               , "AffineTransform"
-                               , "AffineTransformOp"
-                               , "AlgorithmParameterGenerator"
-                               , "AlgorithmParameterGeneratorSpi"
-                               , "AlgorithmParameterSpec"
-                               , "AlgorithmParameters"
-                               , "AlgorithmParametersSpi"
-                               , "AlignmentAction"
-                               , "AllPermission"
-                               , "AlphaComposite"
-                               , "AlreadyBound"
-                               , "AlreadyBoundException"
-                               , "AlreadyBoundHelper"
-                               , "AlreadyBoundHolder"
-                               , "AlreadyConnectedException"
-                               , "AncestorEvent"
-                               , "AncestorListener"
-                               , "Annotation"
-                               , "Any"
-                               , "AnyHolder"
-                               , "AnySeqHelper"
-                               , "AnySeqHolder"
-                               , "AppConfigurationEntry"
-                               , "Applet"
-                               , "AppletContext"
-                               , "AppletInitializer"
-                               , "AppletStub"
-                               , "ApplicationException"
-                               , "Arc2D"
-                               , "Area"
-                               , "AreaAveragingScaleFilter"
-                               , "ArithmeticException"
-                               , "Array"
-                               , "ArrayIndexOutOfBoundsException"
-                               , "ArrayList"
-                               , "ArrayStoreException"
-                               , "Arrays"
-                               , "AssertionError"
-                               , "AsyncBoxView"
-                               , "AsynchronousCloseException"
-                               , "Attr"
-                               , "Attribute"
-                               , "AttributeContext"
-                               , "AttributeException"
-                               , "AttributeInUseException"
-                               , "AttributeList"
-                               , "AttributeListImpl"
-                               , "AttributeModificationException"
-                               , "AttributeSet"
-                               , "AttributeSetUtilities"
-                               , "AttributeUndoableEdit"
-                               , "AttributedCharacterIterator"
-                               , "AttributedString"
-                               , "Attributes"
-                               , "AttributesImpl"
-                               , "AudioClip"
-                               , "AudioFileFormat"
-                               , "AudioFileReader"
-                               , "AudioFileWriter"
-                               , "AudioFormat"
-                               , "AudioInputStream"
-                               , "AudioPermission"
-                               , "AudioSystem"
-                               , "AuthPermission"
-                               , "AuthenticationException"
-                               , "AuthenticationNotSupportedException"
-                               , "Authenticator"
-                               , "Autoscroll"
-                               , "BAD_CONTEXT"
-                               , "BAD_INV_ORDER"
-                               , "BAD_OPERATION"
-                               , "BAD_PARAM"
-                               , "BAD_POLICY"
-                               , "BAD_POLICY_TYPE"
-                               , "BAD_POLICY_VALUE"
-                               , "BAD_TYPECODE"
-                               , "BCSIterator"
-                               , "BCSSServiceProvider"
-                               , "BYTE_ARRAY"
-                               , "BackingStoreException"
-                               , "BadKind"
-                               , "BadLocationException"
-                               , "BadPaddingException"
-                               , "BandCombineOp"
-                               , "BandedSampleModel"
-                               , "BasicArrowButton"
-                               , "BasicAttribute"
-                               , "BasicAttributes"
-                               , "BasicBorders"
-                               , "BasicButtonListener"
-                               , "BasicButtonUI"
-                               , "BasicCaret"
-                               , "BasicCheckBoxMenuItemUI"
-                               , "BasicCheckBoxUI"
-                               , "BasicColorChooserUI"
-                               , "BasicComboBoxEditor"
-                               , "BasicComboBoxRenderer"
-                               , "BasicComboBoxUI"
-                               , "BasicComboPopup"
-                               , "BasicDesktopIconUI"
-                               , "BasicDesktopPaneUI"
-                               , "BasicDirectoryModel"
-                               , "BasicEditorPaneUI"
-                               , "BasicFileChooserUI"
-                               , "BasicFormattedTextFieldUI"
-                               , "BasicGraphicsUtils"
-                               , "BasicHTML"
-                               , "BasicHighlighter"
-                               , "BasicIconFactory"
-                               , "BasicInternalFrameTitlePane"
-                               , "BasicInternalFrameUI"
-                               , "BasicLabelUI"
-                               , "BasicListUI"
-                               , "BasicLookAndFeel"
-                               , "BasicMenuBarUI"
-                               , "BasicMenuItemUI"
-                               , "BasicMenuUI"
-                               , "BasicOptionPaneUI"
-                               , "BasicPanelUI"
-                               , "BasicPasswordFieldUI"
-                               , "BasicPermission"
-                               , "BasicPopupMenuSeparatorUI"
-                               , "BasicPopupMenuUI"
-                               , "BasicProgressBarUI"
-                               , "BasicRadioButtonMenuItemUI"
-                               , "BasicRadioButtonUI"
-                               , "BasicRootPaneUI"
-                               , "BasicScrollBarUI"
-                               , "BasicScrollPaneUI"
-                               , "BasicSeparatorUI"
-                               , "BasicSliderUI"
-                               , "BasicSpinnerUI"
-                               , "BasicSplitPaneDivider"
-                               , "BasicSplitPaneUI"
-                               , "BasicStroke"
-                               , "BasicTabbedPaneUI"
-                               , "BasicTableHeaderUI"
-                               , "BasicTableUI"
-                               , "BasicTextAreaUI"
-                               , "BasicTextFieldUI"
-                               , "BasicTextPaneUI"
-                               , "BasicTextUI"
-                               , "BasicToggleButtonUI"
-                               , "BasicToolBarSeparatorUI"
-                               , "BasicToolBarUI"
-                               , "BasicToolTipUI"
-                               , "BasicTreeUI"
-                               , "BasicViewportUI"
-                               , "BatchUpdateException"
-                               , "BeanContext"
-                               , "BeanContextChild"
-                               , "BeanContextChildComponentProxy"
-                               , "BeanContextChildSupport"
-                               , "BeanContextContainerProxy"
-                               , "BeanContextEvent"
-                               , "BeanContextMembershipEvent"
-                               , "BeanContextMembershipListener"
-                               , "BeanContextProxy"
-                               , "BeanContextServiceAvailableEvent"
-                               , "BeanContextServiceProvider"
-                               , "BeanContextServiceProviderBeanInfo"
-                               , "BeanContextServiceRevokedEvent"
-                               , "BeanContextServiceRevokedListener"
-                               , "BeanContextServices"
-                               , "BeanContextServicesListener"
-                               , "BeanContextServicesSupport"
-                               , "BeanContextSupport"
-                               , "BeanDescriptor"
-                               , "BeanInfo"
-                               , "Beans"
-                               , "BeepAction"
-                               , "BevelBorder"
-                               , "BevelBorderUIResource"
-                               , "Bias"
-                               , "Bidi"
-                               , "BigDecimal"
-                               , "BigInteger"
-                               , "BinaryRefAddr"
-                               , "BindException"
-                               , "Binding"
-                               , "BindingHelper"
-                               , "BindingHolder"
-                               , "BindingIterator"
-                               , "BindingIteratorHelper"
-                               , "BindingIteratorHolder"
-                               , "BindingIteratorOperations"
-                               , "BindingIteratorPOA"
-                               , "BindingListHelper"
-                               , "BindingListHolder"
-                               , "BindingType"
-                               , "BindingTypeHelper"
-                               , "BindingTypeHolder"
-                               , "BitSet"
-                               , "Blob"
-                               , "BlockView"
-                               , "BoldAction"
-                               , "Book"
-                               , "Boolean"
-                               , "BooleanControl"
-                               , "BooleanHolder"
-                               , "BooleanSeqHelper"
-                               , "BooleanSeqHolder"
-                               , "Border"
-                               , "BorderFactory"
-                               , "BorderLayout"
-                               , "BorderUIResource"
-                               , "BoundedRangeModel"
-                               , "Bounds"
-                               , "Box"
-                               , "BoxLayout"
-                               , "BoxPainter"
-                               , "BoxView"
-                               , "BoxedValueHelper"
-                               , "BreakIterator"
-                               , "Buffer"
-                               , "BufferCapabilities"
-                               , "BufferOverflowException"
-                               , "BufferStrategy"
-                               , "BufferUnderflowException"
-                               , "BufferedImage"
-                               , "BufferedImageFilter"
-                               , "BufferedImageOp"
-                               , "BufferedInputStream"
-                               , "BufferedOutputStream"
-                               , "BufferedReader"
-                               , "BufferedWriter"
-                               , "Button"
-                               , "ButtonAreaLayout"
-                               , "ButtonBorder"
-                               , "ButtonGroup"
-                               , "ButtonModel"
-                               , "ButtonUI"
-                               , "Byte"
-                               , "ByteArrayInputStream"
-                               , "ByteArrayOutputStream"
-                               , "ByteBuffer"
-                               , "ByteChannel"
-                               , "ByteHolder"
-                               , "ByteLookupTable"
-                               , "ByteOrder"
-                               , "CDATASection"
-                               , "CHAR_ARRAY"
-                               , "CMMException"
-                               , "COMM_FAILURE"
-                               , "CRC32"
-                               , "CRL"
-                               , "CRLException"
-                               , "CRLSelector"
-                               , "CSS"
-                               , "CTX_RESTRICT_SCOPE"
-                               , "Calendar"
-                               , "CallableStatement"
-                               , "Callback"
-                               , "CallbackHandler"
-                               , "CancelablePrintJob"
-                               , "CancelledKeyException"
-                               , "CannotProceed"
-                               , "CannotProceedException"
-                               , "CannotProceedHelper"
-                               , "CannotProceedHolder"
-                               , "CannotRedoException"
-                               , "CannotUndoException"
-                               , "Canvas"
-                               , "CardLayout"
-                               , "Caret"
-                               , "CaretEvent"
-                               , "CaretListener"
-                               , "CaretPolicy"
-                               , "CellEditor"
-                               , "CellEditorListener"
-                               , "CellRendererPane"
-                               , "CertPath"
-                               , "CertPathBuilder"
-                               , "CertPathBuilderException"
-                               , "CertPathBuilderResult"
-                               , "CertPathBuilderSpi"
-                               , "CertPathParameters"
-                               , "CertPathRep"
-                               , "CertPathValidator"
-                               , "CertPathValidatorException"
-                               , "CertPathValidatorResult"
-                               , "CertPathValidatorSpi"
-                               , "CertSelector"
-                               , "CertStore"
-                               , "CertStoreException"
-                               , "CertStoreParameters"
-                               , "CertStoreSpi"
-                               , "Certificate"
-                               , "CertificateEncodingException"
-                               , "CertificateException"
-                               , "CertificateExpiredException"
-                               , "CertificateFactory"
-                               , "CertificateFactorySpi"
-                               , "CertificateNotYetValidException"
-                               , "CertificateParsingException"
-                               , "CertificateRep"
-                               , "ChangeEvent"
-                               , "ChangeListener"
-                               , "ChangedCharSetException"
-                               , "Channel"
-                               , "ChannelBinding"
-                               , "Channels"
-                               , "CharArrayReader"
-                               , "CharArrayWriter"
-                               , "CharBuffer"
-                               , "CharConversionException"
-                               , "CharHolder"
-                               , "CharSeqHelper"
-                               , "CharSeqHolder"
-                               , "CharSequence"
-                               , "Character"
-                               , "CharacterAttribute"
-                               , "CharacterCodingException"
-                               , "CharacterConstants"
-                               , "CharacterData"
-                               , "CharacterIterator"
-                               , "Charset"
-                               , "CharsetDecoder"
-                               , "CharsetEncoder"
-                               , "CharsetProvider"
-                               , "Checkbox"
-                               , "CheckboxGroup"
-                               , "CheckboxMenuItem"
-                               , "CheckedInputStream"
-                               , "CheckedOutputStream"
-                               , "Checksum"
-                               , "Choice"
-                               , "ChoiceCallback"
-                               , "ChoiceFormat"
-                               , "Chromaticity"
-                               , "Cipher"
-                               , "CipherInputStream"
-                               , "CipherOutputStream"
-                               , "CipherSpi"
-                               , "Class"
-                               , "ClassCastException"
-                               , "ClassCircularityError"
-                               , "ClassDesc"
-                               , "ClassFormatError"
-                               , "ClassLoader"
-                               , "ClassNotFoundException"
-                               , "ClientRequestInfo"
-                               , "ClientRequestInfoOperations"
-                               , "ClientRequestInterceptor"
-                               , "ClientRequestInterceptorOperations"
-                               , "Clip"
-                               , "Clipboard"
-                               , "ClipboardOwner"
-                               , "Clob"
-                               , "CloneNotSupportedException"
-                               , "Cloneable"
-                               , "ClosedByInterruptException"
-                               , "ClosedChannelException"
-                               , "ClosedSelectorException"
-                               , "CodeSets"
-                               , "CodeSource"
-                               , "Codec"
-                               , "CodecFactory"
-                               , "CodecFactoryHelper"
-                               , "CodecFactoryOperations"
-                               , "CodecOperations"
-                               , "CoderMalfunctionError"
-                               , "CoderResult"
-                               , "CodingErrorAction"
-                               , "CollationElementIterator"
-                               , "CollationKey"
-                               , "Collator"
-                               , "Collection"
-                               , "CollectionCertStoreParameters"
-                               , "Collections"
-                               , "Color"
-                               , "ColorAttribute"
-                               , "ColorChooserComponentFactory"
-                               , "ColorChooserUI"
-                               , "ColorConstants"
-                               , "ColorConvertOp"
-                               , "ColorModel"
-                               , "ColorSelectionModel"
-                               , "ColorSpace"
-                               , "ColorSupported"
-                               , "ColorType"
-                               , "ColorUIResource"
-                               , "ComboBoxEditor"
-                               , "ComboBoxModel"
-                               , "ComboBoxUI"
-                               , "ComboPopup"
-                               , "CommandEnvironment"
-                               , "Comment"
-                               , "CommunicationException"
-                               , "Comparable"
-                               , "Comparator"
-                               , "Compiler"
-                               , "CompletionStatus"
-                               , "CompletionStatusHelper"
-                               , "Component"
-                               , "ComponentAdapter"
-                               , "ComponentColorModel"
-                               , "ComponentEvent"
-                               , "ComponentIdHelper"
-                               , "ComponentInputMap"
-                               , "ComponentInputMapUIResource"
-                               , "ComponentListener"
-                               , "ComponentOrientation"
-                               , "ComponentSampleModel"
-                               , "ComponentUI"
-                               , "ComponentView"
-                               , "Composite"
-                               , "CompositeContext"
-                               , "CompositeName"
-                               , "CompositeView"
-                               , "CompoundBorder"
-                               , "CompoundBorderUIResource"
-                               , "CompoundControl"
-                               , "CompoundEdit"
-                               , "CompoundName"
-                               , "Compression"
-                               , "ConcurrentModificationException"
-                               , "Configuration"
-                               , "ConfigurationException"
-                               , "ConfirmationCallback"
-                               , "ConnectException"
-                               , "ConnectIOException"
-                               , "Connection"
-                               , "ConnectionEvent"
-                               , "ConnectionEventListener"
-                               , "ConnectionPendingException"
-                               , "ConnectionPoolDataSource"
-                               , "ConsoleHandler"
-                               , "Constraints"
-                               , "Constructor"
-                               , "Container"
-                               , "ContainerAdapter"
-                               , "ContainerEvent"
-                               , "ContainerListener"
-                               , "ContainerOrderFocusTraversalPolicy"
-                               , "Content"
-                               , "ContentHandler"
-                               , "ContentHandlerFactory"
-                               , "ContentModel"
-                               , "Context"
-                               , "ContextList"
-                               , "ContextNotEmptyException"
-                               , "ContextualRenderedImageFactory"
-                               , "Control"
-                               , "ControlFactory"
-                               , "ControllerEventListener"
-                               , "ConvolveOp"
-                               , "CookieHolder"
-                               , "Copies"
-                               , "CopiesSupported"
-                               , "CopyAction"
-                               , "CredentialExpiredException"
-                               , "CropImageFilter"
-                               , "CubicCurve2D"
-                               , "Currency"
-                               , "Current"
-                               , "CurrentHelper"
-                               , "CurrentHolder"
-                               , "CurrentOperations"
-                               , "Cursor"
-                               , "CustomMarshal"
-                               , "CustomValue"
-                               , "Customizer"
-                               , "CutAction"
-                               , "DATA_CONVERSION"
-                               , "DESKeySpec"
-                               , "DESedeKeySpec"
-                               , "DGC"
-                               , "DHGenParameterSpec"
-                               , "DHKey"
-                               , "DHParameterSpec"
-                               , "DHPrivateKey"
-                               , "DHPrivateKeySpec"
-                               , "DHPublicKey"
-                               , "DHPublicKeySpec"
-                               , "DOMException"
-                               , "DOMImplementation"
-                               , "DOMLocator"
-                               , "DOMResult"
-                               , "DOMSource"
-                               , "DSAKey"
-                               , "DSAKeyPairGenerator"
-                               , "DSAParameterSpec"
-                               , "DSAParams"
-                               , "DSAPrivateKey"
-                               , "DSAPrivateKeySpec"
-                               , "DSAPublicKey"
-                               , "DSAPublicKeySpec"
-                               , "DTD"
-                               , "DTDConstants"
-                               , "DTDHandler"
-                               , "DataBuffer"
-                               , "DataBufferByte"
-                               , "DataBufferDouble"
-                               , "DataBufferFloat"
-                               , "DataBufferInt"
-                               , "DataBufferShort"
-                               , "DataBufferUShort"
-                               , "DataFlavor"
-                               , "DataFormatException"
-                               , "DataInput"
-                               , "DataInputStream"
-                               , "DataLine"
-                               , "DataOutput"
-                               , "DataOutputStream"
-                               , "DataSource"
-                               , "DataTruncation"
-                               , "DatabaseMetaData"
-                               , "DatagramChannel"
-                               , "DatagramPacket"
-                               , "DatagramSocket"
-                               , "DatagramSocketImpl"
-                               , "DatagramSocketImplFactory"
-                               , "Date"
-                               , "DateEditor"
-                               , "DateFormat"
-                               , "DateFormatSymbols"
-                               , "DateFormatter"
-                               , "DateTimeAtCompleted"
-                               , "DateTimeAtCreation"
-                               , "DateTimeAtProcessing"
-                               , "DateTimeSyntax"
-                               , "DebugGraphics"
-                               , "DecimalFormat"
-                               , "DecimalFormatSymbols"
-                               , "DeclHandler"
-                               , "DefaultBoundedRangeModel"
-                               , "DefaultButtonModel"
-                               , "DefaultCaret"
-                               , "DefaultCellEditor"
-                               , "DefaultColorSelectionModel"
-                               , "DefaultComboBoxModel"
-                               , "DefaultDesktopManager"
-                               , "DefaultEditor"
-                               , "DefaultEditorKit"
-                               , "DefaultFocusManager"
-                               , "DefaultFocusTraversalPolicy"
-                               , "DefaultFormatter"
-                               , "DefaultFormatterFactory"
-                               , "DefaultHandler"
-                               , "DefaultHighlightPainter"
-                               , "DefaultHighlighter"
-                               , "DefaultKeyTypedAction"
-                               , "DefaultKeyboardFocusManager"
-                               , "DefaultListCellRenderer"
-                               , "DefaultListModel"
-                               , "DefaultListSelectionModel"
-                               , "DefaultMenuLayout"
-                               , "DefaultMetalTheme"
-                               , "DefaultMutableTreeNode"
-                               , "DefaultPersistenceDelegate"
-                               , "DefaultSelectionType"
-                               , "DefaultSingleSelectionModel"
-                               , "DefaultStyledDocument"
-                               , "DefaultTableCellRenderer"
-                               , "DefaultTableColumnModel"
-                               , "DefaultTableModel"
-                               , "DefaultTextUI"
-                               , "DefaultTreeCellEditor"
-                               , "DefaultTreeCellRenderer"
-                               , "DefaultTreeModel"
-                               , "DefaultTreeSelectionModel"
-                               , "DefinitionKind"
-                               , "DefinitionKindHelper"
-                               , "Deflater"
-                               , "DeflaterOutputStream"
-                               , "Delegate"
-                               , "DelegationPermission"
-                               , "DesignMode"
-                               , "DesktopIconUI"
-                               , "DesktopManager"
-                               , "DesktopPaneUI"
-                               , "Destination"
-                               , "DestinationType"
-                               , "DestroyFailedException"
-                               , "Destroyable"
-                               , "Dialog"
-                               , "DialogType"
-                               , "Dictionary"
-                               , "DigestException"
-                               , "DigestInputStream"
-                               , "DigestOutputStream"
-                               , "Dimension"
-                               , "Dimension2D"
-                               , "DimensionUIResource"
-                               , "DirContext"
-                               , "DirObjectFactory"
-                               , "DirStateFactory"
-                               , "DirectColorModel"
-                               , "DirectoryManager"
-                               , "DisplayMode"
-                               , "DnDConstants"
-                               , "Doc"
-                               , "DocAttribute"
-                               , "DocAttributeSet"
-                               , "DocFlavor"
-                               , "DocPrintJob"
-                               , "Document"
-                               , "DocumentBuilder"
-                               , "DocumentBuilderFactory"
-                               , "DocumentEvent"
-                               , "DocumentFilter"
-                               , "DocumentFragment"
-                               , "DocumentHandler"
-                               , "DocumentListener"
-                               , "DocumentName"
-                               , "DocumentParser"
-                               , "DocumentType"
-                               , "DomainCombiner"
-                               , "DomainManager"
-                               , "DomainManagerOperations"
-                               , "Double"
-                               , "DoubleBuffer"
-                               , "DoubleHolder"
-                               , "DoubleSeqHelper"
-                               , "DoubleSeqHolder"
-                               , "DragGestureEvent"
-                               , "DragGestureListener"
-                               , "DragGestureRecognizer"
-                               , "DragSource"
-                               , "DragSourceAdapter"
-                               , "DragSourceContext"
-                               , "DragSourceDragEvent"
-                               , "DragSourceDropEvent"
-                               , "DragSourceEvent"
-                               , "DragSourceListener"
-                               , "DragSourceMotionListener"
-                               , "Driver"
-                               , "DriverManager"
-                               , "DriverPropertyInfo"
-                               , "DropTarget"
-                               , "DropTargetAdapter"
-                               , "DropTargetAutoScroller"
-                               , "DropTargetContext"
-                               , "DropTargetDragEvent"
-                               , "DropTargetDropEvent"
-                               , "DropTargetEvent"
-                               , "DropTargetListener"
-                               , "DuplicateName"
-                               , "DuplicateNameHelper"
-                               , "DynAny"
-                               , "DynAnyFactory"
-                               , "DynAnyFactoryHelper"
-                               , "DynAnyFactoryOperations"
-                               , "DynAnyHelper"
-                               , "DynAnyOperations"
-                               , "DynAnySeqHelper"
-                               , "DynArray"
-                               , "DynArrayHelper"
-                               , "DynArrayOperations"
-                               , "DynEnum"
-                               , "DynEnumHelper"
-                               , "DynEnumOperations"
-                               , "DynFixed"
-                               , "DynFixedHelper"
-                               , "DynFixedOperations"
-                               , "DynSequence"
-                               , "DynSequenceHelper"
-                               , "DynSequenceOperations"
-                               , "DynStruct"
-                               , "DynStructHelper"
-                               , "DynStructOperations"
-                               , "DynUnion"
-                               , "DynUnionHelper"
-                               , "DynUnionOperations"
-                               , "DynValue"
-                               , "DynValueBox"
-                               , "DynValueBoxOperations"
-                               , "DynValueCommon"
-                               , "DynValueCommonOperations"
-                               , "DynValueHelper"
-                               , "DynValueOperations"
-                               , "DynamicImplementation"
-                               , "DynamicUtilTreeNode"
-                               , "ENCODING_CDR_ENCAPS"
-                               , "EOFException"
-                               , "EditorKit"
-                               , "Element"
-                               , "ElementChange"
-                               , "ElementEdit"
-                               , "ElementIterator"
-                               , "ElementSpec"
-                               , "Ellipse2D"
-                               , "EmptyBorder"
-                               , "EmptyBorderUIResource"
-                               , "EmptySelectionModel"
-                               , "EmptyStackException"
-                               , "EncodedKeySpec"
-                               , "Encoder"
-                               , "Encoding"
-                               , "EncryptedPrivateKeyInfo"
-                               , "Engineering"
-                               , "Entity"
-                               , "EntityReference"
-                               , "EntityResolver"
-                               , "Entry"
-                               , "EnumControl"
-                               , "EnumSyntax"
-                               , "Enumeration"
-                               , "Environment"
-                               , "Error"
-                               , "ErrorHandler"
-                               , "ErrorListener"
-                               , "ErrorManager"
-                               , "EtchedBorder"
-                               , "EtchedBorderUIResource"
-                               , "Event"
-                               , "EventContext"
-                               , "EventDirContext"
-                               , "EventHandler"
-                               , "EventListener"
-                               , "EventListenerList"
-                               , "EventListenerProxy"
-                               , "EventObject"
-                               , "EventQueue"
-                               , "EventSetDescriptor"
-                               , "EventType"
-                               , "Exception"
-                               , "ExceptionInInitializerError"
-                               , "ExceptionList"
-                               , "ExceptionListener"
-                               , "ExemptionMechanism"
-                               , "ExemptionMechanismException"
-                               , "ExemptionMechanismSpi"
-                               , "ExpandVetoException"
-                               , "ExportException"
-                               , "Expression"
-                               , "ExtendedRequest"
-                               , "ExtendedResponse"
-                               , "Externalizable"
-                               , "FREE_MEM"
-                               , "FactoryConfigurationError"
-                               , "FailedLoginException"
-                               , "FeatureDescriptor"
-                               , "Fidelity"
-                               , "Field"
-                               , "FieldBorder"
-                               , "FieldNameHelper"
-                               , "FieldPosition"
-                               , "FieldView"
-                               , "File"
-                               , "FileCacheImageInputStream"
-                               , "FileCacheImageOutputStream"
-                               , "FileChannel"
-                               , "FileChooserUI"
-                               , "FileDescriptor"
-                               , "FileDialog"
-                               , "FileFilter"
-                               , "FileHandler"
-                               , "FileIcon16"
-                               , "FileImageInputStream"
-                               , "FileImageOutputStream"
-                               , "FileInputStream"
-                               , "FileLock"
-                               , "FileLockInterruptionException"
-                               , "FileNameMap"
-                               , "FileNotFoundException"
-                               , "FileOutputStream"
-                               , "FilePermission"
-                               , "FileReader"
-                               , "FileSystemView"
-                               , "FileView"
-                               , "FileWriter"
-                               , "FilenameFilter"
-                               , "Filler"
-                               , "Filter"
-                               , "FilterBypass"
-                               , "FilterInputStream"
-                               , "FilterOutputStream"
-                               , "FilterReader"
-                               , "FilterWriter"
-                               , "FilteredImageSource"
-                               , "Finishings"
-                               , "FixedHeightLayoutCache"
-                               , "FixedHolder"
-                               , "FlatteningPathIterator"
-                               , "FlavorException"
-                               , "FlavorMap"
-                               , "FlavorTable"
-                               , "FlipContents"
-                               , "Float"
-                               , "FloatBuffer"
-                               , "FloatControl"
-                               , "FloatHolder"
-                               , "FloatSeqHelper"
-                               , "FloatSeqHolder"
-                               , "FlowLayout"
-                               , "FlowStrategy"
-                               , "FlowView"
-                               , "Flush3DBorder"
-                               , "FocusAdapter"
-                               , "FocusEvent"
-                               , "FocusListener"
-                               , "FocusManager"
-                               , "FocusTraversalPolicy"
-                               , "FolderIcon16"
-                               , "Font"
-                               , "FontAttribute"
-                               , "FontConstants"
-                               , "FontFamilyAction"
-                               , "FontFormatException"
-                               , "FontMetrics"
-                               , "FontRenderContext"
-                               , "FontSizeAction"
-                               , "FontUIResource"
-                               , "ForegroundAction"
-                               , "FormView"
-                               , "Format"
-                               , "FormatConversionProvider"
-                               , "FormatMismatch"
-                               , "FormatMismatchHelper"
-                               , "Formatter"
-                               , "ForwardRequest"
-                               , "ForwardRequestHelper"
-                               , "Frame"
-                               , "GSSContext"
-                               , "GSSCredential"
-                               , "GSSException"
-                               , "GSSManager"
-                               , "GSSName"
-                               , "GZIPInputStream"
-                               , "GZIPOutputStream"
-                               , "GapContent"
-                               , "GatheringByteChannel"
-                               , "GeneralPath"
-                               , "GeneralSecurityException"
-                               , "GetField"
-                               , "GlyphJustificationInfo"
-                               , "GlyphMetrics"
-                               , "GlyphPainter"
-                               , "GlyphVector"
-                               , "GlyphView"
-                               , "GradientPaint"
-                               , "GraphicAttribute"
-                               , "Graphics"
-                               , "Graphics2D"
-                               , "GraphicsConfigTemplate"
-                               , "GraphicsConfiguration"
-                               , "GraphicsDevice"
-                               , "GraphicsEnvironment"
-                               , "GrayFilter"
-                               , "GregorianCalendar"
-                               , "GridBagConstraints"
-                               , "GridBagLayout"
-                               , "GridLayout"
-                               , "Group"
-                               , "Guard"
-                               , "GuardedObject"
-                               , "HTML"
-                               , "HTMLDocument"
-                               , "HTMLEditorKit"
-                               , "HTMLFrameHyperlinkEvent"
-                               , "HTMLWriter"
-                               , "Handler"
-                               , "HandlerBase"
-                               , "HandshakeCompletedEvent"
-                               , "HandshakeCompletedListener"
-                               , "HasControls"
-                               , "HashAttributeSet"
-                               , "HashDocAttributeSet"
-                               , "HashMap"
-                               , "HashPrintJobAttributeSet"
-                               , "HashPrintRequestAttributeSet"
-                               , "HashPrintServiceAttributeSet"
-                               , "HashSet"
-                               , "Hashtable"
-                               , "HeadlessException"
-                               , "HierarchyBoundsAdapter"
-                               , "HierarchyBoundsListener"
-                               , "HierarchyEvent"
-                               , "HierarchyListener"
-                               , "Highlight"
-                               , "HighlightPainter"
-                               , "Highlighter"
-                               , "HostnameVerifier"
-                               , "HttpURLConnection"
-                               , "HttpsURLConnection"
-                               , "HyperlinkEvent"
-                               , "HyperlinkListener"
-                               , "ICC_ColorSpace"
-                               , "ICC_Profile"
-                               , "ICC_ProfileGray"
-                               , "ICC_ProfileRGB"
-                               , "IDLEntity"
-                               , "IDLType"
-                               , "IDLTypeHelper"
-                               , "IDLTypeOperations"
-                               , "ID_ASSIGNMENT_POLICY_ID"
-                               , "ID_UNIQUENESS_POLICY_ID"
-                               , "IIOByteBuffer"
-                               , "IIOException"
-                               , "IIOImage"
-                               , "IIOInvalidTreeException"
-                               , "IIOMetadata"
-                               , "IIOMetadataController"
-                               , "IIOMetadataFormat"
-                               , "IIOMetadataFormatImpl"
-                               , "IIOMetadataNode"
-                               , "IIOParam"
-                               , "IIOParamController"
-                               , "IIOReadProgressListener"
-                               , "IIOReadUpdateListener"
-                               , "IIOReadWarningListener"
-                               , "IIORegistry"
-                               , "IIOServiceProvider"
-                               , "IIOWriteProgressListener"
-                               , "IIOWriteWarningListener"
-                               , "IMPLICIT_ACTIVATION_POLICY_ID"
-                               , "IMP_LIMIT"
-                               , "INITIALIZE"
-                               , "INPUT_STREAM"
-                               , "INTERNAL"
-                               , "INTF_REPOS"
-                               , "INVALID_TRANSACTION"
-                               , "INV_FLAG"
-                               , "INV_IDENT"
-                               , "INV_OBJREF"
-                               , "INV_POLICY"
-                               , "IOException"
-                               , "IOR"
-                               , "IORHelper"
-                               , "IORHolder"
-                               , "IORInfo"
-                               , "IORInfoOperations"
-                               , "IORInterceptor"
-                               , "IORInterceptorOperations"
-                               , "IRObject"
-                               , "IRObjectOperations"
-                               , "ISO"
-                               , "Icon"
-                               , "IconUIResource"
-                               , "IconView"
-                               , "IdAssignmentPolicy"
-                               , "IdAssignmentPolicyOperations"
-                               , "IdAssignmentPolicyValue"
-                               , "IdUniquenessPolicy"
-                               , "IdUniquenessPolicyOperations"
-                               , "IdUniquenessPolicyValue"
-                               , "IdentifierHelper"
-                               , "Identity"
-                               , "IdentityHashMap"
-                               , "IdentityScope"
-                               , "IllegalAccessError"
-                               , "IllegalAccessException"
-                               , "IllegalArgumentException"
-                               , "IllegalBlockSizeException"
-                               , "IllegalBlockingModeException"
-                               , "IllegalCharsetNameException"
-                               , "IllegalComponentStateException"
-                               , "IllegalMonitorStateException"
-                               , "IllegalPathStateException"
-                               , "IllegalSelectorException"
-                               , "IllegalStateException"
-                               , "IllegalThreadStateException"
-                               , "Image"
-                               , "ImageCapabilities"
-                               , "ImageConsumer"
-                               , "ImageFilter"
-                               , "ImageGraphicAttribute"
-                               , "ImageIO"
-                               , "ImageIcon"
-                               , "ImageInputStream"
-                               , "ImageInputStreamImpl"
-                               , "ImageInputStreamSpi"
-                               , "ImageObserver"
-                               , "ImageOutputStream"
-                               , "ImageOutputStreamImpl"
-                               , "ImageOutputStreamSpi"
-                               , "ImageProducer"
-                               , "ImageReadParam"
-                               , "ImageReader"
-                               , "ImageReaderSpi"
-                               , "ImageReaderWriterSpi"
-                               , "ImageTranscoder"
-                               , "ImageTranscoderSpi"
-                               , "ImageTypeSpecifier"
-                               , "ImageView"
-                               , "ImageWriteParam"
-                               , "ImageWriter"
-                               , "ImageWriterSpi"
-                               , "ImagingOpException"
-                               , "ImplicitActivationPolicy"
-                               , "ImplicitActivationPolicyOperations"
-                               , "ImplicitActivationPolicyValue"
-                               , "IncompatibleClassChangeError"
-                               , "InconsistentTypeCode"
-                               , "InconsistentTypeCodeHelper"
-                               , "IndexColorModel"
-                               , "IndexOutOfBoundsException"
-                               , "IndexedPropertyDescriptor"
-                               , "IndirectionException"
-                               , "Inet4Address"
-                               , "Inet6Address"
-                               , "InetAddress"
-                               , "InetSocketAddress"
-                               , "Inflater"
-                               , "InflaterInputStream"
-                               , "Info"
-                               , "InheritableThreadLocal"
-                               , "InitialContext"
-                               , "InitialContextFactory"
-                               , "InitialContextFactoryBuilder"
-                               , "InitialDirContext"
-                               , "InitialLdapContext"
-                               , "InlineView"
-                               , "InputContext"
-                               , "InputEvent"
-                               , "InputMap"
-                               , "InputMapUIResource"
-                               , "InputMethod"
-                               , "InputMethodContext"
-                               , "InputMethodDescriptor"
-                               , "InputMethodEvent"
-                               , "InputMethodHighlight"
-                               , "InputMethodListener"
-                               , "InputMethodRequests"
-                               , "InputSource"
-                               , "InputStream"
-                               , "InputStreamReader"
-                               , "InputSubset"
-                               , "InputVerifier"
-                               , "InsertBreakAction"
-                               , "InsertContentAction"
-                               , "InsertHTMLTextAction"
-                               , "InsertTabAction"
-                               , "Insets"
-                               , "InsetsUIResource"
-                               , "InstantiationError"
-                               , "InstantiationException"
-                               , "Instrument"
-                               , "InsufficientResourcesException"
-                               , "IntBuffer"
-                               , "IntHolder"
-                               , "Integer"
-                               , "IntegerSyntax"
-                               , "Interceptor"
-                               , "InterceptorOperations"
-                               , "InternalError"
-                               , "InternalFrameAdapter"
-                               , "InternalFrameBorder"
-                               , "InternalFrameEvent"
-                               , "InternalFrameFocusTraversalPolicy"
-                               , "InternalFrameListener"
-                               , "InternalFrameUI"
-                               , "InternationalFormatter"
-                               , "InterruptedException"
-                               , "InterruptedIOException"
-                               , "InterruptedNamingException"
-                               , "InterruptibleChannel"
-                               , "IntrospectionException"
-                               , "Introspector"
-                               , "Invalid"
-                               , "InvalidAddress"
-                               , "InvalidAddressHelper"
-                               , "InvalidAddressHolder"
-                               , "InvalidAlgorithmParameterException"
-                               , "InvalidAttributeIdentifierException"
-                               , "InvalidAttributeValueException"
-                               , "InvalidAttributesException"
-                               , "InvalidClassException"
-                               , "InvalidDnDOperationException"
-                               , "InvalidKeyException"
-                               , "InvalidKeySpecException"
-                               , "InvalidMarkException"
-                               , "InvalidMidiDataException"
-                               , "InvalidName"
-                               , "InvalidNameException"
-                               , "InvalidNameHelper"
-                               , "InvalidNameHolder"
-                               , "InvalidObjectException"
-                               , "InvalidParameterException"
-                               , "InvalidParameterSpecException"
-                               , "InvalidPolicy"
-                               , "InvalidPolicyHelper"
-                               , "InvalidPreferencesFormatException"
-                               , "InvalidSearchControlsException"
-                               , "InvalidSearchFilterException"
-                               , "InvalidSeq"
-                               , "InvalidSlot"
-                               , "InvalidSlotHelper"
-                               , "InvalidTransactionException"
-                               , "InvalidTypeForEncoding"
-                               , "InvalidTypeForEncodingHelper"
-                               , "InvalidValue"
-                               , "InvalidValueHelper"
-                               , "InvocationEvent"
-                               , "InvocationHandler"
-                               , "InvocationTargetException"
-                               , "InvokeHandler"
-                               , "IstringHelper"
-                               , "ItalicAction"
-                               , "ItemEvent"
-                               , "ItemListener"
-                               , "ItemSelectable"
-                               , "Iterator"
-                               , "IvParameterSpec"
-                               , "JApplet"
-                               , "JButton"
-                               , "JCheckBox"
-                               , "JCheckBoxMenuItem"
-                               , "JColorChooser"
-                               , "JComboBox"
-                               , "JComponent"
-                               , "JDesktopIcon"
-                               , "JDesktopPane"
-                               , "JDialog"
-                               , "JEditorPane"
-                               , "JFileChooser"
-                               , "JFormattedTextField"
-                               , "JFrame"
-                               , "JIS"
-                               , "JInternalFrame"
-                               , "JLabel"
-                               , "JLayeredPane"
-                               , "JList"
-                               , "JMenu"
-                               , "JMenuBar"
-                               , "JMenuItem"
-                               , "JOptionPane"
-                               , "JPEGHuffmanTable"
-                               , "JPEGImageReadParam"
-                               , "JPEGImageWriteParam"
-                               , "JPEGQTable"
-                               , "JPanel"
-                               , "JPasswordField"
-                               , "JPopupMenu"
-                               , "JProgressBar"
-                               , "JRadioButton"
-                               , "JRadioButtonMenuItem"
-                               , "JRootPane"
-                               , "JScrollBar"
-                               , "JScrollPane"
-                               , "JSeparator"
-                               , "JSlider"
-                               , "JSpinner"
-                               , "JSplitPane"
-                               , "JTabbedPane"
-                               , "JTable"
-                               , "JTableHeader"
-                               , "JTextArea"
-                               , "JTextComponent"
-                               , "JTextField"
-                               , "JTextPane"
-                               , "JToggleButton"
-                               , "JToolBar"
-                               , "JToolTip"
-                               , "JTree"
-                               , "JViewport"
-                               , "JWindow"
-                               , "JarEntry"
-                               , "JarException"
-                               , "JarFile"
-                               , "JarInputStream"
-                               , "JarOutputStream"
-                               , "JarURLConnection"
-                               , "JobAttributes"
-                               , "JobHoldUntil"
-                               , "JobImpressions"
-                               , "JobImpressionsCompleted"
-                               , "JobImpressionsSupported"
-                               , "JobKOctets"
-                               , "JobKOctetsProcessed"
-                               , "JobKOctetsSupported"
-                               , "JobMediaSheets"
-                               , "JobMediaSheetsCompleted"
-                               , "JobMediaSheetsSupported"
-                               , "JobMessageFromOperator"
-                               , "JobName"
-                               , "JobOriginatingUserName"
-                               , "JobPriority"
-                               , "JobPrioritySupported"
-                               , "JobSheets"
-                               , "JobState"
-                               , "JobStateReason"
-                               , "JobStateReasons"
-                               , "KerberosKey"
-                               , "KerberosPrincipal"
-                               , "KerberosTicket"
-                               , "Kernel"
-                               , "Key"
-                               , "KeyAdapter"
-                               , "KeyAgreement"
-                               , "KeyAgreementSpi"
-                               , "KeyBinding"
-                               , "KeyEvent"
-                               , "KeyEventDispatcher"
-                               , "KeyEventPostProcessor"
-                               , "KeyException"
-                               , "KeyFactory"
-                               , "KeyFactorySpi"
-                               , "KeyGenerator"
-                               , "KeyGeneratorSpi"
-                               , "KeyListener"
-                               , "KeyManagementException"
-                               , "KeyManager"
-                               , "KeyManagerFactory"
-                               , "KeyManagerFactorySpi"
-                               , "KeyPair"
-                               , "KeyPairGenerator"
-                               , "KeyPairGeneratorSpi"
-                               , "KeySelectionManager"
-                               , "KeySpec"
-                               , "KeyStore"
-                               , "KeyStoreException"
-                               , "KeyStoreSpi"
-                               , "KeyStroke"
-                               , "KeyboardFocusManager"
-                               , "Keymap"
-                               , "LDAPCertStoreParameters"
-                               , "LIFESPAN_POLICY_ID"
-                               , "LOCATION_FORWARD"
-                               , "Label"
-                               , "LabelUI"
-                               , "LabelView"
-                               , "LanguageCallback"
-                               , "LastOwnerException"
-                               , "LayerPainter"
-                               , "LayeredHighlighter"
-                               , "LayoutFocusTraversalPolicy"
-                               , "LayoutManager"
-                               , "LayoutManager2"
-                               , "LayoutQueue"
-                               , "LazyInputMap"
-                               , "LazyValue"
-                               , "LdapContext"
-                               , "LdapReferralException"
-                               , "Lease"
-                               , "Level"
-                               , "LexicalHandler"
-                               , "LifespanPolicy"
-                               , "LifespanPolicyOperations"
-                               , "LifespanPolicyValue"
-                               , "LimitExceededException"
-                               , "Line"
-                               , "Line2D"
-                               , "LineBorder"
-                               , "LineBorderUIResource"
-                               , "LineBreakMeasurer"
-                               , "LineEvent"
-                               , "LineListener"
-                               , "LineMetrics"
-                               , "LineNumberInputStream"
-                               , "LineNumberReader"
-                               , "LineUnavailableException"
-                               , "LinkController"
-                               , "LinkException"
-                               , "LinkLoopException"
-                               , "LinkRef"
-                               , "LinkageError"
-                               , "LinkedHashMap"
-                               , "LinkedHashSet"
-                               , "LinkedList"
-                               , "List"
-                               , "ListCellRenderer"
-                               , "ListDataEvent"
-                               , "ListDataListener"
-                               , "ListEditor"
-                               , "ListIterator"
-                               , "ListModel"
-                               , "ListPainter"
-                               , "ListResourceBundle"
-                               , "ListSelectionEvent"
-                               , "ListSelectionListener"
-                               , "ListSelectionModel"
-                               , "ListUI"
-                               , "ListView"
-                               , "LoaderHandler"
-                               , "LocalObject"
-                               , "Locale"
-                               , "LocateRegistry"
-                               , "Locator"
-                               , "LocatorImpl"
-                               , "LogManager"
-                               , "LogRecord"
-                               , "LogStream"
-                               , "Logger"
-                               , "LoggingPermission"
-                               , "LoginContext"
-                               , "LoginException"
-                               , "LoginModule"
-                               , "LoginModuleControlFlag"
-                               , "Long"
-                               , "LongBuffer"
-                               , "LongHolder"
-                               , "LongLongSeqHelper"
-                               , "LongLongSeqHolder"
-                               , "LongSeqHelper"
-                               , "LongSeqHolder"
-                               , "LookAndFeel"
-                               , "LookAndFeelInfo"
-                               , "LookupOp"
-                               , "LookupTable"
-                               , "MARSHAL"
-                               , "Mac"
-                               , "MacSpi"
-                               , "MalformedInputException"
-                               , "MalformedLinkException"
-                               , "MalformedURLException"
-                               , "ManagerFactoryParameters"
-                               , "Manifest"
-                               , "Map"
-                               , "MapMode"
-                               , "MappedByteBuffer"
-                               , "MarginBorder"
-                               , "MarshalException"
-                               , "MarshalledObject"
-                               , "MaskFormatter"
-                               , "Matcher"
-                               , "Math"
-                               , "MatteBorder"
-                               , "MatteBorderUIResource"
-                               , "Media"
-                               , "MediaName"
-                               , "MediaPrintableArea"
-                               , "MediaSize"
-                               , "MediaSizeName"
-                               , "MediaTracker"
-                               , "MediaTray"
-                               , "MediaType"
-                               , "Member"
-                               , "MemoryCacheImageInputStream"
-                               , "MemoryCacheImageOutputStream"
-                               , "MemoryHandler"
-                               , "MemoryImageSource"
-                               , "Menu"
-                               , "MenuBar"
-                               , "MenuBarBorder"
-                               , "MenuBarUI"
-                               , "MenuComponent"
-                               , "MenuContainer"
-                               , "MenuDragMouseEvent"
-                               , "MenuDragMouseListener"
-                               , "MenuElement"
-                               , "MenuEvent"
-                               , "MenuItem"
-                               , "MenuItemBorder"
-                               , "MenuItemUI"
-                               , "MenuKeyEvent"
-                               , "MenuKeyListener"
-                               , "MenuListener"
-                               , "MenuSelectionManager"
-                               , "MenuShortcut"
-                               , "MessageDigest"
-                               , "MessageDigestSpi"
-                               , "MessageFormat"
-                               , "MessageProp"
-                               , "MetaEventListener"
-                               , "MetaMessage"
-                               , "MetalBorders"
-                               , "MetalButtonUI"
-                               , "MetalCheckBoxIcon"
-                               , "MetalCheckBoxUI"
-                               , "MetalComboBoxButton"
-                               , "MetalComboBoxEditor"
-                               , "MetalComboBoxIcon"
-                               , "MetalComboBoxUI"
-                               , "MetalDesktopIconUI"
-                               , "MetalFileChooserUI"
-                               , "MetalIconFactory"
-                               , "MetalInternalFrameTitlePane"
-                               , "MetalInternalFrameUI"
-                               , "MetalLabelUI"
-                               , "MetalLookAndFeel"
-                               , "MetalPopupMenuSeparatorUI"
-                               , "MetalProgressBarUI"
-                               , "MetalRadioButtonUI"
-                               , "MetalRootPaneUI"
-                               , "MetalScrollBarUI"
-                               , "MetalScrollButton"
-                               , "MetalScrollPaneUI"
-                               , "MetalSeparatorUI"
-                               , "MetalSliderUI"
-                               , "MetalSplitPaneUI"
-                               , "MetalTabbedPaneUI"
-                               , "MetalTextFieldUI"
-                               , "MetalTheme"
-                               , "MetalToggleButtonUI"
-                               , "MetalToolBarUI"
-                               , "MetalToolTipUI"
-                               , "MetalTreeUI"
-                               , "Method"
-                               , "MethodDescriptor"
-                               , "MidiChannel"
-                               , "MidiDevice"
-                               , "MidiDeviceProvider"
-                               , "MidiEvent"
-                               , "MidiFileFormat"
-                               , "MidiFileReader"
-                               , "MidiFileWriter"
-                               , "MidiMessage"
-                               , "MidiSystem"
-                               , "MidiUnavailableException"
-                               , "MimeTypeParseException"
-                               , "MinimalHTMLWriter"
-                               , "MissingResourceException"
-                               , "Mixer"
-                               , "MixerProvider"
-                               , "ModificationItem"
-                               , "Modifier"
-                               , "MouseAdapter"
-                               , "MouseDragGestureRecognizer"
-                               , "MouseEvent"
-                               , "MouseInputAdapter"
-                               , "MouseInputListener"
-                               , "MouseListener"
-                               , "MouseMotionAdapter"
-                               , "MouseMotionListener"
-                               , "MouseWheelEvent"
-                               , "MouseWheelListener"
-                               , "MultiButtonUI"
-                               , "MultiColorChooserUI"
-                               , "MultiComboBoxUI"
-                               , "MultiDesktopIconUI"
-                               , "MultiDesktopPaneUI"
-                               , "MultiDoc"
-                               , "MultiDocPrintJob"
-                               , "MultiDocPrintService"
-                               , "MultiFileChooserUI"
-                               , "MultiInternalFrameUI"
-                               , "MultiLabelUI"
-                               , "MultiListUI"
-                               , "MultiLookAndFeel"
-                               , "MultiMenuBarUI"
-                               , "MultiMenuItemUI"
-                               , "MultiOptionPaneUI"
-                               , "MultiPanelUI"
-                               , "MultiPixelPackedSampleModel"
-                               , "MultiPopupMenuUI"
-                               , "MultiProgressBarUI"
-                               , "MultiRootPaneUI"
-                               , "MultiScrollBarUI"
-                               , "MultiScrollPaneUI"
-                               , "MultiSeparatorUI"
-                               , "MultiSliderUI"
-                               , "MultiSpinnerUI"
-                               , "MultiSplitPaneUI"
-                               , "MultiTabbedPaneUI"
-                               , "MultiTableHeaderUI"
-                               , "MultiTableUI"
-                               , "MultiTextUI"
-                               , "MultiToolBarUI"
-                               , "MultiToolTipUI"
-                               , "MultiTreeUI"
-                               , "MultiViewportUI"
-                               , "MulticastSocket"
-                               , "MultipleComponentProfileHelper"
-                               , "MultipleComponentProfileHolder"
-                               , "MultipleDocumentHandling"
-                               , "MultipleDocumentHandlingType"
-                               , "MultipleMaster"
-                               , "MutableAttributeSet"
-                               , "MutableComboBoxModel"
-                               , "MutableTreeNode"
-                               , "NA"
-                               , "NO_IMPLEMENT"
-                               , "NO_MEMORY"
-                               , "NO_PERMISSION"
-                               , "NO_RESOURCES"
-                               , "NO_RESPONSE"
-                               , "NVList"
-                               , "Name"
-                               , "NameAlreadyBoundException"
-                               , "NameCallback"
-                               , "NameClassPair"
-                               , "NameComponent"
-                               , "NameComponentHelper"
-                               , "NameComponentHolder"
-                               , "NameDynAnyPair"
-                               , "NameDynAnyPairHelper"
-                               , "NameDynAnyPairSeqHelper"
-                               , "NameHelper"
-                               , "NameHolder"
-                               , "NameNotFoundException"
-                               , "NameParser"
-                               , "NameValuePair"
-                               , "NameValuePairHelper"
-                               , "NameValuePairSeqHelper"
-                               , "NamedNodeMap"
-                               , "NamedValue"
-                               , "NamespaceChangeListener"
-                               , "NamespaceSupport"
-                               , "Naming"
-                               , "NamingContext"
-                               , "NamingContextExt"
-                               , "NamingContextExtHelper"
-                               , "NamingContextExtHolder"
-                               , "NamingContextExtOperations"
-                               , "NamingContextExtPOA"
-                               , "NamingContextHelper"
-                               , "NamingContextHolder"
-                               , "NamingContextOperations"
-                               , "NamingContextPOA"
-                               , "NamingEnumeration"
-                               , "NamingEvent"
-                               , "NamingException"
-                               , "NamingExceptionEvent"
-                               , "NamingListener"
-                               , "NamingManager"
-                               , "NamingSecurityException"
-                               , "NavigationFilter"
-                               , "NegativeArraySizeException"
-                               , "NetPermission"
-                               , "NetworkInterface"
-                               , "NoClassDefFoundError"
-                               , "NoConnectionPendingException"
-                               , "NoContext"
-                               , "NoContextHelper"
-                               , "NoInitialContextException"
-                               , "NoPermissionException"
-                               , "NoRouteToHostException"
-                               , "NoServant"
-                               , "NoServantHelper"
-                               , "NoSuchAlgorithmException"
-                               , "NoSuchAttributeException"
-                               , "NoSuchElementException"
-                               , "NoSuchFieldError"
-                               , "NoSuchFieldException"
-                               , "NoSuchMethodError"
-                               , "NoSuchMethodException"
-                               , "NoSuchObjectException"
-                               , "NoSuchPaddingException"
-                               , "NoSuchProviderException"
-                               , "Node"
-                               , "NodeChangeEvent"
-                               , "NodeChangeListener"
-                               , "NodeDimensions"
-                               , "NodeList"
-                               , "NonReadableChannelException"
-                               , "NonWritableChannelException"
-                               , "NoninvertibleTransformException"
-                               , "NotActiveException"
-                               , "NotBoundException"
-                               , "NotContextException"
-                               , "NotEmpty"
-                               , "NotEmptyHelper"
-                               , "NotEmptyHolder"
-                               , "NotFound"
-                               , "NotFoundHelper"
-                               , "NotFoundHolder"
-                               , "NotFoundReason"
-                               , "NotFoundReasonHelper"
-                               , "NotFoundReasonHolder"
-                               , "NotOwnerException"
-                               , "NotSerializableException"
-                               , "NotYetBoundException"
-                               , "NotYetConnectedException"
-                               , "Notation"
-                               , "NullCipher"
-                               , "NullPointerException"
-                               , "Number"
-                               , "NumberEditor"
-                               , "NumberFormat"
-                               , "NumberFormatException"
-                               , "NumberFormatter"
-                               , "NumberOfDocuments"
-                               , "NumberOfInterveningJobs"
-                               , "NumberUp"
-                               , "NumberUpSupported"
-                               , "NumericShaper"
-                               , "OBJECT_NOT_EXIST"
-                               , "OBJ_ADAPTER"
-                               , "OMGVMCID"
-                               , "ORB"
-                               , "ORBInitInfo"
-                               , "ORBInitInfoOperations"
-                               , "ORBInitializer"
-                               , "ORBInitializerOperations"
-                               , "ObjID"
-                               , "Object"
-                               , "ObjectAlreadyActive"
-                               , "ObjectAlreadyActiveHelper"
-                               , "ObjectChangeListener"
-                               , "ObjectFactory"
-                               , "ObjectFactoryBuilder"
-                               , "ObjectHelper"
-                               , "ObjectHolder"
-                               , "ObjectIdHelper"
-                               , "ObjectImpl"
-                               , "ObjectInput"
-                               , "ObjectInputStream"
-                               , "ObjectInputValidation"
-                               , "ObjectNotActive"
-                               , "ObjectNotActiveHelper"
-                               , "ObjectOutput"
-                               , "ObjectOutputStream"
-                               , "ObjectStreamClass"
-                               , "ObjectStreamConstants"
-                               , "ObjectStreamException"
-                               , "ObjectStreamField"
-                               , "ObjectView"
-                               , "Observable"
-                               , "Observer"
-                               , "OctetSeqHelper"
-                               , "OctetSeqHolder"
-                               , "Oid"
-                               , "OpenType"
-                               , "Operation"
-                               , "OperationNotSupportedException"
-                               , "Option"
-                               , "OptionDialogBorder"
-                               , "OptionPaneUI"
-                               , "OptionalDataException"
-                               , "OrientationRequested"
-                               , "OrientationRequestedType"
-                               , "OriginType"
-                               , "Other"
-                               , "OutOfMemoryError"
-                               , "OutputDeviceAssigned"
-                               , "OutputKeys"
-                               , "OutputStream"
-                               , "OutputStreamWriter"
-                               , "OverlappingFileLockException"
-                               , "OverlayLayout"
-                               , "Owner"
-                               , "PBEKey"
-                               , "PBEKeySpec"
-                               , "PBEParameterSpec"
-                               , "PDLOverrideSupported"
-                               , "PERSIST_STORE"
-                               , "PKCS8EncodedKeySpec"
-                               , "PKIXBuilderParameters"
-                               , "PKIXCertPathBuilderResult"
-                               , "PKIXCertPathChecker"
-                               , "PKIXCertPathValidatorResult"
-                               , "PKIXParameters"
-                               , "POA"
-                               , "POAHelper"
-                               , "POAManager"
-                               , "POAManagerOperations"
-                               , "POAOperations"
-                               , "PRIVATE_MEMBER"
-                               , "PSSParameterSpec"
-                               , "PUBLIC_MEMBER"
-                               , "Package"
-                               , "PackedColorModel"
-                               , "PageAttributes"
-                               , "PageFormat"
-                               , "PageRanges"
-                               , "Pageable"
-                               , "PagesPerMinute"
-                               , "PagesPerMinuteColor"
-                               , "Paint"
-                               , "PaintContext"
-                               , "PaintEvent"
-                               , "PaletteBorder"
-                               , "PaletteCloseIcon"
-                               , "Panel"
-                               , "PanelUI"
-                               , "Paper"
-                               , "ParagraphAttribute"
-                               , "ParagraphConstants"
-                               , "ParagraphView"
-                               , "Parameter"
-                               , "ParameterBlock"
-                               , "ParameterDescriptor"
-                               , "ParameterMetaData"
-                               , "ParameterMode"
-                               , "ParameterModeHelper"
-                               , "ParameterModeHolder"
-                               , "ParseException"
-                               , "ParsePosition"
-                               , "Parser"
-                               , "ParserAdapter"
-                               , "ParserCallback"
-                               , "ParserConfigurationException"
-                               , "ParserDelegator"
-                               , "ParserFactory"
-                               , "PartialResultException"
-                               , "PasswordAuthentication"
-                               , "PasswordCallback"
-                               , "PasswordView"
-                               , "PasteAction"
-                               , "Patch"
-                               , "PathIterator"
-                               , "Pattern"
-                               , "PatternSyntaxException"
-                               , "Permission"
-                               , "PermissionCollection"
-                               , "Permissions"
-                               , "PersistenceDelegate"
-                               , "PhantomReference"
-                               , "Pipe"
-                               , "PipedInputStream"
-                               , "PipedOutputStream"
-                               , "PipedReader"
-                               , "PipedWriter"
-                               , "PixelGrabber"
-                               , "PixelInterleavedSampleModel"
-                               , "PlainDocument"
-                               , "PlainView"
-                               , "Point"
-                               , "Point2D"
-                               , "Policy"
-                               , "PolicyError"
-                               , "PolicyErrorCodeHelper"
-                               , "PolicyErrorHelper"
-                               , "PolicyErrorHolder"
-                               , "PolicyFactory"
-                               , "PolicyFactoryOperations"
-                               , "PolicyHelper"
-                               , "PolicyHolder"
-                               , "PolicyListHelper"
-                               , "PolicyListHolder"
-                               , "PolicyNode"
-                               , "PolicyOperations"
-                               , "PolicyQualifierInfo"
-                               , "PolicyTypeHelper"
-                               , "Polygon"
-                               , "PooledConnection"
-                               , "Popup"
-                               , "PopupFactory"
-                               , "PopupMenu"
-                               , "PopupMenuBorder"
-                               , "PopupMenuEvent"
-                               , "PopupMenuListener"
-                               , "PopupMenuUI"
-                               , "Port"
-                               , "PortUnreachableException"
-                               , "PortableRemoteObject"
-                               , "PortableRemoteObjectDelegate"
-                               , "Position"
-                               , "PreferenceChangeEvent"
-                               , "PreferenceChangeListener"
-                               , "Preferences"
-                               , "PreferencesFactory"
-                               , "PreparedStatement"
-                               , "PresentationDirection"
-                               , "Principal"
-                               , "PrincipalHolder"
-                               , "PrintEvent"
-                               , "PrintException"
-                               , "PrintGraphics"
-                               , "PrintJob"
-                               , "PrintJobAdapter"
-                               , "PrintJobAttribute"
-                               , "PrintJobAttributeEvent"
-                               , "PrintJobAttributeListener"
-                               , "PrintJobAttributeSet"
-                               , "PrintJobEvent"
-                               , "PrintJobListener"
-                               , "PrintQuality"
-                               , "PrintQualityType"
-                               , "PrintRequestAttribute"
-                               , "PrintRequestAttributeSet"
-                               , "PrintService"
-                               , "PrintServiceAttribute"
-                               , "PrintServiceAttributeEvent"
-                               , "PrintServiceAttributeListener"
-                               , "PrintServiceAttributeSet"
-                               , "PrintServiceLookup"
-                               , "PrintStream"
-                               , "PrintWriter"
-                               , "Printable"
-                               , "PrinterAbortException"
-                               , "PrinterException"
-                               , "PrinterGraphics"
-                               , "PrinterIOException"
-                               , "PrinterInfo"
-                               , "PrinterIsAcceptingJobs"
-                               , "PrinterJob"
-                               , "PrinterLocation"
-                               , "PrinterMakeAndModel"
-                               , "PrinterMessageFromOperator"
-                               , "PrinterMoreInfo"
-                               , "PrinterMoreInfoManufacturer"
-                               , "PrinterName"
-                               , "PrinterResolution"
-                               , "PrinterState"
-                               , "PrinterStateReason"
-                               , "PrinterStateReasons"
-                               , "PrinterURI"
-                               , "PrivateCredentialPermission"
-                               , "PrivateKey"
-                               , "PrivilegedAction"
-                               , "PrivilegedActionException"
-                               , "PrivilegedExceptionAction"
-                               , "Process"
-                               , "ProcessingInstruction"
-                               , "ProfileDataException"
-                               , "ProfileIdHelper"
-                               , "ProgressBarUI"
-                               , "ProgressMonitor"
-                               , "ProgressMonitorInputStream"
-                               , "Properties"
-                               , "PropertyChangeEvent"
-                               , "PropertyChangeListener"
-                               , "PropertyChangeListenerProxy"
-                               , "PropertyChangeSupport"
-                               , "PropertyDescriptor"
-                               , "PropertyEditor"
-                               , "PropertyEditorManager"
-                               , "PropertyEditorSupport"
-                               , "PropertyPermission"
-                               , "PropertyResourceBundle"
-                               , "PropertyVetoException"
-                               , "ProtectionDomain"
-                               , "ProtocolException"
-                               , "Provider"
-                               , "ProviderException"
-                               , "Proxy"
-                               , "ProxyLazyValue"
-                               , "PublicKey"
-                               , "PushbackInputStream"
-                               , "PushbackReader"
-                               , "PutField"
-                               , "QuadCurve2D"
-                               , "QueuedJobCount"
-                               , "RC2ParameterSpec"
-                               , "RC5ParameterSpec"
-                               , "READER"
-                               , "REQUEST_PROCESSING_POLICY_ID"
-                               , "RGBImageFilter"
-                               , "RMIClassLoader"
-                               , "RMIClassLoaderSpi"
-                               , "RMIClientSocketFactory"
-                               , "RMIFailureHandler"
-                               , "RMISecurityException"
-                               , "RMISecurityManager"
-                               , "RMIServerSocketFactory"
-                               , "RMISocketFactory"
-                               , "RSAKey"
-                               , "RSAKeyGenParameterSpec"
-                               , "RSAMultiPrimePrivateCrtKey"
-                               , "RSAMultiPrimePrivateCrtKeySpec"
-                               , "RSAOtherPrimeInfo"
-                               , "RSAPrivateCrtKey"
-                               , "RSAPrivateCrtKeySpec"
-                               , "RSAPrivateKey"
-                               , "RSAPrivateKeySpec"
-                               , "RSAPublicKey"
-                               , "RSAPublicKeySpec"
-                               , "RTFEditorKit"
-                               , "RadioButtonBorder"
-                               , "Random"
-                               , "RandomAccess"
-                               , "RandomAccessFile"
-                               , "Raster"
-                               , "RasterFormatException"
-                               , "RasterOp"
-                               , "ReadOnlyBufferException"
-                               , "ReadableByteChannel"
-                               , "Reader"
-                               , "Receiver"
-                               , "Rectangle"
-                               , "Rectangle2D"
-                               , "RectangularShape"
-                               , "Ref"
-                               , "RefAddr"
-                               , "Reference"
-                               , "ReferenceQueue"
-                               , "ReferenceUriSchemesSupported"
-                               , "Referenceable"
-                               , "ReferralException"
-                               , "ReflectPermission"
-                               , "RefreshFailedException"
-                               , "Refreshable"
-                               , "RegisterableService"
-                               , "Registry"
-                               , "RegistryHandler"
-                               , "RemarshalException"
-                               , "Remote"
-                               , "RemoteCall"
-                               , "RemoteException"
-                               , "RemoteObject"
-                               , "RemoteRef"
-                               , "RemoteServer"
-                               , "RemoteStub"
-                               , "RenderContext"
-                               , "RenderableImage"
-                               , "RenderableImageOp"
-                               , "RenderableImageProducer"
-                               , "RenderedImage"
-                               , "RenderedImageFactory"
-                               , "Renderer"
-                               , "RenderingHints"
-                               , "RepaintManager"
-                               , "ReplicateScaleFilter"
-                               , "RepositoryIdHelper"
-                               , "Request"
-                               , "RequestInfo"
-                               , "RequestInfoOperations"
-                               , "RequestProcessingPolicy"
-                               , "RequestProcessingPolicyOperations"
-                               , "RequestProcessingPolicyValue"
-                               , "RequestingUserName"
-                               , "RescaleOp"
-                               , "ResolutionSyntax"
-                               , "ResolveResult"
-                               , "Resolver"
-                               , "ResourceBundle"
-                               , "ResponseHandler"
-                               , "Result"
-                               , "ResultSet"
-                               , "ResultSetMetaData"
-                               , "ReverbType"
-                               , "Robot"
-                               , "RolloverButtonBorder"
-                               , "RootPaneContainer"
-                               , "RootPaneUI"
-                               , "RoundRectangle2D"
-                               , "RowMapper"
-                               , "RowSet"
-                               , "RowSetEvent"
-                               , "RowSetInternal"
-                               , "RowSetListener"
-                               , "RowSetMetaData"
-                               , "RowSetReader"
-                               , "RowSetWriter"
-                               , "RuleBasedCollator"
-                               , "RunTime"
-                               , "RunTimeOperations"
-                               , "Runnable"
-                               , "Runtime"
-                               , "RuntimeException"
-                               , "RuntimePermission"
-                               , "SAXException"
-                               , "SAXNotRecognizedException"
-                               , "SAXNotSupportedException"
-                               , "SAXParseException"
-                               , "SAXParser"
-                               , "SAXParserFactory"
-                               , "SAXResult"
-                               , "SAXSource"
-                               , "SAXTransformerFactory"
-                               , "SERVANT_RETENTION_POLICY_ID"
-                               , "SERVICE_FORMATTED"
-                               , "SQLData"
-                               , "SQLException"
-                               , "SQLInput"
-                               , "SQLOutput"
-                               , "SQLPermission"
-                               , "SQLWarning"
-                               , "SSLContext"
-                               , "SSLContextSpi"
-                               , "SSLException"
-                               , "SSLHandshakeException"
-                               , "SSLKeyException"
-                               , "SSLPeerUnverifiedException"
-                               , "SSLPermission"
-                               , "SSLProtocolException"
-                               , "SSLServerSocket"
-                               , "SSLServerSocketFactory"
-                               , "SSLSession"
-                               , "SSLSessionBindingEvent"
-                               , "SSLSessionBindingListener"
-                               , "SSLSessionContext"
-                               , "SSLSocket"
-                               , "SSLSocketFactory"
-                               , "STRING"
-                               , "SUCCESSFUL"
-                               , "SYNC_WITH_TRANSPORT"
-                               , "SYSTEM_EXCEPTION"
-                               , "SampleModel"
-                               , "Savepoint"
-                               , "ScatteringByteChannel"
-                               , "SchemaViolationException"
-                               , "ScrollBarUI"
-                               , "ScrollPane"
-                               , "ScrollPaneAdjustable"
-                               , "ScrollPaneBorder"
-                               , "ScrollPaneConstants"
-                               , "ScrollPaneLayout"
-                               , "ScrollPaneUI"
-                               , "Scrollable"
-                               , "Scrollbar"
-                               , "SealedObject"
-                               , "SearchControls"
-                               , "SearchResult"
-                               , "SecretKey"
-                               , "SecretKeyFactory"
-                               , "SecretKeyFactorySpi"
-                               , "SecretKeySpec"
-                               , "SecureClassLoader"
-                               , "SecureRandom"
-                               , "SecureRandomSpi"
-                               , "Security"
-                               , "SecurityException"
-                               , "SecurityManager"
-                               , "SecurityPermission"
-                               , "Segment"
-                               , "SelectableChannel"
-                               , "SelectionKey"
-                               , "Selector"
-                               , "SelectorProvider"
-                               , "Separator"
-                               , "SeparatorUI"
-                               , "Sequence"
-                               , "SequenceInputStream"
-                               , "Sequencer"
-                               , "Serializable"
-                               , "SerializablePermission"
-                               , "Servant"
-                               , "ServantActivator"
-                               , "ServantActivatorHelper"
-                               , "ServantActivatorOperations"
-                               , "ServantActivatorPOA"
-                               , "ServantAlreadyActive"
-                               , "ServantAlreadyActiveHelper"
-                               , "ServantLocator"
-                               , "ServantLocatorHelper"
-                               , "ServantLocatorOperations"
-                               , "ServantLocatorPOA"
-                               , "ServantManager"
-                               , "ServantManagerOperations"
-                               , "ServantNotActive"
-                               , "ServantNotActiveHelper"
-                               , "ServantObject"
-                               , "ServantRetentionPolicy"
-                               , "ServantRetentionPolicyOperations"
-                               , "ServantRetentionPolicyValue"
-                               , "ServerCloneException"
-                               , "ServerError"
-                               , "ServerException"
-                               , "ServerNotActiveException"
-                               , "ServerRef"
-                               , "ServerRequest"
-                               , "ServerRequestInfo"
-                               , "ServerRequestInfoOperations"
-                               , "ServerRequestInterceptor"
-                               , "ServerRequestInterceptorOperations"
-                               , "ServerRuntimeException"
-                               , "ServerSocket"
-                               , "ServerSocketChannel"
-                               , "ServerSocketFactory"
-                               , "ServiceContext"
-                               , "ServiceContextHelper"
-                               , "ServiceContextHolder"
-                               , "ServiceContextListHelper"
-                               , "ServiceContextListHolder"
-                               , "ServiceDetail"
-                               , "ServiceDetailHelper"
-                               , "ServiceIdHelper"
-                               , "ServiceInformation"
-                               , "ServiceInformationHelper"
-                               , "ServiceInformationHolder"
-                               , "ServicePermission"
-                               , "ServiceRegistry"
-                               , "ServiceUI"
-                               , "ServiceUIFactory"
-                               , "ServiceUnavailableException"
-                               , "Set"
-                               , "SetOfIntegerSyntax"
-                               , "SetOverrideType"
-                               , "SetOverrideTypeHelper"
-                               , "Severity"
-                               , "Shape"
-                               , "ShapeGraphicAttribute"
-                               , "SheetCollate"
-                               , "Short"
-                               , "ShortBuffer"
-                               , "ShortBufferException"
-                               , "ShortHolder"
-                               , "ShortLookupTable"
-                               , "ShortMessage"
-                               , "ShortSeqHelper"
-                               , "ShortSeqHolder"
-                               , "Sides"
-                               , "SidesType"
-                               , "Signature"
-                               , "SignatureException"
-                               , "SignatureSpi"
-                               , "SignedObject"
-                               , "Signer"
-                               , "SimpleAttributeSet"
-                               , "SimpleBeanInfo"
-                               , "SimpleDateFormat"
-                               , "SimpleDoc"
-                               , "SimpleFormatter"
-                               , "SimpleTimeZone"
-                               , "SinglePixelPackedSampleModel"
-                               , "SingleSelectionModel"
-                               , "SinkChannel"
-                               , "Size2DSyntax"
-                               , "SizeLimitExceededException"
-                               , "SizeRequirements"
-                               , "SizeSequence"
-                               , "Skeleton"
-                               , "SkeletonMismatchException"
-                               , "SkeletonNotFoundException"
-                               , "SliderUI"
-                               , "Socket"
-                               , "SocketAddress"
-                               , "SocketChannel"
-                               , "SocketException"
-                               , "SocketFactory"
-                               , "SocketHandler"
-                               , "SocketImpl"
-                               , "SocketImplFactory"
-                               , "SocketOptions"
-                               , "SocketPermission"
-                               , "SocketSecurityException"
-                               , "SocketTimeoutException"
-                               , "SoftBevelBorder"
-                               , "SoftReference"
-                               , "SortedMap"
-                               , "SortedSet"
-                               , "SortingFocusTraversalPolicy"
-                               , "Soundbank"
-                               , "SoundbankReader"
-                               , "SoundbankResource"
-                               , "Source"
-                               , "SourceChannel"
-                               , "SourceDataLine"
-                               , "SourceLocator"
-                               , "SpinnerDateModel"
-                               , "SpinnerListModel"
-                               , "SpinnerModel"
-                               , "SpinnerNumberModel"
-                               , "SpinnerUI"
-                               , "SplitPaneBorder"
-                               , "SplitPaneUI"
-                               , "Spring"
-                               , "SpringLayout"
-                               , "Stack"
-                               , "StackOverflowError"
-                               , "StackTraceElement"
-                               , "StartTlsRequest"
-                               , "StartTlsResponse"
-                               , "State"
-                               , "StateEdit"
-                               , "StateEditable"
-                               , "StateFactory"
-                               , "Statement"
-                               , "StreamCorruptedException"
-                               , "StreamHandler"
-                               , "StreamPrintService"
-                               , "StreamPrintServiceFactory"
-                               , "StreamResult"
-                               , "StreamSource"
-                               , "StreamTokenizer"
-                               , "Streamable"
-                               , "StreamableValue"
-                               , "StrictMath"
-                               , "String"
-                               , "StringBuffer"
-                               , "StringBufferInputStream"
-                               , "StringCharacterIterator"
-                               , "StringContent"
-                               , "StringHolder"
-                               , "StringIndexOutOfBoundsException"
-                               , "StringNameHelper"
-                               , "StringReader"
-                               , "StringRefAddr"
-                               , "StringSelection"
-                               , "StringSeqHelper"
-                               , "StringSeqHolder"
-                               , "StringTokenizer"
-                               , "StringValueHelper"
-                               , "StringWriter"
-                               , "Stroke"
-                               , "Struct"
-                               , "StructMember"
-                               , "StructMemberHelper"
-                               , "Stub"
-                               , "StubDelegate"
-                               , "StubNotFoundException"
-                               , "Style"
-                               , "StyleConstants"
-                               , "StyleContext"
-                               , "StyleSheet"
-                               , "StyledDocument"
-                               , "StyledEditorKit"
-                               , "StyledTextAction"
-                               , "Subject"
-                               , "SubjectDomainCombiner"
-                               , "Subset"
-                               , "SupportedValuesAttribute"
-                               , "SwingConstants"
-                               , "SwingPropertyChangeSupport"
-                               , "SwingUtilities"
-                               , "SyncFailedException"
-                               , "SyncMode"
-                               , "SyncScopeHelper"
-                               , "Synthesizer"
-                               , "SysexMessage"
-                               , "System"
-                               , "SystemColor"
-                               , "SystemException"
-                               , "SystemFlavorMap"
-                               , "TAG_ALTERNATE_IIOP_ADDRESS"
-                               , "TAG_CODE_SETS"
-                               , "TAG_INTERNET_IOP"
-                               , "TAG_JAVA_CODEBASE"
-                               , "TAG_MULTIPLE_COMPONENTS"
-                               , "TAG_ORB_TYPE"
-                               , "TAG_POLICIES"
-                               , "TCKind"
-                               , "THREAD_POLICY_ID"
-                               , "TRANSACTION_REQUIRED"
-                               , "TRANSACTION_ROLLEDBACK"
-                               , "TRANSIENT"
-                               , "TRANSPORT_RETRY"
-                               , "TabExpander"
-                               , "TabSet"
-                               , "TabStop"
-                               , "TabableView"
-                               , "TabbedPaneUI"
-                               , "TableCellEditor"
-                               , "TableCellRenderer"
-                               , "TableColumn"
-                               , "TableColumnModel"
-                               , "TableColumnModelEvent"
-                               , "TableColumnModelListener"
-                               , "TableHeaderBorder"
-                               , "TableHeaderUI"
-                               , "TableModel"
-                               , "TableModelEvent"
-                               , "TableModelListener"
-                               , "TableUI"
-                               , "TableView"
-                               , "Tag"
-                               , "TagElement"
-                               , "TaggedComponent"
-                               , "TaggedComponentHelper"
-                               , "TaggedComponentHolder"
-                               , "TaggedProfile"
-                               , "TaggedProfileHelper"
-                               , "TaggedProfileHolder"
-                               , "TargetDataLine"
-                               , "Templates"
-                               , "TemplatesHandler"
-                               , "Text"
-                               , "TextAction"
-                               , "TextArea"
-                               , "TextAttribute"
-                               , "TextComponent"
-                               , "TextEvent"
-                               , "TextField"
-                               , "TextFieldBorder"
-                               , "TextHitInfo"
-                               , "TextInputCallback"
-                               , "TextLayout"
-                               , "TextListener"
-                               , "TextMeasurer"
-                               , "TextOutputCallback"
-                               , "TextSyntax"
-                               , "TextUI"
-                               , "TexturePaint"
-                               , "Thread"
-                               , "ThreadDeath"
-                               , "ThreadGroup"
-                               , "ThreadLocal"
-                               , "ThreadPolicy"
-                               , "ThreadPolicyOperations"
-                               , "ThreadPolicyValue"
-                               , "Throwable"
-                               , "Tie"
-                               , "TileObserver"
-                               , "Time"
-                               , "TimeLimitExceededException"
-                               , "TimeZone"
-                               , "Timer"
-                               , "TimerTask"
-                               , "Timestamp"
-                               , "TitledBorder"
-                               , "TitledBorderUIResource"
-                               , "ToggleButtonBorder"
-                               , "ToggleButtonModel"
-                               , "TooManyListenersException"
-                               , "ToolBarBorder"
-                               , "ToolBarUI"
-                               , "ToolTipManager"
-                               , "ToolTipUI"
-                               , "Toolkit"
-                               , "Track"
-                               , "TransactionRequiredException"
-                               , "TransactionRolledbackException"
-                               , "TransactionService"
-                               , "TransferHandler"
-                               , "Transferable"
-                               , "TransformAttribute"
-                               , "Transformer"
-                               , "TransformerConfigurationException"
-                               , "TransformerException"
-                               , "TransformerFactory"
-                               , "TransformerFactoryConfigurationError"
-                               , "TransformerHandler"
-                               , "Transmitter"
-                               , "Transparency"
-                               , "TreeCellEditor"
-                               , "TreeCellRenderer"
-                               , "TreeControlIcon"
-                               , "TreeExpansionEvent"
-                               , "TreeExpansionListener"
-                               , "TreeFolderIcon"
-                               , "TreeLeafIcon"
-                               , "TreeMap"
-                               , "TreeModel"
-                               , "TreeModelEvent"
-                               , "TreeModelListener"
-                               , "TreeNode"
-                               , "TreePath"
-                               , "TreeSelectionEvent"
-                               , "TreeSelectionListener"
-                               , "TreeSelectionModel"
-                               , "TreeSet"
-                               , "TreeUI"
-                               , "TreeWillExpandListener"
-                               , "TrustAnchor"
-                               , "TrustManager"
-                               , "TrustManagerFactory"
-                               , "TrustManagerFactorySpi"
-                               , "Type"
-                               , "TypeCode"
-                               , "TypeCodeHolder"
-                               , "TypeMismatch"
-                               , "TypeMismatchHelper"
-                               , "Types"
-                               , "UID"
-                               , "UIDefaults"
-                               , "UIManager"
-                               , "UIResource"
-                               , "ULongLongSeqHelper"
-                               , "ULongLongSeqHolder"
-                               , "ULongSeqHelper"
-                               , "ULongSeqHolder"
-                               , "UNKNOWN"
-                               , "UNSUPPORTED_POLICY"
-                               , "UNSUPPORTED_POLICY_VALUE"
-                               , "URI"
-                               , "URIException"
-                               , "URIResolver"
-                               , "URISyntax"
-                               , "URISyntaxException"
-                               , "URL"
-                               , "URLClassLoader"
-                               , "URLConnection"
-                               , "URLDecoder"
-                               , "URLEncoder"
-                               , "URLStreamHandler"
-                               , "URLStreamHandlerFactory"
-                               , "URLStringHelper"
-                               , "USER_EXCEPTION"
-                               , "UShortSeqHelper"
-                               , "UShortSeqHolder"
-                               , "UTFDataFormatException"
-                               , "UndeclaredThrowableException"
-                               , "UnderlineAction"
-                               , "UndoManager"
-                               , "UndoableEdit"
-                               , "UndoableEditEvent"
-                               , "UndoableEditListener"
-                               , "UndoableEditSupport"
-                               , "UnexpectedException"
-                               , "UnicastRemoteObject"
-                               , "UnicodeBlock"
-                               , "UnionMember"
-                               , "UnionMemberHelper"
-                               , "UnknownEncoding"
-                               , "UnknownEncodingHelper"
-                               , "UnknownError"
-                               , "UnknownException"
-                               , "UnknownGroupException"
-                               , "UnknownHostException"
-                               , "UnknownObjectException"
-                               , "UnknownServiceException"
-                               , "UnknownTag"
-                               , "UnknownUserException"
-                               , "UnknownUserExceptionHelper"
-                               , "UnknownUserExceptionHolder"
-                               , "UnmappableCharacterException"
-                               , "UnmarshalException"
-                               , "UnmodifiableSetException"
-                               , "UnrecoverableKeyException"
-                               , "Unreferenced"
-                               , "UnresolvedAddressException"
-                               , "UnresolvedPermission"
-                               , "UnsatisfiedLinkError"
-                               , "UnsolicitedNotification"
-                               , "UnsolicitedNotificationEvent"
-                               , "UnsolicitedNotificationListener"
-                               , "UnsupportedAddressTypeException"
-                               , "UnsupportedAudioFileException"
-                               , "UnsupportedCallbackException"
-                               , "UnsupportedCharsetException"
-                               , "UnsupportedClassVersionError"
-                               , "UnsupportedEncodingException"
-                               , "UnsupportedFlavorException"
-                               , "UnsupportedLookAndFeelException"
-                               , "UnsupportedOperationException"
-                               , "UserException"
-                               , "Util"
-                               , "UtilDelegate"
-                               , "Utilities"
-                               , "VMID"
-                               , "VM_ABSTRACT"
-                               , "VM_CUSTOM"
-                               , "VM_NONE"
-                               , "VM_TRUNCATABLE"
-                               , "ValueBase"
-                               , "ValueBaseHelper"
-                               , "ValueBaseHolder"
-                               , "ValueFactory"
-                               , "ValueHandler"
-                               , "ValueMember"
-                               , "ValueMemberHelper"
-                               , "VariableHeightLayoutCache"
-                               , "Vector"
-                               , "VerifyError"
-                               , "VersionSpecHelper"
-                               , "VetoableChangeListener"
-                               , "VetoableChangeListenerProxy"
-                               , "VetoableChangeSupport"
-                               , "View"
-                               , "ViewFactory"
-                               , "ViewportLayout"
-                               , "ViewportUI"
-                               , "VirtualMachineError"
-                               , "Visibility"
-                               , "VisibilityHelper"
-                               , "VoiceStatus"
-                               , "Void"
-                               , "VolatileImage"
-                               , "WCharSeqHelper"
-                               , "WCharSeqHolder"
-                               , "WStringSeqHelper"
-                               , "WStringSeqHolder"
-                               , "WStringValueHelper"
-                               , "WeakHashMap"
-                               , "WeakReference"
-                               , "Window"
-                               , "WindowAdapter"
-                               , "WindowConstants"
-                               , "WindowEvent"
-                               , "WindowFocusListener"
-                               , "WindowListener"
-                               , "WindowStateListener"
-                               , "WrappedPlainView"
-                               , "WritableByteChannel"
-                               , "WritableRaster"
-                               , "WritableRenderedImage"
-                               , "WriteAbortedException"
-                               , "Writer"
-                               , "WrongAdapter"
-                               , "WrongAdapterHelper"
-                               , "WrongPolicy"
-                               , "WrongPolicyHelper"
-                               , "WrongTransaction"
-                               , "WrongTransactionHelper"
-                               , "WrongTransactionHolder"
-                               , "X500Principal"
-                               , "X500PrivateCredential"
-                               , "X509CRL"
-                               , "X509CRLEntry"
-                               , "X509CRLSelector"
-                               , "X509CertSelector"
-                               , "X509Certificate"
-                               , "X509EncodedKeySpec"
-                               , "X509Extension"
-                               , "X509KeyManager"
-                               , "X509TrustManager"
-                               , "XAConnection"
-                               , "XADataSource"
-                               , "XAException"
-                               , "XAResource"
-                               , "XMLDecoder"
-                               , "XMLEncoder"
-                               , "XMLFilter"
-                               , "XMLFilterImpl"
-                               , "XMLFormatter"
-                               , "XMLReader"
-                               , "XMLReaderAdapter"
-                               , "XMLReaderFactory"
-                               , "Xid"
-                               , "ZipEntry"
-                               , "ZipException"
-                               , "ZipFile"
-                               , "ZipInputStream"
-                               , "ZipOutputStream"
-                               , "ZoneView"
-                               , "_BindingIteratorImplBase"
-                               , "_BindingIteratorStub"
-                               , "_DynAnyFactoryStub"
-                               , "_DynAnyStub"
-                               , "_DynArrayStub"
-                               , "_DynEnumStub"
-                               , "_DynFixedStub"
-                               , "_DynSequenceStub"
-                               , "_DynStructStub"
-                               , "_DynUnionStub"
-                               , "_DynValueStub"
-                               , "_IDLTypeStub"
-                               , "_NamingContextExtStub"
-                               , "_NamingContextImplBase"
-                               , "_NamingContextStub"
-                               , "_PolicyStub"
-                               , "_Remote_Stub"
-                               , "_ServantActivatorStub"
-                               , "_ServantLocatorStub"
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = AnyChar "fF"
-                              , rAttribute = FloatTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = StringDetect "ULL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LUL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LLU"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "UL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LU"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "U"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "L"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "//\\s*BEGIN.*$"
-                              , reCompiled = Just (compileRegex False "//\\s*BEGIN.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "//\\s*END.*$"
-                              , reCompiled = Just (compileRegex False "//\\s*END.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Java String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "!%&()+,-<=>?[]^{|}~"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Java Single-Line Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Java Multi-Line Comment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Jsp Single Quoted Custom Tag Value"
-          , Context
-              { cName = "Jsp Single Quoted Custom Tag Value"
-              , cSyntax = "JSP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<%--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%(!|=)?"
-                              , reCompiled = Just (compileRegex False "<%(!|=)?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Scriptlet" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Expression" ) ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Jsp Single Quoted Param Value"
-          , Context
-              { cName = "Jsp Single Quoted Param Value"
-              , cSyntax = "JSP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<%--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%(!|=)?"
-                              , reCompiled = Just (compileRegex False "<%(!|=)?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Scriptlet" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Expression" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Jsp Standard Directive"
-          , Context
-              { cName = "Jsp Standard Directive"
-              , cSyntax = "JSP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '%' '>'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*=\\s*"
-                              , reCompiled = Just (compileRegex False "\\s*=\\s*")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "JSP" , "Jsp Standard Directive Value" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<%--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%(!|=)?"
-                              , reCompiled = Just (compileRegex False "<%(!|=)?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Scriptlet" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Expression" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\s*\\/?\\s*\\$?\\w*:\\$?\\w*"
-                              , reCompiled =
-                                  Just (compileRegex False "<\\s*\\/?\\s*\\$?\\w*:\\$?\\w*")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Custom Tag" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Jsp Standard Directive Value"
-          , Context
-              { cName = "Jsp Standard Directive Value"
-              , cSyntax = "JSP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<%--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%(!|=)?"
-                              , reCompiled = Just (compileRegex False "<%(!|=)?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Scriptlet" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Expression" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "JSP" , "Jsp Double Quoted Param Value" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "JSP" , "Jsp Single Quoted Param Value" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '%' '>'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Jsp Xml Directive"
-          , Context
-              { cName = "Jsp Xml Directive"
-              , cSyntax = "JSP"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\/?\\s*>"
-                              , reCompiled = Just (compileRegex False "\\s*\\/?\\s*>")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*=\\s*"
-                              , reCompiled = Just (compileRegex False "\\s*=\\s*")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Xml Directive Value" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<%--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%(!|=)?"
-                              , reCompiled = Just (compileRegex False "<%(!|=)?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Scriptlet" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Expression" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Jsp Xml Directive Value"
-          , Context
-              { cName = "Jsp Xml Directive Value"
-              , cSyntax = "JSP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<%--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%(!|=)?"
-                              , reCompiled = Just (compileRegex False "<%(!|=)?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Scriptlet" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Expression" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "JSP" , "Jsp Double Quoted Param Value" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "JSP" , "Jsp Single Quoted Param Value" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\/?\\s*>"
-                              , reCompiled = Just (compileRegex False "\\s*\\/?\\s*>")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "JSP"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%@\\s*[a-zA-Z0-9_\\.]*"
-                              , reCompiled = Just (compileRegex False "<%@\\s*[a-zA-Z0-9_\\.]*")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Standard Directive" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\s*jsp:(declaration|expression|scriptlet)\\s*>"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False "<\\s*jsp:(declaration|expression|scriptlet)\\s*>")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Scriptlet" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\s*\\/?s*jsp:[a-zA-Z0-9_\\.]*"
-                              , reCompiled =
-                                  Just (compileRegex False "<\\s*\\/?s*jsp:[a-zA-Z0-9_\\.]*")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Xml Directive" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<%--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%(!|=)?"
-                              , reCompiled = Just (compileRegex False "<%(!|=)?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Scriptlet" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Html Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Expression" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\s*\\/?\\s*\\$?[a-zA-Z0-9_]*:\\$?[a-zA-Z0-9_]*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False "<\\s*\\/?\\s*\\$?[a-zA-Z0-9_]*:\\$?[a-zA-Z0-9_]*")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Jsp Custom Tag" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<![CDATA["
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "]]>"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\s*\\/?\\s*[a-zA-Z0-9_]*"
-                              , reCompiled =
-                                  Just (compileRegex False "<\\s*\\/?\\s*[a-zA-Z0-9_]*")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "JSP" , "Html Attribute" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Rob Martin (rob@gamepimp.com)"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.jsp" , "*.JSP" ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"JSP\", sFilename = \"jsp.xml\", sShortname = \"Jsp\", sContexts = fromList [(\"Html Attribute\",Context {cName = \"Html Attribute\", cSyntax = \"JSP\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\/?>\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*=\\\\s*\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Html Value\")]},Rule {rMatcher = StringDetect \"<%--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<%(!|=)?\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Scriptlet\")]},Rule {rMatcher = Detect2Chars '$' '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Expression\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Html Comment\",Context {cName = \"Html Comment\", cSyntax = \"JSP\", cRules = [Rule {rMatcher = StringDetect \"<%--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<%(!|=)?\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Scriptlet\")]},Rule {rMatcher = Detect2Chars '$' '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Expression\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\/*-->\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Html Double Quoted Value\",Context {cName = \"Html Double Quoted Value\", cSyntax = \"JSP\", cRules = [Rule {rMatcher = StringDetect \"<%--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<%(!|=)?\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Scriptlet\")]},Rule {rMatcher = Detect2Chars '$' '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Expression\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\s*\\\\/?\\\\s*\\\\$?\\\\w*:\\\\$?\\\\w*\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Custom Tag\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\"|&quot;|&#34;)\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Html Single Quoted Value\",Context {cName = \"Html Single Quoted Value\", cSyntax = \"JSP\", cRules = [Rule {rMatcher = StringDetect \"<%--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<%(!|=)?\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Scriptlet\")]},Rule {rMatcher = Detect2Chars '$' '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Expression\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\s*\\\\/?\\\\s*\\\\$?\\\\w*:\\\\$?\\\\w*\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Custom Tag\")]},Rule {rMatcher = RegExpr (RE {reString = \"('|&#39;)\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Html Unquoted Value\",Context {cName = \"Html Unquoted Value\", cSyntax = \"JSP\", cRules = [Rule {rMatcher = StringDetect \"<%--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<%(!|=)?\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Scriptlet\")]},Rule {rMatcher = Detect2Chars '$' '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Expression\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\s*\\\\/?\\\\s*\\\\$?\\\\w*:\\\\$?\\\\w*\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Custom Tag\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\/?>\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Html Value\",Context {cName = \"Html Value\", cSyntax = \"JSP\", cRules = [Rule {rMatcher = StringDetect \"<%--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<%(!|=)?\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Scriptlet\")]},Rule {rMatcher = Detect2Chars '$' '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Expression\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\s*\\\\/?\\\\s*\\\\$?\\\\w*:\\\\$?\\\\w*\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Custom Tag\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\"|&quot;|&#34;)\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Html Double Quoted Value\")]},Rule {rMatcher = RegExpr (RE {reString = \"('|&#39;)\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Html Single Quoted Value\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*#?-?_?\\\\.?[a-zA-Z0-9]*\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Html Unquoted Value\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\/?>\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Java Multi-Line Comment\",Context {cName = \"Java Multi-Line Comment\", cSyntax = \"JSP\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Java Single-Line Comment\",Context {cName = \"Java Single-Line Comment\", cSyntax = \"JSP\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Java String\",Context {cName = \"Java String\", cSyntax = \"JSP\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Jsp Comment\",Context {cName = \"Jsp Comment\", cSyntax = \"JSP\", cRules = [Rule {rMatcher = StringDetect \"--%>\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Jsp Custom Tag\",Context {cName = \"Jsp Custom Tag\", cSyntax = \"JSP\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\/?>\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*=\\\\s*\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Custom Tag Value\")]},Rule {rMatcher = StringDetect \"<%--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<%(!|=)?\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Scriptlet\")]},Rule {rMatcher = Detect2Chars '$' '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Expression\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Jsp Custom Tag Value\",Context {cName = \"Jsp Custom Tag Value\", cSyntax = \"JSP\", cRules = [Rule {rMatcher = StringDetect \"<%--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<%(!|=)?\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Scriptlet\")]},Rule {rMatcher = Detect2Chars '$' '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Expression\")]},Rule {rMatcher = DetectChar '\"', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Double Quoted Custom Tag Value\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Single Quoted Custom Tag Value\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\/?>\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Jsp Double Quoted Custom Tag Value\",Context {cName = \"Jsp Double Quoted Custom Tag Value\", cSyntax = \"JSP\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = StringDetect \"<%--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<%(!|=)?\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Scriptlet\")]},Rule {rMatcher = Detect2Chars '$' '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Expression\")]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Jsp Double Quoted Param Value\",Context {cName = \"Jsp Double Quoted Param Value\", cSyntax = \"JSP\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = StringDetect \"<%--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<%(!|=)?\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Scriptlet\")]},Rule {rMatcher = Detect2Chars '$' '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Expression\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Jsp Expression\",Context {cName = \"Jsp Expression\", cSyntax = \"JSP\", cRules = [Rule {rMatcher = StringDetect \"'${'\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"abstract\",\"assert\",\"break\",\"case\",\"catch\",\"class\",\"continue\",\"default\",\"do\",\"else\",\"extends\",\"false\",\"finally\",\"for\",\"goto\",\"if\",\"implements\",\"import\",\"instanceof\",\"interface\",\"native\",\"new\",\"null\",\"package\",\"private\",\"protected\",\"public\",\"return\",\"strictfp\",\"super\",\"switch\",\"synchronized\",\"this\",\"throw\",\"throws\",\"transient\",\"true\",\"try\",\"volatile\",\"while\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"and\",\"div\",\"empty\",\"eq\",\"false\",\"ge\",\"gt\",\"instanceof\",\"le\",\"lt\",\"mod\",\"ne\",\"not\",\"null\",\"or\",\"true\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"boolean\",\"byte\",\"char\",\"const\",\"double\",\"final\",\"float\",\"int\",\"long\",\"short\",\"static\",\"void\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"ARG_IN\",\"ARG_INOUT\",\"ARG_OUT\",\"AWTError\",\"AWTEvent\",\"AWTEventListener\",\"AWTEventListenerProxy\",\"AWTEventMulticaster\",\"AWTException\",\"AWTKeyStroke\",\"AWTPermission\",\"AbstractAction\",\"AbstractBorder\",\"AbstractButton\",\"AbstractCellEditor\",\"AbstractCollection\",\"AbstractColorChooserPanel\",\"AbstractDocument\",\"AbstractFormatter\",\"AbstractFormatterFactory\",\"AbstractInterruptibleChannel\",\"AbstractLayoutCache\",\"AbstractList\",\"AbstractListModel\",\"AbstractMap\",\"AbstractMethodError\",\"AbstractPreferences\",\"AbstractSelectableChannel\",\"AbstractSelectionKey\",\"AbstractSelector\",\"AbstractSequentialList\",\"AbstractSet\",\"AbstractSpinnerModel\",\"AbstractTableModel\",\"AbstractUndoableEdit\",\"AbstractWriter\",\"AccessControlContext\",\"AccessControlException\",\"AccessController\",\"AccessException\",\"Accessible\",\"AccessibleAction\",\"AccessibleBundle\",\"AccessibleComponent\",\"AccessibleContext\",\"AccessibleEditableText\",\"AccessibleExtendedComponent\",\"AccessibleExtendedTable\",\"AccessibleHyperlink\",\"AccessibleHypertext\",\"AccessibleIcon\",\"AccessibleKeyBinding\",\"AccessibleObject\",\"AccessibleRelation\",\"AccessibleRelationSet\",\"AccessibleResourceBundle\",\"AccessibleRole\",\"AccessibleSelection\",\"AccessibleState\",\"AccessibleStateSet\",\"AccessibleTable\",\"AccessibleTableModelChange\",\"AccessibleText\",\"AccessibleValue\",\"AccountExpiredException\",\"Acl\",\"AclEntry\",\"AclNotFoundException\",\"Action\",\"ActionEvent\",\"ActionListener\",\"ActionMap\",\"ActionMapUIResource\",\"Activatable\",\"ActivateFailedException\",\"ActivationDesc\",\"ActivationException\",\"ActivationGroup\",\"ActivationGroupDesc\",\"ActivationGroupID\",\"ActivationGroup_Stub\",\"ActivationID\",\"ActivationInstantiator\",\"ActivationMonitor\",\"ActivationSystem\",\"Activator\",\"ActiveEvent\",\"ActiveValue\",\"AdapterActivator\",\"AdapterActivatorOperations\",\"AdapterAlreadyExists\",\"AdapterAlreadyExistsHelper\",\"AdapterInactive\",\"AdapterInactiveHelper\",\"AdapterNonExistent\",\"AdapterNonExistentHelper\",\"AddressHelper\",\"Adjustable\",\"AdjustmentEvent\",\"AdjustmentListener\",\"Adler32\",\"AffineTransform\",\"AffineTransformOp\",\"AlgorithmParameterGenerator\",\"AlgorithmParameterGeneratorSpi\",\"AlgorithmParameterSpec\",\"AlgorithmParameters\",\"AlgorithmParametersSpi\",\"AlignmentAction\",\"AllPermission\",\"AlphaComposite\",\"AlreadyBound\",\"AlreadyBoundException\",\"AlreadyBoundHelper\",\"AlreadyBoundHolder\",\"AlreadyConnectedException\",\"AncestorEvent\",\"AncestorListener\",\"Annotation\",\"Any\",\"AnyHolder\",\"AnySeqHelper\",\"AnySeqHolder\",\"AppConfigurationEntry\",\"Applet\",\"AppletContext\",\"AppletInitializer\",\"AppletStub\",\"ApplicationException\",\"Arc2D\",\"Area\",\"AreaAveragingScaleFilter\",\"ArithmeticException\",\"Array\",\"ArrayIndexOutOfBoundsException\",\"ArrayList\",\"ArrayStoreException\",\"Arrays\",\"AssertionError\",\"AsyncBoxView\",\"AsynchronousCloseException\",\"Attr\",\"Attribute\",\"AttributeContext\",\"AttributeException\",\"AttributeInUseException\",\"AttributeList\",\"AttributeListImpl\",\"AttributeModificationException\",\"AttributeSet\",\"AttributeSetUtilities\",\"AttributeUndoableEdit\",\"AttributedCharacterIterator\",\"AttributedString\",\"Attributes\",\"AttributesImpl\",\"AudioClip\",\"AudioFileFormat\",\"AudioFileReader\",\"AudioFileWriter\",\"AudioFormat\",\"AudioInputStream\",\"AudioPermission\",\"AudioSystem\",\"AuthPermission\",\"AuthenticationException\",\"AuthenticationNotSupportedException\",\"Authenticator\",\"Autoscroll\",\"BAD_CONTEXT\",\"BAD_INV_ORDER\",\"BAD_OPERATION\",\"BAD_PARAM\",\"BAD_POLICY\",\"BAD_POLICY_TYPE\",\"BAD_POLICY_VALUE\",\"BAD_TYPECODE\",\"BCSIterator\",\"BCSSServiceProvider\",\"BYTE_ARRAY\",\"BackingStoreException\",\"BadKind\",\"BadLocationException\",\"BadPaddingException\",\"BandCombineOp\",\"BandedSampleModel\",\"BasicArrowButton\",\"BasicAttribute\",\"BasicAttributes\",\"BasicBorders\",\"BasicButtonListener\",\"BasicButtonUI\",\"BasicCaret\",\"BasicCheckBoxMenuItemUI\",\"BasicCheckBoxUI\",\"BasicColorChooserUI\",\"BasicComboBoxEditor\",\"BasicComboBoxRenderer\",\"BasicComboBoxUI\",\"BasicComboPopup\",\"BasicDesktopIconUI\",\"BasicDesktopPaneUI\",\"BasicDirectoryModel\",\"BasicEditorPaneUI\",\"BasicFileChooserUI\",\"BasicFormattedTextFieldUI\",\"BasicGraphicsUtils\",\"BasicHTML\",\"BasicHighlighter\",\"BasicIconFactory\",\"BasicInternalFrameTitlePane\",\"BasicInternalFrameUI\",\"BasicLabelUI\",\"BasicListUI\",\"BasicLookAndFeel\",\"BasicMenuBarUI\",\"BasicMenuItemUI\",\"BasicMenuUI\",\"BasicOptionPaneUI\",\"BasicPanelUI\",\"BasicPasswordFieldUI\",\"BasicPermission\",\"BasicPopupMenuSeparatorUI\",\"BasicPopupMenuUI\",\"BasicProgressBarUI\",\"BasicRadioButtonMenuItemUI\",\"BasicRadioButtonUI\",\"BasicRootPaneUI\",\"BasicScrollBarUI\",\"BasicScrollPaneUI\",\"BasicSeparatorUI\",\"BasicSliderUI\",\"BasicSpinnerUI\",\"BasicSplitPaneDivider\",\"BasicSplitPaneUI\",\"BasicStroke\",\"BasicTabbedPaneUI\",\"BasicTableHeaderUI\",\"BasicTableUI\",\"BasicTextAreaUI\",\"BasicTextFieldUI\",\"BasicTextPaneUI\",\"BasicTextUI\",\"BasicToggleButtonUI\",\"BasicToolBarSeparatorUI\",\"BasicToolBarUI\",\"BasicToolTipUI\",\"BasicTreeUI\",\"BasicViewportUI\",\"BatchUpdateException\",\"BeanContext\",\"BeanContextChild\",\"BeanContextChildComponentProxy\",\"BeanContextChildSupport\",\"BeanContextContainerProxy\",\"BeanContextEvent\",\"BeanContextMembershipEvent\",\"BeanContextMembershipListener\",\"BeanContextProxy\",\"BeanContextServiceAvailableEvent\",\"BeanContextServiceProvider\",\"BeanContextServiceProviderBeanInfo\",\"BeanContextServiceRevokedEvent\",\"BeanContextServiceRevokedListener\",\"BeanContextServices\",\"BeanContextServicesListener\",\"BeanContextServicesSupport\",\"BeanContextSupport\",\"BeanDescriptor\",\"BeanInfo\",\"Beans\",\"BeepAction\",\"BevelBorder\",\"BevelBorderUIResource\",\"Bias\",\"Bidi\",\"BigDecimal\",\"BigInteger\",\"BinaryRefAddr\",\"BindException\",\"Binding\",\"BindingHelper\",\"BindingHolder\",\"BindingIterator\",\"BindingIteratorHelper\",\"BindingIteratorHolder\",\"BindingIteratorOperations\",\"BindingIteratorPOA\",\"BindingListHelper\",\"BindingListHolder\",\"BindingType\",\"BindingTypeHelper\",\"BindingTypeHolder\",\"BitSet\",\"Blob\",\"BlockView\",\"BoldAction\",\"Book\",\"Boolean\",\"BooleanControl\",\"BooleanHolder\",\"BooleanSeqHelper\",\"BooleanSeqHolder\",\"Border\",\"BorderFactory\",\"BorderLayout\",\"BorderUIResource\",\"BoundedRangeModel\",\"Bounds\",\"Box\",\"BoxLayout\",\"BoxPainter\",\"BoxView\",\"BoxedValueHelper\",\"BreakIterator\",\"Buffer\",\"BufferCapabilities\",\"BufferOverflowException\",\"BufferStrategy\",\"BufferUnderflowException\",\"BufferedImage\",\"BufferedImageFilter\",\"BufferedImageOp\",\"BufferedInputStream\",\"BufferedOutputStream\",\"BufferedReader\",\"BufferedWriter\",\"Button\",\"ButtonAreaLayout\",\"ButtonBorder\",\"ButtonGroup\",\"ButtonModel\",\"ButtonUI\",\"Byte\",\"ByteArrayInputStream\",\"ByteArrayOutputStream\",\"ByteBuffer\",\"ByteChannel\",\"ByteHolder\",\"ByteLookupTable\",\"ByteOrder\",\"CDATASection\",\"CHAR_ARRAY\",\"CMMException\",\"COMM_FAILURE\",\"CRC32\",\"CRL\",\"CRLException\",\"CRLSelector\",\"CSS\",\"CTX_RESTRICT_SCOPE\",\"Calendar\",\"CallableStatement\",\"Callback\",\"CallbackHandler\",\"CancelablePrintJob\",\"CancelledKeyException\",\"CannotProceed\",\"CannotProceedException\",\"CannotProceedHelper\",\"CannotProceedHolder\",\"CannotRedoException\",\"CannotUndoException\",\"Canvas\",\"CardLayout\",\"Caret\",\"CaretEvent\",\"CaretListener\",\"CaretPolicy\",\"CellEditor\",\"CellEditorListener\",\"CellRendererPane\",\"CertPath\",\"CertPathBuilder\",\"CertPathBuilderException\",\"CertPathBuilderResult\",\"CertPathBuilderSpi\",\"CertPathParameters\",\"CertPathRep\",\"CertPathValidator\",\"CertPathValidatorException\",\"CertPathValidatorResult\",\"CertPathValidatorSpi\",\"CertSelector\",\"CertStore\",\"CertStoreException\",\"CertStoreParameters\",\"CertStoreSpi\",\"Certificate\",\"CertificateEncodingException\",\"CertificateException\",\"CertificateExpiredException\",\"CertificateFactory\",\"CertificateFactorySpi\",\"CertificateNotYetValidException\",\"CertificateParsingException\",\"CertificateRep\",\"ChangeEvent\",\"ChangeListener\",\"ChangedCharSetException\",\"Channel\",\"ChannelBinding\",\"Channels\",\"CharArrayReader\",\"CharArrayWriter\",\"CharBuffer\",\"CharConversionException\",\"CharHolder\",\"CharSeqHelper\",\"CharSeqHolder\",\"CharSequence\",\"Character\",\"CharacterAttribute\",\"CharacterCodingException\",\"CharacterConstants\",\"CharacterData\",\"CharacterIterator\",\"Charset\",\"CharsetDecoder\",\"CharsetEncoder\",\"CharsetProvider\",\"Checkbox\",\"CheckboxGroup\",\"CheckboxMenuItem\",\"CheckedInputStream\",\"CheckedOutputStream\",\"Checksum\",\"Choice\",\"ChoiceCallback\",\"ChoiceFormat\",\"Chromaticity\",\"Cipher\",\"CipherInputStream\",\"CipherOutputStream\",\"CipherSpi\",\"Class\",\"ClassCastException\",\"ClassCircularityError\",\"ClassDesc\",\"ClassFormatError\",\"ClassLoader\",\"ClassNotFoundException\",\"ClientRequestInfo\",\"ClientRequestInfoOperations\",\"ClientRequestInterceptor\",\"ClientRequestInterceptorOperations\",\"Clip\",\"Clipboard\",\"ClipboardOwner\",\"Clob\",\"CloneNotSupportedException\",\"Cloneable\",\"ClosedByInterruptException\",\"ClosedChannelException\",\"ClosedSelectorException\",\"CodeSets\",\"CodeSource\",\"Codec\",\"CodecFactory\",\"CodecFactoryHelper\",\"CodecFactoryOperations\",\"CodecOperations\",\"CoderMalfunctionError\",\"CoderResult\",\"CodingErrorAction\",\"CollationElementIterator\",\"CollationKey\",\"Collator\",\"Collection\",\"CollectionCertStoreParameters\",\"Collections\",\"Color\",\"ColorAttribute\",\"ColorChooserComponentFactory\",\"ColorChooserUI\",\"ColorConstants\",\"ColorConvertOp\",\"ColorModel\",\"ColorSelectionModel\",\"ColorSpace\",\"ColorSupported\",\"ColorType\",\"ColorUIResource\",\"ComboBoxEditor\",\"ComboBoxModel\",\"ComboBoxUI\",\"ComboPopup\",\"CommandEnvironment\",\"Comment\",\"CommunicationException\",\"Comparable\",\"Comparator\",\"Compiler\",\"CompletionStatus\",\"CompletionStatusHelper\",\"Component\",\"ComponentAdapter\",\"ComponentColorModel\",\"ComponentEvent\",\"ComponentIdHelper\",\"ComponentInputMap\",\"ComponentInputMapUIResource\",\"ComponentListener\",\"ComponentOrientation\",\"ComponentSampleModel\",\"ComponentUI\",\"ComponentView\",\"Composite\",\"CompositeContext\",\"CompositeName\",\"CompositeView\",\"CompoundBorder\",\"CompoundBorderUIResource\",\"CompoundControl\",\"CompoundEdit\",\"CompoundName\",\"Compression\",\"ConcurrentModificationException\",\"Configuration\",\"ConfigurationException\",\"ConfirmationCallback\",\"ConnectException\",\"ConnectIOException\",\"Connection\",\"ConnectionEvent\",\"ConnectionEventListener\",\"ConnectionPendingException\",\"ConnectionPoolDataSource\",\"ConsoleHandler\",\"Constraints\",\"Constructor\",\"Container\",\"ContainerAdapter\",\"ContainerEvent\",\"ContainerListener\",\"ContainerOrderFocusTraversalPolicy\",\"Content\",\"ContentHandler\",\"ContentHandlerFactory\",\"ContentModel\",\"Context\",\"ContextList\",\"ContextNotEmptyException\",\"ContextualRenderedImageFactory\",\"Control\",\"ControlFactory\",\"ControllerEventListener\",\"ConvolveOp\",\"CookieHolder\",\"Copies\",\"CopiesSupported\",\"CopyAction\",\"CredentialExpiredException\",\"CropImageFilter\",\"CubicCurve2D\",\"Currency\",\"Current\",\"CurrentHelper\",\"CurrentHolder\",\"CurrentOperations\",\"Cursor\",\"CustomMarshal\",\"CustomValue\",\"Customizer\",\"CutAction\",\"DATA_CONVERSION\",\"DESKeySpec\",\"DESedeKeySpec\",\"DGC\",\"DHGenParameterSpec\",\"DHKey\",\"DHParameterSpec\",\"DHPrivateKey\",\"DHPrivateKeySpec\",\"DHPublicKey\",\"DHPublicKeySpec\",\"DOMException\",\"DOMImplementation\",\"DOMLocator\",\"DOMResult\",\"DOMSource\",\"DSAKey\",\"DSAKeyPairGenerator\",\"DSAParameterSpec\",\"DSAParams\",\"DSAPrivateKey\",\"DSAPrivateKeySpec\",\"DSAPublicKey\",\"DSAPublicKeySpec\",\"DTD\",\"DTDConstants\",\"DTDHandler\",\"DataBuffer\",\"DataBufferByte\",\"DataBufferDouble\",\"DataBufferFloat\",\"DataBufferInt\",\"DataBufferShort\",\"DataBufferUShort\",\"DataFlavor\",\"DataFormatException\",\"DataInput\",\"DataInputStream\",\"DataLine\",\"DataOutput\",\"DataOutputStream\",\"DataSource\",\"DataTruncation\",\"DatabaseMetaData\",\"DatagramChannel\",\"DatagramPacket\",\"DatagramSocket\",\"DatagramSocketImpl\",\"DatagramSocketImplFactory\",\"Date\",\"DateEditor\",\"DateFormat\",\"DateFormatSymbols\",\"DateFormatter\",\"DateTimeAtCompleted\",\"DateTimeAtCreation\",\"DateTimeAtProcessing\",\"DateTimeSyntax\",\"DebugGraphics\",\"DecimalFormat\",\"DecimalFormatSymbols\",\"DeclHandler\",\"DefaultBoundedRangeModel\",\"DefaultButtonModel\",\"DefaultCaret\",\"DefaultCellEditor\",\"DefaultColorSelectionModel\",\"DefaultComboBoxModel\",\"DefaultDesktopManager\",\"DefaultEditor\",\"DefaultEditorKit\",\"DefaultFocusManager\",\"DefaultFocusTraversalPolicy\",\"DefaultFormatter\",\"DefaultFormatterFactory\",\"DefaultHandler\",\"DefaultHighlightPainter\",\"DefaultHighlighter\",\"DefaultKeyTypedAction\",\"DefaultKeyboardFocusManager\",\"DefaultListCellRenderer\",\"DefaultListModel\",\"DefaultListSelectionModel\",\"DefaultMenuLayout\",\"DefaultMetalTheme\",\"DefaultMutableTreeNode\",\"DefaultPersistenceDelegate\",\"DefaultSelectionType\",\"DefaultSingleSelectionModel\",\"DefaultStyledDocument\",\"DefaultTableCellRenderer\",\"DefaultTableColumnModel\",\"DefaultTableModel\",\"DefaultTextUI\",\"DefaultTreeCellEditor\",\"DefaultTreeCellRenderer\",\"DefaultTreeModel\",\"DefaultTreeSelectionModel\",\"DefinitionKind\",\"DefinitionKindHelper\",\"Deflater\",\"DeflaterOutputStream\",\"Delegate\",\"DelegationPermission\",\"DesignMode\",\"DesktopIconUI\",\"DesktopManager\",\"DesktopPaneUI\",\"Destination\",\"DestinationType\",\"DestroyFailedException\",\"Destroyable\",\"Dialog\",\"DialogType\",\"Dictionary\",\"DigestException\",\"DigestInputStream\",\"DigestOutputStream\",\"Dimension\",\"Dimension2D\",\"DimensionUIResource\",\"DirContext\",\"DirObjectFactory\",\"DirStateFactory\",\"DirectColorModel\",\"DirectoryManager\",\"DisplayMode\",\"DnDConstants\",\"Doc\",\"DocAttribute\",\"DocAttributeSet\",\"DocFlavor\",\"DocPrintJob\",\"Document\",\"DocumentBuilder\",\"DocumentBuilderFactory\",\"DocumentEvent\",\"DocumentFilter\",\"DocumentFragment\",\"DocumentHandler\",\"DocumentListener\",\"DocumentName\",\"DocumentParser\",\"DocumentType\",\"DomainCombiner\",\"DomainManager\",\"DomainManagerOperations\",\"Double\",\"DoubleBuffer\",\"DoubleHolder\",\"DoubleSeqHelper\",\"DoubleSeqHolder\",\"DragGestureEvent\",\"DragGestureListener\",\"DragGestureRecognizer\",\"DragSource\",\"DragSourceAdapter\",\"DragSourceContext\",\"DragSourceDragEvent\",\"DragSourceDropEvent\",\"DragSourceEvent\",\"DragSourceListener\",\"DragSourceMotionListener\",\"Driver\",\"DriverManager\",\"DriverPropertyInfo\",\"DropTarget\",\"DropTargetAdapter\",\"DropTargetAutoScroller\",\"DropTargetContext\",\"DropTargetDragEvent\",\"DropTargetDropEvent\",\"DropTargetEvent\",\"DropTargetListener\",\"DuplicateName\",\"DuplicateNameHelper\",\"DynAny\",\"DynAnyFactory\",\"DynAnyFactoryHelper\",\"DynAnyFactoryOperations\",\"DynAnyHelper\",\"DynAnyOperations\",\"DynAnySeqHelper\",\"DynArray\",\"DynArrayHelper\",\"DynArrayOperations\",\"DynEnum\",\"DynEnumHelper\",\"DynEnumOperations\",\"DynFixed\",\"DynFixedHelper\",\"DynFixedOperations\",\"DynSequence\",\"DynSequenceHelper\",\"DynSequenceOperations\",\"DynStruct\",\"DynStructHelper\",\"DynStructOperations\",\"DynUnion\",\"DynUnionHelper\",\"DynUnionOperations\",\"DynValue\",\"DynValueBox\",\"DynValueBoxOperations\",\"DynValueCommon\",\"DynValueCommonOperations\",\"DynValueHelper\",\"DynValueOperations\",\"DynamicImplementation\",\"DynamicUtilTreeNode\",\"ENCODING_CDR_ENCAPS\",\"EOFException\",\"EditorKit\",\"Element\",\"ElementChange\",\"ElementEdit\",\"ElementIterator\",\"ElementSpec\",\"Ellipse2D\",\"EmptyBorder\",\"EmptyBorderUIResource\",\"EmptySelectionModel\",\"EmptyStackException\",\"EncodedKeySpec\",\"Encoder\",\"Encoding\",\"EncryptedPrivateKeyInfo\",\"Engineering\",\"Entity\",\"EntityReference\",\"EntityResolver\",\"Entry\",\"EnumControl\",\"EnumSyntax\",\"Enumeration\",\"Environment\",\"Error\",\"ErrorHandler\",\"ErrorListener\",\"ErrorManager\",\"EtchedBorder\",\"EtchedBorderUIResource\",\"Event\",\"EventContext\",\"EventDirContext\",\"EventHandler\",\"EventListener\",\"EventListenerList\",\"EventListenerProxy\",\"EventObject\",\"EventQueue\",\"EventSetDescriptor\",\"EventType\",\"Exception\",\"ExceptionInInitializerError\",\"ExceptionList\",\"ExceptionListener\",\"ExemptionMechanism\",\"ExemptionMechanismException\",\"ExemptionMechanismSpi\",\"ExpandVetoException\",\"ExportException\",\"Expression\",\"ExtendedRequest\",\"ExtendedResponse\",\"Externalizable\",\"FREE_MEM\",\"FactoryConfigurationError\",\"FailedLoginException\",\"FeatureDescriptor\",\"Fidelity\",\"Field\",\"FieldBorder\",\"FieldNameHelper\",\"FieldPosition\",\"FieldView\",\"File\",\"FileCacheImageInputStream\",\"FileCacheImageOutputStream\",\"FileChannel\",\"FileChooserUI\",\"FileDescriptor\",\"FileDialog\",\"FileFilter\",\"FileHandler\",\"FileIcon16\",\"FileImageInputStream\",\"FileImageOutputStream\",\"FileInputStream\",\"FileLock\",\"FileLockInterruptionException\",\"FileNameMap\",\"FileNotFoundException\",\"FileOutputStream\",\"FilePermission\",\"FileReader\",\"FileSystemView\",\"FileView\",\"FileWriter\",\"FilenameFilter\",\"Filler\",\"Filter\",\"FilterBypass\",\"FilterInputStream\",\"FilterOutputStream\",\"FilterReader\",\"FilterWriter\",\"FilteredImageSource\",\"Finishings\",\"FixedHeightLayoutCache\",\"FixedHolder\",\"FlatteningPathIterator\",\"FlavorException\",\"FlavorMap\",\"FlavorTable\",\"FlipContents\",\"Float\",\"FloatBuffer\",\"FloatControl\",\"FloatHolder\",\"FloatSeqHelper\",\"FloatSeqHolder\",\"FlowLayout\",\"FlowStrategy\",\"FlowView\",\"Flush3DBorder\",\"FocusAdapter\",\"FocusEvent\",\"FocusListener\",\"FocusManager\",\"FocusTraversalPolicy\",\"FolderIcon16\",\"Font\",\"FontAttribute\",\"FontConstants\",\"FontFamilyAction\",\"FontFormatException\",\"FontMetrics\",\"FontRenderContext\",\"FontSizeAction\",\"FontUIResource\",\"ForegroundAction\",\"FormView\",\"Format\",\"FormatConversionProvider\",\"FormatMismatch\",\"FormatMismatchHelper\",\"Formatter\",\"ForwardRequest\",\"ForwardRequestHelper\",\"Frame\",\"GSSContext\",\"GSSCredential\",\"GSSException\",\"GSSManager\",\"GSSName\",\"GZIPInputStream\",\"GZIPOutputStream\",\"GapContent\",\"GatheringByteChannel\",\"GeneralPath\",\"GeneralSecurityException\",\"GetField\",\"GlyphJustificationInfo\",\"GlyphMetrics\",\"GlyphPainter\",\"GlyphVector\",\"GlyphView\",\"GradientPaint\",\"GraphicAttribute\",\"Graphics\",\"Graphics2D\",\"GraphicsConfigTemplate\",\"GraphicsConfiguration\",\"GraphicsDevice\",\"GraphicsEnvironment\",\"GrayFilter\",\"GregorianCalendar\",\"GridBagConstraints\",\"GridBagLayout\",\"GridLayout\",\"Group\",\"Guard\",\"GuardedObject\",\"HTML\",\"HTMLDocument\",\"HTMLEditorKit\",\"HTMLFrameHyperlinkEvent\",\"HTMLWriter\",\"Handler\",\"HandlerBase\",\"HandshakeCompletedEvent\",\"HandshakeCompletedListener\",\"HasControls\",\"HashAttributeSet\",\"HashDocAttributeSet\",\"HashMap\",\"HashPrintJobAttributeSet\",\"HashPrintRequestAttributeSet\",\"HashPrintServiceAttributeSet\",\"HashSet\",\"Hashtable\",\"HeadlessException\",\"HierarchyBoundsAdapter\",\"HierarchyBoundsListener\",\"HierarchyEvent\",\"HierarchyListener\",\"Highlight\",\"HighlightPainter\",\"Highlighter\",\"HostnameVerifier\",\"HttpURLConnection\",\"HttpsURLConnection\",\"HyperlinkEvent\",\"HyperlinkListener\",\"ICC_ColorSpace\",\"ICC_Profile\",\"ICC_ProfileGray\",\"ICC_ProfileRGB\",\"IDLEntity\",\"IDLType\",\"IDLTypeHelper\",\"IDLTypeOperations\",\"ID_ASSIGNMENT_POLICY_ID\",\"ID_UNIQUENESS_POLICY_ID\",\"IIOByteBuffer\",\"IIOException\",\"IIOImage\",\"IIOInvalidTreeException\",\"IIOMetadata\",\"IIOMetadataController\",\"IIOMetadataFormat\",\"IIOMetadataFormatImpl\",\"IIOMetadataNode\",\"IIOParam\",\"IIOParamController\",\"IIOReadProgressListener\",\"IIOReadUpdateListener\",\"IIOReadWarningListener\",\"IIORegistry\",\"IIOServiceProvider\",\"IIOWriteProgressListener\",\"IIOWriteWarningListener\",\"IMPLICIT_ACTIVATION_POLICY_ID\",\"IMP_LIMIT\",\"INITIALIZE\",\"INPUT_STREAM\",\"INTERNAL\",\"INTF_REPOS\",\"INVALID_TRANSACTION\",\"INV_FLAG\",\"INV_IDENT\",\"INV_OBJREF\",\"INV_POLICY\",\"IOException\",\"IOR\",\"IORHelper\",\"IORHolder\",\"IORInfo\",\"IORInfoOperations\",\"IORInterceptor\",\"IORInterceptorOperations\",\"IRObject\",\"IRObjectOperations\",\"ISO\",\"Icon\",\"IconUIResource\",\"IconView\",\"IdAssignmentPolicy\",\"IdAssignmentPolicyOperations\",\"IdAssignmentPolicyValue\",\"IdUniquenessPolicy\",\"IdUniquenessPolicyOperations\",\"IdUniquenessPolicyValue\",\"IdentifierHelper\",\"Identity\",\"IdentityHashMap\",\"IdentityScope\",\"IllegalAccessError\",\"IllegalAccessException\",\"IllegalArgumentException\",\"IllegalBlockSizeException\",\"IllegalBlockingModeException\",\"IllegalCharsetNameException\",\"IllegalComponentStateException\",\"IllegalMonitorStateException\",\"IllegalPathStateException\",\"IllegalSelectorException\",\"IllegalStateException\",\"IllegalThreadStateException\",\"Image\",\"ImageCapabilities\",\"ImageConsumer\",\"ImageFilter\",\"ImageGraphicAttribute\",\"ImageIO\",\"ImageIcon\",\"ImageInputStream\",\"ImageInputStreamImpl\",\"ImageInputStreamSpi\",\"ImageObserver\",\"ImageOutputStream\",\"ImageOutputStreamImpl\",\"ImageOutputStreamSpi\",\"ImageProducer\",\"ImageReadParam\",\"ImageReader\",\"ImageReaderSpi\",\"ImageReaderWriterSpi\",\"ImageTranscoder\",\"ImageTranscoderSpi\",\"ImageTypeSpecifier\",\"ImageView\",\"ImageWriteParam\",\"ImageWriter\",\"ImageWriterSpi\",\"ImagingOpException\",\"ImplicitActivationPolicy\",\"ImplicitActivationPolicyOperations\",\"ImplicitActivationPolicyValue\",\"IncompatibleClassChangeError\",\"InconsistentTypeCode\",\"InconsistentTypeCodeHelper\",\"IndexColorModel\",\"IndexOutOfBoundsException\",\"IndexedPropertyDescriptor\",\"IndirectionException\",\"Inet4Address\",\"Inet6Address\",\"InetAddress\",\"InetSocketAddress\",\"Inflater\",\"InflaterInputStream\",\"Info\",\"InheritableThreadLocal\",\"InitialContext\",\"InitialContextFactory\",\"InitialContextFactoryBuilder\",\"InitialDirContext\",\"InitialLdapContext\",\"InlineView\",\"InputContext\",\"InputEvent\",\"InputMap\",\"InputMapUIResource\",\"InputMethod\",\"InputMethodContext\",\"InputMethodDescriptor\",\"InputMethodEvent\",\"InputMethodHighlight\",\"InputMethodListener\",\"InputMethodRequests\",\"InputSource\",\"InputStream\",\"InputStreamReader\",\"InputSubset\",\"InputVerifier\",\"InsertBreakAction\",\"InsertContentAction\",\"InsertHTMLTextAction\",\"InsertTabAction\",\"Insets\",\"InsetsUIResource\",\"InstantiationError\",\"InstantiationException\",\"Instrument\",\"InsufficientResourcesException\",\"IntBuffer\",\"IntHolder\",\"Integer\",\"IntegerSyntax\",\"Interceptor\",\"InterceptorOperations\",\"InternalError\",\"InternalFrameAdapter\",\"InternalFrameBorder\",\"InternalFrameEvent\",\"InternalFrameFocusTraversalPolicy\",\"InternalFrameListener\",\"InternalFrameUI\",\"InternationalFormatter\",\"InterruptedException\",\"InterruptedIOException\",\"InterruptedNamingException\",\"InterruptibleChannel\",\"IntrospectionException\",\"Introspector\",\"Invalid\",\"InvalidAddress\",\"InvalidAddressHelper\",\"InvalidAddressHolder\",\"InvalidAlgorithmParameterException\",\"InvalidAttributeIdentifierException\",\"InvalidAttributeValueException\",\"InvalidAttributesException\",\"InvalidClassException\",\"InvalidDnDOperationException\",\"InvalidKeyException\",\"InvalidKeySpecException\",\"InvalidMarkException\",\"InvalidMidiDataException\",\"InvalidName\",\"InvalidNameException\",\"InvalidNameHelper\",\"InvalidNameHolder\",\"InvalidObjectException\",\"InvalidParameterException\",\"InvalidParameterSpecException\",\"InvalidPolicy\",\"InvalidPolicyHelper\",\"InvalidPreferencesFormatException\",\"InvalidSearchControlsException\",\"InvalidSearchFilterException\",\"InvalidSeq\",\"InvalidSlot\",\"InvalidSlotHelper\",\"InvalidTransactionException\",\"InvalidTypeForEncoding\",\"InvalidTypeForEncodingHelper\",\"InvalidValue\",\"InvalidValueHelper\",\"InvocationEvent\",\"InvocationHandler\",\"InvocationTargetException\",\"InvokeHandler\",\"IstringHelper\",\"ItalicAction\",\"ItemEvent\",\"ItemListener\",\"ItemSelectable\",\"Iterator\",\"IvParameterSpec\",\"JApplet\",\"JButton\",\"JCheckBox\",\"JCheckBoxMenuItem\",\"JColorChooser\",\"JComboBox\",\"JComponent\",\"JDesktopIcon\",\"JDesktopPane\",\"JDialog\",\"JEditorPane\",\"JFileChooser\",\"JFormattedTextField\",\"JFrame\",\"JIS\",\"JInternalFrame\",\"JLabel\",\"JLayeredPane\",\"JList\",\"JMenu\",\"JMenuBar\",\"JMenuItem\",\"JOptionPane\",\"JPEGHuffmanTable\",\"JPEGImageReadParam\",\"JPEGImageWriteParam\",\"JPEGQTable\",\"JPanel\",\"JPasswordField\",\"JPopupMenu\",\"JProgressBar\",\"JRadioButton\",\"JRadioButtonMenuItem\",\"JRootPane\",\"JScrollBar\",\"JScrollPane\",\"JSeparator\",\"JSlider\",\"JSpinner\",\"JSplitPane\",\"JTabbedPane\",\"JTable\",\"JTableHeader\",\"JTextArea\",\"JTextComponent\",\"JTextField\",\"JTextPane\",\"JToggleButton\",\"JToolBar\",\"JToolTip\",\"JTree\",\"JViewport\",\"JWindow\",\"JarEntry\",\"JarException\",\"JarFile\",\"JarInputStream\",\"JarOutputStream\",\"JarURLConnection\",\"JobAttributes\",\"JobHoldUntil\",\"JobImpressions\",\"JobImpressionsCompleted\",\"JobImpressionsSupported\",\"JobKOctets\",\"JobKOctetsProcessed\",\"JobKOctetsSupported\",\"JobMediaSheets\",\"JobMediaSheetsCompleted\",\"JobMediaSheetsSupported\",\"JobMessageFromOperator\",\"JobName\",\"JobOriginatingUserName\",\"JobPriority\",\"JobPrioritySupported\",\"JobSheets\",\"JobState\",\"JobStateReason\",\"JobStateReasons\",\"KerberosKey\",\"KerberosPrincipal\",\"KerberosTicket\",\"Kernel\",\"Key\",\"KeyAdapter\",\"KeyAgreement\",\"KeyAgreementSpi\",\"KeyBinding\",\"KeyEvent\",\"KeyEventDispatcher\",\"KeyEventPostProcessor\",\"KeyException\",\"KeyFactory\",\"KeyFactorySpi\",\"KeyGenerator\",\"KeyGeneratorSpi\",\"KeyListener\",\"KeyManagementException\",\"KeyManager\",\"KeyManagerFactory\",\"KeyManagerFactorySpi\",\"KeyPair\",\"KeyPairGenerator\",\"KeyPairGeneratorSpi\",\"KeySelectionManager\",\"KeySpec\",\"KeyStore\",\"KeyStoreException\",\"KeyStoreSpi\",\"KeyStroke\",\"KeyboardFocusManager\",\"Keymap\",\"LDAPCertStoreParameters\",\"LIFESPAN_POLICY_ID\",\"LOCATION_FORWARD\",\"Label\",\"LabelUI\",\"LabelView\",\"LanguageCallback\",\"LastOwnerException\",\"LayerPainter\",\"LayeredHighlighter\",\"LayoutFocusTraversalPolicy\",\"LayoutManager\",\"LayoutManager2\",\"LayoutQueue\",\"LazyInputMap\",\"LazyValue\",\"LdapContext\",\"LdapReferralException\",\"Lease\",\"Level\",\"LexicalHandler\",\"LifespanPolicy\",\"LifespanPolicyOperations\",\"LifespanPolicyValue\",\"LimitExceededException\",\"Line\",\"Line2D\",\"LineBorder\",\"LineBorderUIResource\",\"LineBreakMeasurer\",\"LineEvent\",\"LineListener\",\"LineMetrics\",\"LineNumberInputStream\",\"LineNumberReader\",\"LineUnavailableException\",\"LinkController\",\"LinkException\",\"LinkLoopException\",\"LinkRef\",\"LinkageError\",\"LinkedHashMap\",\"LinkedHashSet\",\"LinkedList\",\"List\",\"ListCellRenderer\",\"ListDataEvent\",\"ListDataListener\",\"ListEditor\",\"ListIterator\",\"ListModel\",\"ListPainter\",\"ListResourceBundle\",\"ListSelectionEvent\",\"ListSelectionListener\",\"ListSelectionModel\",\"ListUI\",\"ListView\",\"LoaderHandler\",\"LocalObject\",\"Locale\",\"LocateRegistry\",\"Locator\",\"LocatorImpl\",\"LogManager\",\"LogRecord\",\"LogStream\",\"Logger\",\"LoggingPermission\",\"LoginContext\",\"LoginException\",\"LoginModule\",\"LoginModuleControlFlag\",\"Long\",\"LongBuffer\",\"LongHolder\",\"LongLongSeqHelper\",\"LongLongSeqHolder\",\"LongSeqHelper\",\"LongSeqHolder\",\"LookAndFeel\",\"LookAndFeelInfo\",\"LookupOp\",\"LookupTable\",\"MARSHAL\",\"Mac\",\"MacSpi\",\"MalformedInputException\",\"MalformedLinkException\",\"MalformedURLException\",\"ManagerFactoryParameters\",\"Manifest\",\"Map\",\"MapMode\",\"MappedByteBuffer\",\"MarginBorder\",\"MarshalException\",\"MarshalledObject\",\"MaskFormatter\",\"Matcher\",\"Math\",\"MatteBorder\",\"MatteBorderUIResource\",\"Media\",\"MediaName\",\"MediaPrintableArea\",\"MediaSize\",\"MediaSizeName\",\"MediaTracker\",\"MediaTray\",\"MediaType\",\"Member\",\"MemoryCacheImageInputStream\",\"MemoryCacheImageOutputStream\",\"MemoryHandler\",\"MemoryImageSource\",\"Menu\",\"MenuBar\",\"MenuBarBorder\",\"MenuBarUI\",\"MenuComponent\",\"MenuContainer\",\"MenuDragMouseEvent\",\"MenuDragMouseListener\",\"MenuElement\",\"MenuEvent\",\"MenuItem\",\"MenuItemBorder\",\"MenuItemUI\",\"MenuKeyEvent\",\"MenuKeyListener\",\"MenuListener\",\"MenuSelectionManager\",\"MenuShortcut\",\"MessageDigest\",\"MessageDigestSpi\",\"MessageFormat\",\"MessageProp\",\"MetaEventListener\",\"MetaMessage\",\"MetalBorders\",\"MetalButtonUI\",\"MetalCheckBoxIcon\",\"MetalCheckBoxUI\",\"MetalComboBoxButton\",\"MetalComboBoxEditor\",\"MetalComboBoxIcon\",\"MetalComboBoxUI\",\"MetalDesktopIconUI\",\"MetalFileChooserUI\",\"MetalIconFactory\",\"MetalInternalFrameTitlePane\",\"MetalInternalFrameUI\",\"MetalLabelUI\",\"MetalLookAndFeel\",\"MetalPopupMenuSeparatorUI\",\"MetalProgressBarUI\",\"MetalRadioButtonUI\",\"MetalRootPaneUI\",\"MetalScrollBarUI\",\"MetalScrollButton\",\"MetalScrollPaneUI\",\"MetalSeparatorUI\",\"MetalSliderUI\",\"MetalSplitPaneUI\",\"MetalTabbedPaneUI\",\"MetalTextFieldUI\",\"MetalTheme\",\"MetalToggleButtonUI\",\"MetalToolBarUI\",\"MetalToolTipUI\",\"MetalTreeUI\",\"Method\",\"MethodDescriptor\",\"MidiChannel\",\"MidiDevice\",\"MidiDeviceProvider\",\"MidiEvent\",\"MidiFileFormat\",\"MidiFileReader\",\"MidiFileWriter\",\"MidiMessage\",\"MidiSystem\",\"MidiUnavailableException\",\"MimeTypeParseException\",\"MinimalHTMLWriter\",\"MissingResourceException\",\"Mixer\",\"MixerProvider\",\"ModificationItem\",\"Modifier\",\"MouseAdapter\",\"MouseDragGestureRecognizer\",\"MouseEvent\",\"MouseInputAdapter\",\"MouseInputListener\",\"MouseListener\",\"MouseMotionAdapter\",\"MouseMotionListener\",\"MouseWheelEvent\",\"MouseWheelListener\",\"MultiButtonUI\",\"MultiColorChooserUI\",\"MultiComboBoxUI\",\"MultiDesktopIconUI\",\"MultiDesktopPaneUI\",\"MultiDoc\",\"MultiDocPrintJob\",\"MultiDocPrintService\",\"MultiFileChooserUI\",\"MultiInternalFrameUI\",\"MultiLabelUI\",\"MultiListUI\",\"MultiLookAndFeel\",\"MultiMenuBarUI\",\"MultiMenuItemUI\",\"MultiOptionPaneUI\",\"MultiPanelUI\",\"MultiPixelPackedSampleModel\",\"MultiPopupMenuUI\",\"MultiProgressBarUI\",\"MultiRootPaneUI\",\"MultiScrollBarUI\",\"MultiScrollPaneUI\",\"MultiSeparatorUI\",\"MultiSliderUI\",\"MultiSpinnerUI\",\"MultiSplitPaneUI\",\"MultiTabbedPaneUI\",\"MultiTableHeaderUI\",\"MultiTableUI\",\"MultiTextUI\",\"MultiToolBarUI\",\"MultiToolTipUI\",\"MultiTreeUI\",\"MultiViewportUI\",\"MulticastSocket\",\"MultipleComponentProfileHelper\",\"MultipleComponentProfileHolder\",\"MultipleDocumentHandling\",\"MultipleDocumentHandlingType\",\"MultipleMaster\",\"MutableAttributeSet\",\"MutableComboBoxModel\",\"MutableTreeNode\",\"NA\",\"NO_IMPLEMENT\",\"NO_MEMORY\",\"NO_PERMISSION\",\"NO_RESOURCES\",\"NO_RESPONSE\",\"NVList\",\"Name\",\"NameAlreadyBoundException\",\"NameCallback\",\"NameClassPair\",\"NameComponent\",\"NameComponentHelper\",\"NameComponentHolder\",\"NameDynAnyPair\",\"NameDynAnyPairHelper\",\"NameDynAnyPairSeqHelper\",\"NameHelper\",\"NameHolder\",\"NameNotFoundException\",\"NameParser\",\"NameValuePair\",\"NameValuePairHelper\",\"NameValuePairSeqHelper\",\"NamedNodeMap\",\"NamedValue\",\"NamespaceChangeListener\",\"NamespaceSupport\",\"Naming\",\"NamingContext\",\"NamingContextExt\",\"NamingContextExtHelper\",\"NamingContextExtHolder\",\"NamingContextExtOperations\",\"NamingContextExtPOA\",\"NamingContextHelper\",\"NamingContextHolder\",\"NamingContextOperations\",\"NamingContextPOA\",\"NamingEnumeration\",\"NamingEvent\",\"NamingException\",\"NamingExceptionEvent\",\"NamingListener\",\"NamingManager\",\"NamingSecurityException\",\"NavigationFilter\",\"NegativeArraySizeException\",\"NetPermission\",\"NetworkInterface\",\"NoClassDefFoundError\",\"NoConnectionPendingException\",\"NoContext\",\"NoContextHelper\",\"NoInitialContextException\",\"NoPermissionException\",\"NoRouteToHostException\",\"NoServant\",\"NoServantHelper\",\"NoSuchAlgorithmException\",\"NoSuchAttributeException\",\"NoSuchElementException\",\"NoSuchFieldError\",\"NoSuchFieldException\",\"NoSuchMethodError\",\"NoSuchMethodException\",\"NoSuchObjectException\",\"NoSuchPaddingException\",\"NoSuchProviderException\",\"Node\",\"NodeChangeEvent\",\"NodeChangeListener\",\"NodeDimensions\",\"NodeList\",\"NonReadableChannelException\",\"NonWritableChannelException\",\"NoninvertibleTransformException\",\"NotActiveException\",\"NotBoundException\",\"NotContextException\",\"NotEmpty\",\"NotEmptyHelper\",\"NotEmptyHolder\",\"NotFound\",\"NotFoundHelper\",\"NotFoundHolder\",\"NotFoundReason\",\"NotFoundReasonHelper\",\"NotFoundReasonHolder\",\"NotOwnerException\",\"NotSerializableException\",\"NotYetBoundException\",\"NotYetConnectedException\",\"Notation\",\"NullCipher\",\"NullPointerException\",\"Number\",\"NumberEditor\",\"NumberFormat\",\"NumberFormatException\",\"NumberFormatter\",\"NumberOfDocuments\",\"NumberOfInterveningJobs\",\"NumberUp\",\"NumberUpSupported\",\"NumericShaper\",\"OBJECT_NOT_EXIST\",\"OBJ_ADAPTER\",\"OMGVMCID\",\"ORB\",\"ORBInitInfo\",\"ORBInitInfoOperations\",\"ORBInitializer\",\"ORBInitializerOperations\",\"ObjID\",\"Object\",\"ObjectAlreadyActive\",\"ObjectAlreadyActiveHelper\",\"ObjectChangeListener\",\"ObjectFactory\",\"ObjectFactoryBuilder\",\"ObjectHelper\",\"ObjectHolder\",\"ObjectIdHelper\",\"ObjectImpl\",\"ObjectInput\",\"ObjectInputStream\",\"ObjectInputValidation\",\"ObjectNotActive\",\"ObjectNotActiveHelper\",\"ObjectOutput\",\"ObjectOutputStream\",\"ObjectStreamClass\",\"ObjectStreamConstants\",\"ObjectStreamException\",\"ObjectStreamField\",\"ObjectView\",\"Observable\",\"Observer\",\"OctetSeqHelper\",\"OctetSeqHolder\",\"Oid\",\"OpenType\",\"Operation\",\"OperationNotSupportedException\",\"Option\",\"OptionDialogBorder\",\"OptionPaneUI\",\"OptionalDataException\",\"OrientationRequested\",\"OrientationRequestedType\",\"OriginType\",\"Other\",\"OutOfMemoryError\",\"OutputDeviceAssigned\",\"OutputKeys\",\"OutputStream\",\"OutputStreamWriter\",\"OverlappingFileLockException\",\"OverlayLayout\",\"Owner\",\"PBEKey\",\"PBEKeySpec\",\"PBEParameterSpec\",\"PDLOverrideSupported\",\"PERSIST_STORE\",\"PKCS8EncodedKeySpec\",\"PKIXBuilderParameters\",\"PKIXCertPathBuilderResult\",\"PKIXCertPathChecker\",\"PKIXCertPathValidatorResult\",\"PKIXParameters\",\"POA\",\"POAHelper\",\"POAManager\",\"POAManagerOperations\",\"POAOperations\",\"PRIVATE_MEMBER\",\"PSSParameterSpec\",\"PUBLIC_MEMBER\",\"Package\",\"PackedColorModel\",\"PageAttributes\",\"PageFormat\",\"PageRanges\",\"Pageable\",\"PagesPerMinute\",\"PagesPerMinuteColor\",\"Paint\",\"PaintContext\",\"PaintEvent\",\"PaletteBorder\",\"PaletteCloseIcon\",\"Panel\",\"PanelUI\",\"Paper\",\"ParagraphAttribute\",\"ParagraphConstants\",\"ParagraphView\",\"Parameter\",\"ParameterBlock\",\"ParameterDescriptor\",\"ParameterMetaData\",\"ParameterMode\",\"ParameterModeHelper\",\"ParameterModeHolder\",\"ParseException\",\"ParsePosition\",\"Parser\",\"ParserAdapter\",\"ParserCallback\",\"ParserConfigurationException\",\"ParserDelegator\",\"ParserFactory\",\"PartialResultException\",\"PasswordAuthentication\",\"PasswordCallback\",\"PasswordView\",\"PasteAction\",\"Patch\",\"PathIterator\",\"Pattern\",\"PatternSyntaxException\",\"Permission\",\"PermissionCollection\",\"Permissions\",\"PersistenceDelegate\",\"PhantomReference\",\"Pipe\",\"PipedInputStream\",\"PipedOutputStream\",\"PipedReader\",\"PipedWriter\",\"PixelGrabber\",\"PixelInterleavedSampleModel\",\"PlainDocument\",\"PlainView\",\"Point\",\"Point2D\",\"Policy\",\"PolicyError\",\"PolicyErrorCodeHelper\",\"PolicyErrorHelper\",\"PolicyErrorHolder\",\"PolicyFactory\",\"PolicyFactoryOperations\",\"PolicyHelper\",\"PolicyHolder\",\"PolicyListHelper\",\"PolicyListHolder\",\"PolicyNode\",\"PolicyOperations\",\"PolicyQualifierInfo\",\"PolicyTypeHelper\",\"Polygon\",\"PooledConnection\",\"Popup\",\"PopupFactory\",\"PopupMenu\",\"PopupMenuBorder\",\"PopupMenuEvent\",\"PopupMenuListener\",\"PopupMenuUI\",\"Port\",\"PortUnreachableException\",\"PortableRemoteObject\",\"PortableRemoteObjectDelegate\",\"Position\",\"PreferenceChangeEvent\",\"PreferenceChangeListener\",\"Preferences\",\"PreferencesFactory\",\"PreparedStatement\",\"PresentationDirection\",\"Principal\",\"PrincipalHolder\",\"PrintEvent\",\"PrintException\",\"PrintGraphics\",\"PrintJob\",\"PrintJobAdapter\",\"PrintJobAttribute\",\"PrintJobAttributeEvent\",\"PrintJobAttributeListener\",\"PrintJobAttributeSet\",\"PrintJobEvent\",\"PrintJobListener\",\"PrintQuality\",\"PrintQualityType\",\"PrintRequestAttribute\",\"PrintRequestAttributeSet\",\"PrintService\",\"PrintServiceAttribute\",\"PrintServiceAttributeEvent\",\"PrintServiceAttributeListener\",\"PrintServiceAttributeSet\",\"PrintServiceLookup\",\"PrintStream\",\"PrintWriter\",\"Printable\",\"PrinterAbortException\",\"PrinterException\",\"PrinterGraphics\",\"PrinterIOException\",\"PrinterInfo\",\"PrinterIsAcceptingJobs\",\"PrinterJob\",\"PrinterLocation\",\"PrinterMakeAndModel\",\"PrinterMessageFromOperator\",\"PrinterMoreInfo\",\"PrinterMoreInfoManufacturer\",\"PrinterName\",\"PrinterResolution\",\"PrinterState\",\"PrinterStateReason\",\"PrinterStateReasons\",\"PrinterURI\",\"PrivateCredentialPermission\",\"PrivateKey\",\"PrivilegedAction\",\"PrivilegedActionException\",\"PrivilegedExceptionAction\",\"Process\",\"ProcessingInstruction\",\"ProfileDataException\",\"ProfileIdHelper\",\"ProgressBarUI\",\"ProgressMonitor\",\"ProgressMonitorInputStream\",\"Properties\",\"PropertyChangeEvent\",\"PropertyChangeListener\",\"PropertyChangeListenerProxy\",\"PropertyChangeSupport\",\"PropertyDescriptor\",\"PropertyEditor\",\"PropertyEditorManager\",\"PropertyEditorSupport\",\"PropertyPermission\",\"PropertyResourceBundle\",\"PropertyVetoException\",\"ProtectionDomain\",\"ProtocolException\",\"Provider\",\"ProviderException\",\"Proxy\",\"ProxyLazyValue\",\"PublicKey\",\"PushbackInputStream\",\"PushbackReader\",\"PutField\",\"QuadCurve2D\",\"QueuedJobCount\",\"RC2ParameterSpec\",\"RC5ParameterSpec\",\"READER\",\"REQUEST_PROCESSING_POLICY_ID\",\"RGBImageFilter\",\"RMIClassLoader\",\"RMIClassLoaderSpi\",\"RMIClientSocketFactory\",\"RMIFailureHandler\",\"RMISecurityException\",\"RMISecurityManager\",\"RMIServerSocketFactory\",\"RMISocketFactory\",\"RSAKey\",\"RSAKeyGenParameterSpec\",\"RSAMultiPrimePrivateCrtKey\",\"RSAMultiPrimePrivateCrtKeySpec\",\"RSAOtherPrimeInfo\",\"RSAPrivateCrtKey\",\"RSAPrivateCrtKeySpec\",\"RSAPrivateKey\",\"RSAPrivateKeySpec\",\"RSAPublicKey\",\"RSAPublicKeySpec\",\"RTFEditorKit\",\"RadioButtonBorder\",\"Random\",\"RandomAccess\",\"RandomAccessFile\",\"Raster\",\"RasterFormatException\",\"RasterOp\",\"ReadOnlyBufferException\",\"ReadableByteChannel\",\"Reader\",\"Receiver\",\"Rectangle\",\"Rectangle2D\",\"RectangularShape\",\"Ref\",\"RefAddr\",\"Reference\",\"ReferenceQueue\",\"ReferenceUriSchemesSupported\",\"Referenceable\",\"ReferralException\",\"ReflectPermission\",\"RefreshFailedException\",\"Refreshable\",\"RegisterableService\",\"Registry\",\"RegistryHandler\",\"RemarshalException\",\"Remote\",\"RemoteCall\",\"RemoteException\",\"RemoteObject\",\"RemoteRef\",\"RemoteServer\",\"RemoteStub\",\"RenderContext\",\"RenderableImage\",\"RenderableImageOp\",\"RenderableImageProducer\",\"RenderedImage\",\"RenderedImageFactory\",\"Renderer\",\"RenderingHints\",\"RepaintManager\",\"ReplicateScaleFilter\",\"RepositoryIdHelper\",\"Request\",\"RequestInfo\",\"RequestInfoOperations\",\"RequestProcessingPolicy\",\"RequestProcessingPolicyOperations\",\"RequestProcessingPolicyValue\",\"RequestingUserName\",\"RescaleOp\",\"ResolutionSyntax\",\"ResolveResult\",\"Resolver\",\"ResourceBundle\",\"ResponseHandler\",\"Result\",\"ResultSet\",\"ResultSetMetaData\",\"ReverbType\",\"Robot\",\"RolloverButtonBorder\",\"RootPaneContainer\",\"RootPaneUI\",\"RoundRectangle2D\",\"RowMapper\",\"RowSet\",\"RowSetEvent\",\"RowSetInternal\",\"RowSetListener\",\"RowSetMetaData\",\"RowSetReader\",\"RowSetWriter\",\"RuleBasedCollator\",\"RunTime\",\"RunTimeOperations\",\"Runnable\",\"Runtime\",\"RuntimeException\",\"RuntimePermission\",\"SAXException\",\"SAXNotRecognizedException\",\"SAXNotSupportedException\",\"SAXParseException\",\"SAXParser\",\"SAXParserFactory\",\"SAXResult\",\"SAXSource\",\"SAXTransformerFactory\",\"SERVANT_RETENTION_POLICY_ID\",\"SERVICE_FORMATTED\",\"SQLData\",\"SQLException\",\"SQLInput\",\"SQLOutput\",\"SQLPermission\",\"SQLWarning\",\"SSLContext\",\"SSLContextSpi\",\"SSLException\",\"SSLHandshakeException\",\"SSLKeyException\",\"SSLPeerUnverifiedException\",\"SSLPermission\",\"SSLProtocolException\",\"SSLServerSocket\",\"SSLServerSocketFactory\",\"SSLSession\",\"SSLSessionBindingEvent\",\"SSLSessionBindingListener\",\"SSLSessionContext\",\"SSLSocket\",\"SSLSocketFactory\",\"STRING\",\"SUCCESSFUL\",\"SYNC_WITH_TRANSPORT\",\"SYSTEM_EXCEPTION\",\"SampleModel\",\"Savepoint\",\"ScatteringByteChannel\",\"SchemaViolationException\",\"ScrollBarUI\",\"ScrollPane\",\"ScrollPaneAdjustable\",\"ScrollPaneBorder\",\"ScrollPaneConstants\",\"ScrollPaneLayout\",\"ScrollPaneUI\",\"Scrollable\",\"Scrollbar\",\"SealedObject\",\"SearchControls\",\"SearchResult\",\"SecretKey\",\"SecretKeyFactory\",\"SecretKeyFactorySpi\",\"SecretKeySpec\",\"SecureClassLoader\",\"SecureRandom\",\"SecureRandomSpi\",\"Security\",\"SecurityException\",\"SecurityManager\",\"SecurityPermission\",\"Segment\",\"SelectableChannel\",\"SelectionKey\",\"Selector\",\"SelectorProvider\",\"Separator\",\"SeparatorUI\",\"Sequence\",\"SequenceInputStream\",\"Sequencer\",\"Serializable\",\"SerializablePermission\",\"Servant\",\"ServantActivator\",\"ServantActivatorHelper\",\"ServantActivatorOperations\",\"ServantActivatorPOA\",\"ServantAlreadyActive\",\"ServantAlreadyActiveHelper\",\"ServantLocator\",\"ServantLocatorHelper\",\"ServantLocatorOperations\",\"ServantLocatorPOA\",\"ServantManager\",\"ServantManagerOperations\",\"ServantNotActive\",\"ServantNotActiveHelper\",\"ServantObject\",\"ServantRetentionPolicy\",\"ServantRetentionPolicyOperations\",\"ServantRetentionPolicyValue\",\"ServerCloneException\",\"ServerError\",\"ServerException\",\"ServerNotActiveException\",\"ServerRef\",\"ServerRequest\",\"ServerRequestInfo\",\"ServerRequestInfoOperations\",\"ServerRequestInterceptor\",\"ServerRequestInterceptorOperations\",\"ServerRuntimeException\",\"ServerSocket\",\"ServerSocketChannel\",\"ServerSocketFactory\",\"ServiceContext\",\"ServiceContextHelper\",\"ServiceContextHolder\",\"ServiceContextListHelper\",\"ServiceContextListHolder\",\"ServiceDetail\",\"ServiceDetailHelper\",\"ServiceIdHelper\",\"ServiceInformation\",\"ServiceInformationHelper\",\"ServiceInformationHolder\",\"ServicePermission\",\"ServiceRegistry\",\"ServiceUI\",\"ServiceUIFactory\",\"ServiceUnavailableException\",\"Set\",\"SetOfIntegerSyntax\",\"SetOverrideType\",\"SetOverrideTypeHelper\",\"Severity\",\"Shape\",\"ShapeGraphicAttribute\",\"SheetCollate\",\"Short\",\"ShortBuffer\",\"ShortBufferException\",\"ShortHolder\",\"ShortLookupTable\",\"ShortMessage\",\"ShortSeqHelper\",\"ShortSeqHolder\",\"Sides\",\"SidesType\",\"Signature\",\"SignatureException\",\"SignatureSpi\",\"SignedObject\",\"Signer\",\"SimpleAttributeSet\",\"SimpleBeanInfo\",\"SimpleDateFormat\",\"SimpleDoc\",\"SimpleFormatter\",\"SimpleTimeZone\",\"SinglePixelPackedSampleModel\",\"SingleSelectionModel\",\"SinkChannel\",\"Size2DSyntax\",\"SizeLimitExceededException\",\"SizeRequirements\",\"SizeSequence\",\"Skeleton\",\"SkeletonMismatchException\",\"SkeletonNotFoundException\",\"SliderUI\",\"Socket\",\"SocketAddress\",\"SocketChannel\",\"SocketException\",\"SocketFactory\",\"SocketHandler\",\"SocketImpl\",\"SocketImplFactory\",\"SocketOptions\",\"SocketPermission\",\"SocketSecurityException\",\"SocketTimeoutException\",\"SoftBevelBorder\",\"SoftReference\",\"SortedMap\",\"SortedSet\",\"SortingFocusTraversalPolicy\",\"Soundbank\",\"SoundbankReader\",\"SoundbankResource\",\"Source\",\"SourceChannel\",\"SourceDataLine\",\"SourceLocator\",\"SpinnerDateModel\",\"SpinnerListModel\",\"SpinnerModel\",\"SpinnerNumberModel\",\"SpinnerUI\",\"SplitPaneBorder\",\"SplitPaneUI\",\"Spring\",\"SpringLayout\",\"Stack\",\"StackOverflowError\",\"StackTraceElement\",\"StartTlsRequest\",\"StartTlsResponse\",\"State\",\"StateEdit\",\"StateEditable\",\"StateFactory\",\"Statement\",\"StreamCorruptedException\",\"StreamHandler\",\"StreamPrintService\",\"StreamPrintServiceFactory\",\"StreamResult\",\"StreamSource\",\"StreamTokenizer\",\"Streamable\",\"StreamableValue\",\"StrictMath\",\"String\",\"StringBuffer\",\"StringBufferInputStream\",\"StringCharacterIterator\",\"StringContent\",\"StringHolder\",\"StringIndexOutOfBoundsException\",\"StringNameHelper\",\"StringReader\",\"StringRefAddr\",\"StringSelection\",\"StringSeqHelper\",\"StringSeqHolder\",\"StringTokenizer\",\"StringValueHelper\",\"StringWriter\",\"Stroke\",\"Struct\",\"StructMember\",\"StructMemberHelper\",\"Stub\",\"StubDelegate\",\"StubNotFoundException\",\"Style\",\"StyleConstants\",\"StyleContext\",\"StyleSheet\",\"StyledDocument\",\"StyledEditorKit\",\"StyledTextAction\",\"Subject\",\"SubjectDomainCombiner\",\"Subset\",\"SupportedValuesAttribute\",\"SwingConstants\",\"SwingPropertyChangeSupport\",\"SwingUtilities\",\"SyncFailedException\",\"SyncMode\",\"SyncScopeHelper\",\"Synthesizer\",\"SysexMessage\",\"System\",\"SystemColor\",\"SystemException\",\"SystemFlavorMap\",\"TAG_ALTERNATE_IIOP_ADDRESS\",\"TAG_CODE_SETS\",\"TAG_INTERNET_IOP\",\"TAG_JAVA_CODEBASE\",\"TAG_MULTIPLE_COMPONENTS\",\"TAG_ORB_TYPE\",\"TAG_POLICIES\",\"TCKind\",\"THREAD_POLICY_ID\",\"TRANSACTION_REQUIRED\",\"TRANSACTION_ROLLEDBACK\",\"TRANSIENT\",\"TRANSPORT_RETRY\",\"TabExpander\",\"TabSet\",\"TabStop\",\"TabableView\",\"TabbedPaneUI\",\"TableCellEditor\",\"TableCellRenderer\",\"TableColumn\",\"TableColumnModel\",\"TableColumnModelEvent\",\"TableColumnModelListener\",\"TableHeaderBorder\",\"TableHeaderUI\",\"TableModel\",\"TableModelEvent\",\"TableModelListener\",\"TableUI\",\"TableView\",\"Tag\",\"TagElement\",\"TaggedComponent\",\"TaggedComponentHelper\",\"TaggedComponentHolder\",\"TaggedProfile\",\"TaggedProfileHelper\",\"TaggedProfileHolder\",\"TargetDataLine\",\"Templates\",\"TemplatesHandler\",\"Text\",\"TextAction\",\"TextArea\",\"TextAttribute\",\"TextComponent\",\"TextEvent\",\"TextField\",\"TextFieldBorder\",\"TextHitInfo\",\"TextInputCallback\",\"TextLayout\",\"TextListener\",\"TextMeasurer\",\"TextOutputCallback\",\"TextSyntax\",\"TextUI\",\"TexturePaint\",\"Thread\",\"ThreadDeath\",\"ThreadGroup\",\"ThreadLocal\",\"ThreadPolicy\",\"ThreadPolicyOperations\",\"ThreadPolicyValue\",\"Throwable\",\"Tie\",\"TileObserver\",\"Time\",\"TimeLimitExceededException\",\"TimeZone\",\"Timer\",\"TimerTask\",\"Timestamp\",\"TitledBorder\",\"TitledBorderUIResource\",\"ToggleButtonBorder\",\"ToggleButtonModel\",\"TooManyListenersException\",\"ToolBarBorder\",\"ToolBarUI\",\"ToolTipManager\",\"ToolTipUI\",\"Toolkit\",\"Track\",\"TransactionRequiredException\",\"TransactionRolledbackException\",\"TransactionService\",\"TransferHandler\",\"Transferable\",\"TransformAttribute\",\"Transformer\",\"TransformerConfigurationException\",\"TransformerException\",\"TransformerFactory\",\"TransformerFactoryConfigurationError\",\"TransformerHandler\",\"Transmitter\",\"Transparency\",\"TreeCellEditor\",\"TreeCellRenderer\",\"TreeControlIcon\",\"TreeExpansionEvent\",\"TreeExpansionListener\",\"TreeFolderIcon\",\"TreeLeafIcon\",\"TreeMap\",\"TreeModel\",\"TreeModelEvent\",\"TreeModelListener\",\"TreeNode\",\"TreePath\",\"TreeSelectionEvent\",\"TreeSelectionListener\",\"TreeSelectionModel\",\"TreeSet\",\"TreeUI\",\"TreeWillExpandListener\",\"TrustAnchor\",\"TrustManager\",\"TrustManagerFactory\",\"TrustManagerFactorySpi\",\"Type\",\"TypeCode\",\"TypeCodeHolder\",\"TypeMismatch\",\"TypeMismatchHelper\",\"Types\",\"UID\",\"UIDefaults\",\"UIManager\",\"UIResource\",\"ULongLongSeqHelper\",\"ULongLongSeqHolder\",\"ULongSeqHelper\",\"ULongSeqHolder\",\"UNKNOWN\",\"UNSUPPORTED_POLICY\",\"UNSUPPORTED_POLICY_VALUE\",\"URI\",\"URIException\",\"URIResolver\",\"URISyntax\",\"URISyntaxException\",\"URL\",\"URLClassLoader\",\"URLConnection\",\"URLDecoder\",\"URLEncoder\",\"URLStreamHandler\",\"URLStreamHandlerFactory\",\"URLStringHelper\",\"USER_EXCEPTION\",\"UShortSeqHelper\",\"UShortSeqHolder\",\"UTFDataFormatException\",\"UndeclaredThrowableException\",\"UnderlineAction\",\"UndoManager\",\"UndoableEdit\",\"UndoableEditEvent\",\"UndoableEditListener\",\"UndoableEditSupport\",\"UnexpectedException\",\"UnicastRemoteObject\",\"UnicodeBlock\",\"UnionMember\",\"UnionMemberHelper\",\"UnknownEncoding\",\"UnknownEncodingHelper\",\"UnknownError\",\"UnknownException\",\"UnknownGroupException\",\"UnknownHostException\",\"UnknownObjectException\",\"UnknownServiceException\",\"UnknownTag\",\"UnknownUserException\",\"UnknownUserExceptionHelper\",\"UnknownUserExceptionHolder\",\"UnmappableCharacterException\",\"UnmarshalException\",\"UnmodifiableSetException\",\"UnrecoverableKeyException\",\"Unreferenced\",\"UnresolvedAddressException\",\"UnresolvedPermission\",\"UnsatisfiedLinkError\",\"UnsolicitedNotification\",\"UnsolicitedNotificationEvent\",\"UnsolicitedNotificationListener\",\"UnsupportedAddressTypeException\",\"UnsupportedAudioFileException\",\"UnsupportedCallbackException\",\"UnsupportedCharsetException\",\"UnsupportedClassVersionError\",\"UnsupportedEncodingException\",\"UnsupportedFlavorException\",\"UnsupportedLookAndFeelException\",\"UnsupportedOperationException\",\"UserException\",\"Util\",\"UtilDelegate\",\"Utilities\",\"VMID\",\"VM_ABSTRACT\",\"VM_CUSTOM\",\"VM_NONE\",\"VM_TRUNCATABLE\",\"ValueBase\",\"ValueBaseHelper\",\"ValueBaseHolder\",\"ValueFactory\",\"ValueHandler\",\"ValueMember\",\"ValueMemberHelper\",\"VariableHeightLayoutCache\",\"Vector\",\"VerifyError\",\"VersionSpecHelper\",\"VetoableChangeListener\",\"VetoableChangeListenerProxy\",\"VetoableChangeSupport\",\"View\",\"ViewFactory\",\"ViewportLayout\",\"ViewportUI\",\"VirtualMachineError\",\"Visibility\",\"VisibilityHelper\",\"VoiceStatus\",\"Void\",\"VolatileImage\",\"WCharSeqHelper\",\"WCharSeqHolder\",\"WStringSeqHelper\",\"WStringSeqHolder\",\"WStringValueHelper\",\"WeakHashMap\",\"WeakReference\",\"Window\",\"WindowAdapter\",\"WindowConstants\",\"WindowEvent\",\"WindowFocusListener\",\"WindowListener\",\"WindowStateListener\",\"WrappedPlainView\",\"WritableByteChannel\",\"WritableRaster\",\"WritableRenderedImage\",\"WriteAbortedException\",\"Writer\",\"WrongAdapter\",\"WrongAdapterHelper\",\"WrongPolicy\",\"WrongPolicyHelper\",\"WrongTransaction\",\"WrongTransactionHelper\",\"WrongTransactionHolder\",\"X500Principal\",\"X500PrivateCredential\",\"X509CRL\",\"X509CRLEntry\",\"X509CRLSelector\",\"X509CertSelector\",\"X509Certificate\",\"X509EncodedKeySpec\",\"X509Extension\",\"X509KeyManager\",\"X509TrustManager\",\"XAConnection\",\"XADataSource\",\"XAException\",\"XAResource\",\"XMLDecoder\",\"XMLEncoder\",\"XMLFilter\",\"XMLFilterImpl\",\"XMLFormatter\",\"XMLReader\",\"XMLReaderAdapter\",\"XMLReaderFactory\",\"Xid\",\"ZipEntry\",\"ZipException\",\"ZipFile\",\"ZipInputStream\",\"ZipOutputStream\",\"ZoneView\",\"_BindingIteratorImplBase\",\"_BindingIteratorStub\",\"_DynAnyFactoryStub\",\"_DynAnyStub\",\"_DynArrayStub\",\"_DynEnumStub\",\"_DynFixedStub\",\"_DynSequenceStub\",\"_DynStructStub\",\"_DynUnionStub\",\"_DynValueStub\",\"_IDLTypeStub\",\"_NamingContextExtStub\",\"_NamingContextImplBase\",\"_NamingContextStub\",\"_PolicyStub\",\"_Remote_Stub\",\"_ServantActivatorStub\",\"_ServantLocatorStub\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [Rule {rMatcher = AnyChar \"fF\", rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [Rule {rMatcher = StringDetect \"ULL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LUL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LLU\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"UL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LU\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"U\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"L\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Java String\")]},Rule {rMatcher = AnyChar \"!%&()+,-<=>?[]^{|}~\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Jsp Scriptlet\",Context {cName = \"Jsp Scriptlet\", cSyntax = \"JSP\", cRules = [Rule {rMatcher = Detect2Chars '%' '>', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\s*jsp:(declaration|expression|scriptlet)\\\\s*>\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Scriptlet\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"abstract\",\"assert\",\"break\",\"case\",\"catch\",\"class\",\"continue\",\"default\",\"do\",\"else\",\"extends\",\"false\",\"finally\",\"for\",\"goto\",\"if\",\"implements\",\"import\",\"instanceof\",\"interface\",\"native\",\"new\",\"null\",\"package\",\"private\",\"protected\",\"public\",\"return\",\"strictfp\",\"super\",\"switch\",\"synchronized\",\"this\",\"throw\",\"throws\",\"transient\",\"true\",\"try\",\"volatile\",\"while\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"and\",\"div\",\"empty\",\"eq\",\"false\",\"ge\",\"gt\",\"instanceof\",\"le\",\"lt\",\"mod\",\"ne\",\"not\",\"null\",\"or\",\"true\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"boolean\",\"byte\",\"char\",\"const\",\"double\",\"final\",\"float\",\"int\",\"long\",\"short\",\"static\",\"void\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"ARG_IN\",\"ARG_INOUT\",\"ARG_OUT\",\"AWTError\",\"AWTEvent\",\"AWTEventListener\",\"AWTEventListenerProxy\",\"AWTEventMulticaster\",\"AWTException\",\"AWTKeyStroke\",\"AWTPermission\",\"AbstractAction\",\"AbstractBorder\",\"AbstractButton\",\"AbstractCellEditor\",\"AbstractCollection\",\"AbstractColorChooserPanel\",\"AbstractDocument\",\"AbstractFormatter\",\"AbstractFormatterFactory\",\"AbstractInterruptibleChannel\",\"AbstractLayoutCache\",\"AbstractList\",\"AbstractListModel\",\"AbstractMap\",\"AbstractMethodError\",\"AbstractPreferences\",\"AbstractSelectableChannel\",\"AbstractSelectionKey\",\"AbstractSelector\",\"AbstractSequentialList\",\"AbstractSet\",\"AbstractSpinnerModel\",\"AbstractTableModel\",\"AbstractUndoableEdit\",\"AbstractWriter\",\"AccessControlContext\",\"AccessControlException\",\"AccessController\",\"AccessException\",\"Accessible\",\"AccessibleAction\",\"AccessibleBundle\",\"AccessibleComponent\",\"AccessibleContext\",\"AccessibleEditableText\",\"AccessibleExtendedComponent\",\"AccessibleExtendedTable\",\"AccessibleHyperlink\",\"AccessibleHypertext\",\"AccessibleIcon\",\"AccessibleKeyBinding\",\"AccessibleObject\",\"AccessibleRelation\",\"AccessibleRelationSet\",\"AccessibleResourceBundle\",\"AccessibleRole\",\"AccessibleSelection\",\"AccessibleState\",\"AccessibleStateSet\",\"AccessibleTable\",\"AccessibleTableModelChange\",\"AccessibleText\",\"AccessibleValue\",\"AccountExpiredException\",\"Acl\",\"AclEntry\",\"AclNotFoundException\",\"Action\",\"ActionEvent\",\"ActionListener\",\"ActionMap\",\"ActionMapUIResource\",\"Activatable\",\"ActivateFailedException\",\"ActivationDesc\",\"ActivationException\",\"ActivationGroup\",\"ActivationGroupDesc\",\"ActivationGroupID\",\"ActivationGroup_Stub\",\"ActivationID\",\"ActivationInstantiator\",\"ActivationMonitor\",\"ActivationSystem\",\"Activator\",\"ActiveEvent\",\"ActiveValue\",\"AdapterActivator\",\"AdapterActivatorOperations\",\"AdapterAlreadyExists\",\"AdapterAlreadyExistsHelper\",\"AdapterInactive\",\"AdapterInactiveHelper\",\"AdapterNonExistent\",\"AdapterNonExistentHelper\",\"AddressHelper\",\"Adjustable\",\"AdjustmentEvent\",\"AdjustmentListener\",\"Adler32\",\"AffineTransform\",\"AffineTransformOp\",\"AlgorithmParameterGenerator\",\"AlgorithmParameterGeneratorSpi\",\"AlgorithmParameterSpec\",\"AlgorithmParameters\",\"AlgorithmParametersSpi\",\"AlignmentAction\",\"AllPermission\",\"AlphaComposite\",\"AlreadyBound\",\"AlreadyBoundException\",\"AlreadyBoundHelper\",\"AlreadyBoundHolder\",\"AlreadyConnectedException\",\"AncestorEvent\",\"AncestorListener\",\"Annotation\",\"Any\",\"AnyHolder\",\"AnySeqHelper\",\"AnySeqHolder\",\"AppConfigurationEntry\",\"Applet\",\"AppletContext\",\"AppletInitializer\",\"AppletStub\",\"ApplicationException\",\"Arc2D\",\"Area\",\"AreaAveragingScaleFilter\",\"ArithmeticException\",\"Array\",\"ArrayIndexOutOfBoundsException\",\"ArrayList\",\"ArrayStoreException\",\"Arrays\",\"AssertionError\",\"AsyncBoxView\",\"AsynchronousCloseException\",\"Attr\",\"Attribute\",\"AttributeContext\",\"AttributeException\",\"AttributeInUseException\",\"AttributeList\",\"AttributeListImpl\",\"AttributeModificationException\",\"AttributeSet\",\"AttributeSetUtilities\",\"AttributeUndoableEdit\",\"AttributedCharacterIterator\",\"AttributedString\",\"Attributes\",\"AttributesImpl\",\"AudioClip\",\"AudioFileFormat\",\"AudioFileReader\",\"AudioFileWriter\",\"AudioFormat\",\"AudioInputStream\",\"AudioPermission\",\"AudioSystem\",\"AuthPermission\",\"AuthenticationException\",\"AuthenticationNotSupportedException\",\"Authenticator\",\"Autoscroll\",\"BAD_CONTEXT\",\"BAD_INV_ORDER\",\"BAD_OPERATION\",\"BAD_PARAM\",\"BAD_POLICY\",\"BAD_POLICY_TYPE\",\"BAD_POLICY_VALUE\",\"BAD_TYPECODE\",\"BCSIterator\",\"BCSSServiceProvider\",\"BYTE_ARRAY\",\"BackingStoreException\",\"BadKind\",\"BadLocationException\",\"BadPaddingException\",\"BandCombineOp\",\"BandedSampleModel\",\"BasicArrowButton\",\"BasicAttribute\",\"BasicAttributes\",\"BasicBorders\",\"BasicButtonListener\",\"BasicButtonUI\",\"BasicCaret\",\"BasicCheckBoxMenuItemUI\",\"BasicCheckBoxUI\",\"BasicColorChooserUI\",\"BasicComboBoxEditor\",\"BasicComboBoxRenderer\",\"BasicComboBoxUI\",\"BasicComboPopup\",\"BasicDesktopIconUI\",\"BasicDesktopPaneUI\",\"BasicDirectoryModel\",\"BasicEditorPaneUI\",\"BasicFileChooserUI\",\"BasicFormattedTextFieldUI\",\"BasicGraphicsUtils\",\"BasicHTML\",\"BasicHighlighter\",\"BasicIconFactory\",\"BasicInternalFrameTitlePane\",\"BasicInternalFrameUI\",\"BasicLabelUI\",\"BasicListUI\",\"BasicLookAndFeel\",\"BasicMenuBarUI\",\"BasicMenuItemUI\",\"BasicMenuUI\",\"BasicOptionPaneUI\",\"BasicPanelUI\",\"BasicPasswordFieldUI\",\"BasicPermission\",\"BasicPopupMenuSeparatorUI\",\"BasicPopupMenuUI\",\"BasicProgressBarUI\",\"BasicRadioButtonMenuItemUI\",\"BasicRadioButtonUI\",\"BasicRootPaneUI\",\"BasicScrollBarUI\",\"BasicScrollPaneUI\",\"BasicSeparatorUI\",\"BasicSliderUI\",\"BasicSpinnerUI\",\"BasicSplitPaneDivider\",\"BasicSplitPaneUI\",\"BasicStroke\",\"BasicTabbedPaneUI\",\"BasicTableHeaderUI\",\"BasicTableUI\",\"BasicTextAreaUI\",\"BasicTextFieldUI\",\"BasicTextPaneUI\",\"BasicTextUI\",\"BasicToggleButtonUI\",\"BasicToolBarSeparatorUI\",\"BasicToolBarUI\",\"BasicToolTipUI\",\"BasicTreeUI\",\"BasicViewportUI\",\"BatchUpdateException\",\"BeanContext\",\"BeanContextChild\",\"BeanContextChildComponentProxy\",\"BeanContextChildSupport\",\"BeanContextContainerProxy\",\"BeanContextEvent\",\"BeanContextMembershipEvent\",\"BeanContextMembershipListener\",\"BeanContextProxy\",\"BeanContextServiceAvailableEvent\",\"BeanContextServiceProvider\",\"BeanContextServiceProviderBeanInfo\",\"BeanContextServiceRevokedEvent\",\"BeanContextServiceRevokedListener\",\"BeanContextServices\",\"BeanContextServicesListener\",\"BeanContextServicesSupport\",\"BeanContextSupport\",\"BeanDescriptor\",\"BeanInfo\",\"Beans\",\"BeepAction\",\"BevelBorder\",\"BevelBorderUIResource\",\"Bias\",\"Bidi\",\"BigDecimal\",\"BigInteger\",\"BinaryRefAddr\",\"BindException\",\"Binding\",\"BindingHelper\",\"BindingHolder\",\"BindingIterator\",\"BindingIteratorHelper\",\"BindingIteratorHolder\",\"BindingIteratorOperations\",\"BindingIteratorPOA\",\"BindingListHelper\",\"BindingListHolder\",\"BindingType\",\"BindingTypeHelper\",\"BindingTypeHolder\",\"BitSet\",\"Blob\",\"BlockView\",\"BoldAction\",\"Book\",\"Boolean\",\"BooleanControl\",\"BooleanHolder\",\"BooleanSeqHelper\",\"BooleanSeqHolder\",\"Border\",\"BorderFactory\",\"BorderLayout\",\"BorderUIResource\",\"BoundedRangeModel\",\"Bounds\",\"Box\",\"BoxLayout\",\"BoxPainter\",\"BoxView\",\"BoxedValueHelper\",\"BreakIterator\",\"Buffer\",\"BufferCapabilities\",\"BufferOverflowException\",\"BufferStrategy\",\"BufferUnderflowException\",\"BufferedImage\",\"BufferedImageFilter\",\"BufferedImageOp\",\"BufferedInputStream\",\"BufferedOutputStream\",\"BufferedReader\",\"BufferedWriter\",\"Button\",\"ButtonAreaLayout\",\"ButtonBorder\",\"ButtonGroup\",\"ButtonModel\",\"ButtonUI\",\"Byte\",\"ByteArrayInputStream\",\"ByteArrayOutputStream\",\"ByteBuffer\",\"ByteChannel\",\"ByteHolder\",\"ByteLookupTable\",\"ByteOrder\",\"CDATASection\",\"CHAR_ARRAY\",\"CMMException\",\"COMM_FAILURE\",\"CRC32\",\"CRL\",\"CRLException\",\"CRLSelector\",\"CSS\",\"CTX_RESTRICT_SCOPE\",\"Calendar\",\"CallableStatement\",\"Callback\",\"CallbackHandler\",\"CancelablePrintJob\",\"CancelledKeyException\",\"CannotProceed\",\"CannotProceedException\",\"CannotProceedHelper\",\"CannotProceedHolder\",\"CannotRedoException\",\"CannotUndoException\",\"Canvas\",\"CardLayout\",\"Caret\",\"CaretEvent\",\"CaretListener\",\"CaretPolicy\",\"CellEditor\",\"CellEditorListener\",\"CellRendererPane\",\"CertPath\",\"CertPathBuilder\",\"CertPathBuilderException\",\"CertPathBuilderResult\",\"CertPathBuilderSpi\",\"CertPathParameters\",\"CertPathRep\",\"CertPathValidator\",\"CertPathValidatorException\",\"CertPathValidatorResult\",\"CertPathValidatorSpi\",\"CertSelector\",\"CertStore\",\"CertStoreException\",\"CertStoreParameters\",\"CertStoreSpi\",\"Certificate\",\"CertificateEncodingException\",\"CertificateException\",\"CertificateExpiredException\",\"CertificateFactory\",\"CertificateFactorySpi\",\"CertificateNotYetValidException\",\"CertificateParsingException\",\"CertificateRep\",\"ChangeEvent\",\"ChangeListener\",\"ChangedCharSetException\",\"Channel\",\"ChannelBinding\",\"Channels\",\"CharArrayReader\",\"CharArrayWriter\",\"CharBuffer\",\"CharConversionException\",\"CharHolder\",\"CharSeqHelper\",\"CharSeqHolder\",\"CharSequence\",\"Character\",\"CharacterAttribute\",\"CharacterCodingException\",\"CharacterConstants\",\"CharacterData\",\"CharacterIterator\",\"Charset\",\"CharsetDecoder\",\"CharsetEncoder\",\"CharsetProvider\",\"Checkbox\",\"CheckboxGroup\",\"CheckboxMenuItem\",\"CheckedInputStream\",\"CheckedOutputStream\",\"Checksum\",\"Choice\",\"ChoiceCallback\",\"ChoiceFormat\",\"Chromaticity\",\"Cipher\",\"CipherInputStream\",\"CipherOutputStream\",\"CipherSpi\",\"Class\",\"ClassCastException\",\"ClassCircularityError\",\"ClassDesc\",\"ClassFormatError\",\"ClassLoader\",\"ClassNotFoundException\",\"ClientRequestInfo\",\"ClientRequestInfoOperations\",\"ClientRequestInterceptor\",\"ClientRequestInterceptorOperations\",\"Clip\",\"Clipboard\",\"ClipboardOwner\",\"Clob\",\"CloneNotSupportedException\",\"Cloneable\",\"ClosedByInterruptException\",\"ClosedChannelException\",\"ClosedSelectorException\",\"CodeSets\",\"CodeSource\",\"Codec\",\"CodecFactory\",\"CodecFactoryHelper\",\"CodecFactoryOperations\",\"CodecOperations\",\"CoderMalfunctionError\",\"CoderResult\",\"CodingErrorAction\",\"CollationElementIterator\",\"CollationKey\",\"Collator\",\"Collection\",\"CollectionCertStoreParameters\",\"Collections\",\"Color\",\"ColorAttribute\",\"ColorChooserComponentFactory\",\"ColorChooserUI\",\"ColorConstants\",\"ColorConvertOp\",\"ColorModel\",\"ColorSelectionModel\",\"ColorSpace\",\"ColorSupported\",\"ColorType\",\"ColorUIResource\",\"ComboBoxEditor\",\"ComboBoxModel\",\"ComboBoxUI\",\"ComboPopup\",\"CommandEnvironment\",\"Comment\",\"CommunicationException\",\"Comparable\",\"Comparator\",\"Compiler\",\"CompletionStatus\",\"CompletionStatusHelper\",\"Component\",\"ComponentAdapter\",\"ComponentColorModel\",\"ComponentEvent\",\"ComponentIdHelper\",\"ComponentInputMap\",\"ComponentInputMapUIResource\",\"ComponentListener\",\"ComponentOrientation\",\"ComponentSampleModel\",\"ComponentUI\",\"ComponentView\",\"Composite\",\"CompositeContext\",\"CompositeName\",\"CompositeView\",\"CompoundBorder\",\"CompoundBorderUIResource\",\"CompoundControl\",\"CompoundEdit\",\"CompoundName\",\"Compression\",\"ConcurrentModificationException\",\"Configuration\",\"ConfigurationException\",\"ConfirmationCallback\",\"ConnectException\",\"ConnectIOException\",\"Connection\",\"ConnectionEvent\",\"ConnectionEventListener\",\"ConnectionPendingException\",\"ConnectionPoolDataSource\",\"ConsoleHandler\",\"Constraints\",\"Constructor\",\"Container\",\"ContainerAdapter\",\"ContainerEvent\",\"ContainerListener\",\"ContainerOrderFocusTraversalPolicy\",\"Content\",\"ContentHandler\",\"ContentHandlerFactory\",\"ContentModel\",\"Context\",\"ContextList\",\"ContextNotEmptyException\",\"ContextualRenderedImageFactory\",\"Control\",\"ControlFactory\",\"ControllerEventListener\",\"ConvolveOp\",\"CookieHolder\",\"Copies\",\"CopiesSupported\",\"CopyAction\",\"CredentialExpiredException\",\"CropImageFilter\",\"CubicCurve2D\",\"Currency\",\"Current\",\"CurrentHelper\",\"CurrentHolder\",\"CurrentOperations\",\"Cursor\",\"CustomMarshal\",\"CustomValue\",\"Customizer\",\"CutAction\",\"DATA_CONVERSION\",\"DESKeySpec\",\"DESedeKeySpec\",\"DGC\",\"DHGenParameterSpec\",\"DHKey\",\"DHParameterSpec\",\"DHPrivateKey\",\"DHPrivateKeySpec\",\"DHPublicKey\",\"DHPublicKeySpec\",\"DOMException\",\"DOMImplementation\",\"DOMLocator\",\"DOMResult\",\"DOMSource\",\"DSAKey\",\"DSAKeyPairGenerator\",\"DSAParameterSpec\",\"DSAParams\",\"DSAPrivateKey\",\"DSAPrivateKeySpec\",\"DSAPublicKey\",\"DSAPublicKeySpec\",\"DTD\",\"DTDConstants\",\"DTDHandler\",\"DataBuffer\",\"DataBufferByte\",\"DataBufferDouble\",\"DataBufferFloat\",\"DataBufferInt\",\"DataBufferShort\",\"DataBufferUShort\",\"DataFlavor\",\"DataFormatException\",\"DataInput\",\"DataInputStream\",\"DataLine\",\"DataOutput\",\"DataOutputStream\",\"DataSource\",\"DataTruncation\",\"DatabaseMetaData\",\"DatagramChannel\",\"DatagramPacket\",\"DatagramSocket\",\"DatagramSocketImpl\",\"DatagramSocketImplFactory\",\"Date\",\"DateEditor\",\"DateFormat\",\"DateFormatSymbols\",\"DateFormatter\",\"DateTimeAtCompleted\",\"DateTimeAtCreation\",\"DateTimeAtProcessing\",\"DateTimeSyntax\",\"DebugGraphics\",\"DecimalFormat\",\"DecimalFormatSymbols\",\"DeclHandler\",\"DefaultBoundedRangeModel\",\"DefaultButtonModel\",\"DefaultCaret\",\"DefaultCellEditor\",\"DefaultColorSelectionModel\",\"DefaultComboBoxModel\",\"DefaultDesktopManager\",\"DefaultEditor\",\"DefaultEditorKit\",\"DefaultFocusManager\",\"DefaultFocusTraversalPolicy\",\"DefaultFormatter\",\"DefaultFormatterFactory\",\"DefaultHandler\",\"DefaultHighlightPainter\",\"DefaultHighlighter\",\"DefaultKeyTypedAction\",\"DefaultKeyboardFocusManager\",\"DefaultListCellRenderer\",\"DefaultListModel\",\"DefaultListSelectionModel\",\"DefaultMenuLayout\",\"DefaultMetalTheme\",\"DefaultMutableTreeNode\",\"DefaultPersistenceDelegate\",\"DefaultSelectionType\",\"DefaultSingleSelectionModel\",\"DefaultStyledDocument\",\"DefaultTableCellRenderer\",\"DefaultTableColumnModel\",\"DefaultTableModel\",\"DefaultTextUI\",\"DefaultTreeCellEditor\",\"DefaultTreeCellRenderer\",\"DefaultTreeModel\",\"DefaultTreeSelectionModel\",\"DefinitionKind\",\"DefinitionKindHelper\",\"Deflater\",\"DeflaterOutputStream\",\"Delegate\",\"DelegationPermission\",\"DesignMode\",\"DesktopIconUI\",\"DesktopManager\",\"DesktopPaneUI\",\"Destination\",\"DestinationType\",\"DestroyFailedException\",\"Destroyable\",\"Dialog\",\"DialogType\",\"Dictionary\",\"DigestException\",\"DigestInputStream\",\"DigestOutputStream\",\"Dimension\",\"Dimension2D\",\"DimensionUIResource\",\"DirContext\",\"DirObjectFactory\",\"DirStateFactory\",\"DirectColorModel\",\"DirectoryManager\",\"DisplayMode\",\"DnDConstants\",\"Doc\",\"DocAttribute\",\"DocAttributeSet\",\"DocFlavor\",\"DocPrintJob\",\"Document\",\"DocumentBuilder\",\"DocumentBuilderFactory\",\"DocumentEvent\",\"DocumentFilter\",\"DocumentFragment\",\"DocumentHandler\",\"DocumentListener\",\"DocumentName\",\"DocumentParser\",\"DocumentType\",\"DomainCombiner\",\"DomainManager\",\"DomainManagerOperations\",\"Double\",\"DoubleBuffer\",\"DoubleHolder\",\"DoubleSeqHelper\",\"DoubleSeqHolder\",\"DragGestureEvent\",\"DragGestureListener\",\"DragGestureRecognizer\",\"DragSource\",\"DragSourceAdapter\",\"DragSourceContext\",\"DragSourceDragEvent\",\"DragSourceDropEvent\",\"DragSourceEvent\",\"DragSourceListener\",\"DragSourceMotionListener\",\"Driver\",\"DriverManager\",\"DriverPropertyInfo\",\"DropTarget\",\"DropTargetAdapter\",\"DropTargetAutoScroller\",\"DropTargetContext\",\"DropTargetDragEvent\",\"DropTargetDropEvent\",\"DropTargetEvent\",\"DropTargetListener\",\"DuplicateName\",\"DuplicateNameHelper\",\"DynAny\",\"DynAnyFactory\",\"DynAnyFactoryHelper\",\"DynAnyFactoryOperations\",\"DynAnyHelper\",\"DynAnyOperations\",\"DynAnySeqHelper\",\"DynArray\",\"DynArrayHelper\",\"DynArrayOperations\",\"DynEnum\",\"DynEnumHelper\",\"DynEnumOperations\",\"DynFixed\",\"DynFixedHelper\",\"DynFixedOperations\",\"DynSequence\",\"DynSequenceHelper\",\"DynSequenceOperations\",\"DynStruct\",\"DynStructHelper\",\"DynStructOperations\",\"DynUnion\",\"DynUnionHelper\",\"DynUnionOperations\",\"DynValue\",\"DynValueBox\",\"DynValueBoxOperations\",\"DynValueCommon\",\"DynValueCommonOperations\",\"DynValueHelper\",\"DynValueOperations\",\"DynamicImplementation\",\"DynamicUtilTreeNode\",\"ENCODING_CDR_ENCAPS\",\"EOFException\",\"EditorKit\",\"Element\",\"ElementChange\",\"ElementEdit\",\"ElementIterator\",\"ElementSpec\",\"Ellipse2D\",\"EmptyBorder\",\"EmptyBorderUIResource\",\"EmptySelectionModel\",\"EmptyStackException\",\"EncodedKeySpec\",\"Encoder\",\"Encoding\",\"EncryptedPrivateKeyInfo\",\"Engineering\",\"Entity\",\"EntityReference\",\"EntityResolver\",\"Entry\",\"EnumControl\",\"EnumSyntax\",\"Enumeration\",\"Environment\",\"Error\",\"ErrorHandler\",\"ErrorListener\",\"ErrorManager\",\"EtchedBorder\",\"EtchedBorderUIResource\",\"Event\",\"EventContext\",\"EventDirContext\",\"EventHandler\",\"EventListener\",\"EventListenerList\",\"EventListenerProxy\",\"EventObject\",\"EventQueue\",\"EventSetDescriptor\",\"EventType\",\"Exception\",\"ExceptionInInitializerError\",\"ExceptionList\",\"ExceptionListener\",\"ExemptionMechanism\",\"ExemptionMechanismException\",\"ExemptionMechanismSpi\",\"ExpandVetoException\",\"ExportException\",\"Expression\",\"ExtendedRequest\",\"ExtendedResponse\",\"Externalizable\",\"FREE_MEM\",\"FactoryConfigurationError\",\"FailedLoginException\",\"FeatureDescriptor\",\"Fidelity\",\"Field\",\"FieldBorder\",\"FieldNameHelper\",\"FieldPosition\",\"FieldView\",\"File\",\"FileCacheImageInputStream\",\"FileCacheImageOutputStream\",\"FileChannel\",\"FileChooserUI\",\"FileDescriptor\",\"FileDialog\",\"FileFilter\",\"FileHandler\",\"FileIcon16\",\"FileImageInputStream\",\"FileImageOutputStream\",\"FileInputStream\",\"FileLock\",\"FileLockInterruptionException\",\"FileNameMap\",\"FileNotFoundException\",\"FileOutputStream\",\"FilePermission\",\"FileReader\",\"FileSystemView\",\"FileView\",\"FileWriter\",\"FilenameFilter\",\"Filler\",\"Filter\",\"FilterBypass\",\"FilterInputStream\",\"FilterOutputStream\",\"FilterReader\",\"FilterWriter\",\"FilteredImageSource\",\"Finishings\",\"FixedHeightLayoutCache\",\"FixedHolder\",\"FlatteningPathIterator\",\"FlavorException\",\"FlavorMap\",\"FlavorTable\",\"FlipContents\",\"Float\",\"FloatBuffer\",\"FloatControl\",\"FloatHolder\",\"FloatSeqHelper\",\"FloatSeqHolder\",\"FlowLayout\",\"FlowStrategy\",\"FlowView\",\"Flush3DBorder\",\"FocusAdapter\",\"FocusEvent\",\"FocusListener\",\"FocusManager\",\"FocusTraversalPolicy\",\"FolderIcon16\",\"Font\",\"FontAttribute\",\"FontConstants\",\"FontFamilyAction\",\"FontFormatException\",\"FontMetrics\",\"FontRenderContext\",\"FontSizeAction\",\"FontUIResource\",\"ForegroundAction\",\"FormView\",\"Format\",\"FormatConversionProvider\",\"FormatMismatch\",\"FormatMismatchHelper\",\"Formatter\",\"ForwardRequest\",\"ForwardRequestHelper\",\"Frame\",\"GSSContext\",\"GSSCredential\",\"GSSException\",\"GSSManager\",\"GSSName\",\"GZIPInputStream\",\"GZIPOutputStream\",\"GapContent\",\"GatheringByteChannel\",\"GeneralPath\",\"GeneralSecurityException\",\"GetField\",\"GlyphJustificationInfo\",\"GlyphMetrics\",\"GlyphPainter\",\"GlyphVector\",\"GlyphView\",\"GradientPaint\",\"GraphicAttribute\",\"Graphics\",\"Graphics2D\",\"GraphicsConfigTemplate\",\"GraphicsConfiguration\",\"GraphicsDevice\",\"GraphicsEnvironment\",\"GrayFilter\",\"GregorianCalendar\",\"GridBagConstraints\",\"GridBagLayout\",\"GridLayout\",\"Group\",\"Guard\",\"GuardedObject\",\"HTML\",\"HTMLDocument\",\"HTMLEditorKit\",\"HTMLFrameHyperlinkEvent\",\"HTMLWriter\",\"Handler\",\"HandlerBase\",\"HandshakeCompletedEvent\",\"HandshakeCompletedListener\",\"HasControls\",\"HashAttributeSet\",\"HashDocAttributeSet\",\"HashMap\",\"HashPrintJobAttributeSet\",\"HashPrintRequestAttributeSet\",\"HashPrintServiceAttributeSet\",\"HashSet\",\"Hashtable\",\"HeadlessException\",\"HierarchyBoundsAdapter\",\"HierarchyBoundsListener\",\"HierarchyEvent\",\"HierarchyListener\",\"Highlight\",\"HighlightPainter\",\"Highlighter\",\"HostnameVerifier\",\"HttpURLConnection\",\"HttpsURLConnection\",\"HyperlinkEvent\",\"HyperlinkListener\",\"ICC_ColorSpace\",\"ICC_Profile\",\"ICC_ProfileGray\",\"ICC_ProfileRGB\",\"IDLEntity\",\"IDLType\",\"IDLTypeHelper\",\"IDLTypeOperations\",\"ID_ASSIGNMENT_POLICY_ID\",\"ID_UNIQUENESS_POLICY_ID\",\"IIOByteBuffer\",\"IIOException\",\"IIOImage\",\"IIOInvalidTreeException\",\"IIOMetadata\",\"IIOMetadataController\",\"IIOMetadataFormat\",\"IIOMetadataFormatImpl\",\"IIOMetadataNode\",\"IIOParam\",\"IIOParamController\",\"IIOReadProgressListener\",\"IIOReadUpdateListener\",\"IIOReadWarningListener\",\"IIORegistry\",\"IIOServiceProvider\",\"IIOWriteProgressListener\",\"IIOWriteWarningListener\",\"IMPLICIT_ACTIVATION_POLICY_ID\",\"IMP_LIMIT\",\"INITIALIZE\",\"INPUT_STREAM\",\"INTERNAL\",\"INTF_REPOS\",\"INVALID_TRANSACTION\",\"INV_FLAG\",\"INV_IDENT\",\"INV_OBJREF\",\"INV_POLICY\",\"IOException\",\"IOR\",\"IORHelper\",\"IORHolder\",\"IORInfo\",\"IORInfoOperations\",\"IORInterceptor\",\"IORInterceptorOperations\",\"IRObject\",\"IRObjectOperations\",\"ISO\",\"Icon\",\"IconUIResource\",\"IconView\",\"IdAssignmentPolicy\",\"IdAssignmentPolicyOperations\",\"IdAssignmentPolicyValue\",\"IdUniquenessPolicy\",\"IdUniquenessPolicyOperations\",\"IdUniquenessPolicyValue\",\"IdentifierHelper\",\"Identity\",\"IdentityHashMap\",\"IdentityScope\",\"IllegalAccessError\",\"IllegalAccessException\",\"IllegalArgumentException\",\"IllegalBlockSizeException\",\"IllegalBlockingModeException\",\"IllegalCharsetNameException\",\"IllegalComponentStateException\",\"IllegalMonitorStateException\",\"IllegalPathStateException\",\"IllegalSelectorException\",\"IllegalStateException\",\"IllegalThreadStateException\",\"Image\",\"ImageCapabilities\",\"ImageConsumer\",\"ImageFilter\",\"ImageGraphicAttribute\",\"ImageIO\",\"ImageIcon\",\"ImageInputStream\",\"ImageInputStreamImpl\",\"ImageInputStreamSpi\",\"ImageObserver\",\"ImageOutputStream\",\"ImageOutputStreamImpl\",\"ImageOutputStreamSpi\",\"ImageProducer\",\"ImageReadParam\",\"ImageReader\",\"ImageReaderSpi\",\"ImageReaderWriterSpi\",\"ImageTranscoder\",\"ImageTranscoderSpi\",\"ImageTypeSpecifier\",\"ImageView\",\"ImageWriteParam\",\"ImageWriter\",\"ImageWriterSpi\",\"ImagingOpException\",\"ImplicitActivationPolicy\",\"ImplicitActivationPolicyOperations\",\"ImplicitActivationPolicyValue\",\"IncompatibleClassChangeError\",\"InconsistentTypeCode\",\"InconsistentTypeCodeHelper\",\"IndexColorModel\",\"IndexOutOfBoundsException\",\"IndexedPropertyDescriptor\",\"IndirectionException\",\"Inet4Address\",\"Inet6Address\",\"InetAddress\",\"InetSocketAddress\",\"Inflater\",\"InflaterInputStream\",\"Info\",\"InheritableThreadLocal\",\"InitialContext\",\"InitialContextFactory\",\"InitialContextFactoryBuilder\",\"InitialDirContext\",\"InitialLdapContext\",\"InlineView\",\"InputContext\",\"InputEvent\",\"InputMap\",\"InputMapUIResource\",\"InputMethod\",\"InputMethodContext\",\"InputMethodDescriptor\",\"InputMethodEvent\",\"InputMethodHighlight\",\"InputMethodListener\",\"InputMethodRequests\",\"InputSource\",\"InputStream\",\"InputStreamReader\",\"InputSubset\",\"InputVerifier\",\"InsertBreakAction\",\"InsertContentAction\",\"InsertHTMLTextAction\",\"InsertTabAction\",\"Insets\",\"InsetsUIResource\",\"InstantiationError\",\"InstantiationException\",\"Instrument\",\"InsufficientResourcesException\",\"IntBuffer\",\"IntHolder\",\"Integer\",\"IntegerSyntax\",\"Interceptor\",\"InterceptorOperations\",\"InternalError\",\"InternalFrameAdapter\",\"InternalFrameBorder\",\"InternalFrameEvent\",\"InternalFrameFocusTraversalPolicy\",\"InternalFrameListener\",\"InternalFrameUI\",\"InternationalFormatter\",\"InterruptedException\",\"InterruptedIOException\",\"InterruptedNamingException\",\"InterruptibleChannel\",\"IntrospectionException\",\"Introspector\",\"Invalid\",\"InvalidAddress\",\"InvalidAddressHelper\",\"InvalidAddressHolder\",\"InvalidAlgorithmParameterException\",\"InvalidAttributeIdentifierException\",\"InvalidAttributeValueException\",\"InvalidAttributesException\",\"InvalidClassException\",\"InvalidDnDOperationException\",\"InvalidKeyException\",\"InvalidKeySpecException\",\"InvalidMarkException\",\"InvalidMidiDataException\",\"InvalidName\",\"InvalidNameException\",\"InvalidNameHelper\",\"InvalidNameHolder\",\"InvalidObjectException\",\"InvalidParameterException\",\"InvalidParameterSpecException\",\"InvalidPolicy\",\"InvalidPolicyHelper\",\"InvalidPreferencesFormatException\",\"InvalidSearchControlsException\",\"InvalidSearchFilterException\",\"InvalidSeq\",\"InvalidSlot\",\"InvalidSlotHelper\",\"InvalidTransactionException\",\"InvalidTypeForEncoding\",\"InvalidTypeForEncodingHelper\",\"InvalidValue\",\"InvalidValueHelper\",\"InvocationEvent\",\"InvocationHandler\",\"InvocationTargetException\",\"InvokeHandler\",\"IstringHelper\",\"ItalicAction\",\"ItemEvent\",\"ItemListener\",\"ItemSelectable\",\"Iterator\",\"IvParameterSpec\",\"JApplet\",\"JButton\",\"JCheckBox\",\"JCheckBoxMenuItem\",\"JColorChooser\",\"JComboBox\",\"JComponent\",\"JDesktopIcon\",\"JDesktopPane\",\"JDialog\",\"JEditorPane\",\"JFileChooser\",\"JFormattedTextField\",\"JFrame\",\"JIS\",\"JInternalFrame\",\"JLabel\",\"JLayeredPane\",\"JList\",\"JMenu\",\"JMenuBar\",\"JMenuItem\",\"JOptionPane\",\"JPEGHuffmanTable\",\"JPEGImageReadParam\",\"JPEGImageWriteParam\",\"JPEGQTable\",\"JPanel\",\"JPasswordField\",\"JPopupMenu\",\"JProgressBar\",\"JRadioButton\",\"JRadioButtonMenuItem\",\"JRootPane\",\"JScrollBar\",\"JScrollPane\",\"JSeparator\",\"JSlider\",\"JSpinner\",\"JSplitPane\",\"JTabbedPane\",\"JTable\",\"JTableHeader\",\"JTextArea\",\"JTextComponent\",\"JTextField\",\"JTextPane\",\"JToggleButton\",\"JToolBar\",\"JToolTip\",\"JTree\",\"JViewport\",\"JWindow\",\"JarEntry\",\"JarException\",\"JarFile\",\"JarInputStream\",\"JarOutputStream\",\"JarURLConnection\",\"JobAttributes\",\"JobHoldUntil\",\"JobImpressions\",\"JobImpressionsCompleted\",\"JobImpressionsSupported\",\"JobKOctets\",\"JobKOctetsProcessed\",\"JobKOctetsSupported\",\"JobMediaSheets\",\"JobMediaSheetsCompleted\",\"JobMediaSheetsSupported\",\"JobMessageFromOperator\",\"JobName\",\"JobOriginatingUserName\",\"JobPriority\",\"JobPrioritySupported\",\"JobSheets\",\"JobState\",\"JobStateReason\",\"JobStateReasons\",\"KerberosKey\",\"KerberosPrincipal\",\"KerberosTicket\",\"Kernel\",\"Key\",\"KeyAdapter\",\"KeyAgreement\",\"KeyAgreementSpi\",\"KeyBinding\",\"KeyEvent\",\"KeyEventDispatcher\",\"KeyEventPostProcessor\",\"KeyException\",\"KeyFactory\",\"KeyFactorySpi\",\"KeyGenerator\",\"KeyGeneratorSpi\",\"KeyListener\",\"KeyManagementException\",\"KeyManager\",\"KeyManagerFactory\",\"KeyManagerFactorySpi\",\"KeyPair\",\"KeyPairGenerator\",\"KeyPairGeneratorSpi\",\"KeySelectionManager\",\"KeySpec\",\"KeyStore\",\"KeyStoreException\",\"KeyStoreSpi\",\"KeyStroke\",\"KeyboardFocusManager\",\"Keymap\",\"LDAPCertStoreParameters\",\"LIFESPAN_POLICY_ID\",\"LOCATION_FORWARD\",\"Label\",\"LabelUI\",\"LabelView\",\"LanguageCallback\",\"LastOwnerException\",\"LayerPainter\",\"LayeredHighlighter\",\"LayoutFocusTraversalPolicy\",\"LayoutManager\",\"LayoutManager2\",\"LayoutQueue\",\"LazyInputMap\",\"LazyValue\",\"LdapContext\",\"LdapReferralException\",\"Lease\",\"Level\",\"LexicalHandler\",\"LifespanPolicy\",\"LifespanPolicyOperations\",\"LifespanPolicyValue\",\"LimitExceededException\",\"Line\",\"Line2D\",\"LineBorder\",\"LineBorderUIResource\",\"LineBreakMeasurer\",\"LineEvent\",\"LineListener\",\"LineMetrics\",\"LineNumberInputStream\",\"LineNumberReader\",\"LineUnavailableException\",\"LinkController\",\"LinkException\",\"LinkLoopException\",\"LinkRef\",\"LinkageError\",\"LinkedHashMap\",\"LinkedHashSet\",\"LinkedList\",\"List\",\"ListCellRenderer\",\"ListDataEvent\",\"ListDataListener\",\"ListEditor\",\"ListIterator\",\"ListModel\",\"ListPainter\",\"ListResourceBundle\",\"ListSelectionEvent\",\"ListSelectionListener\",\"ListSelectionModel\",\"ListUI\",\"ListView\",\"LoaderHandler\",\"LocalObject\",\"Locale\",\"LocateRegistry\",\"Locator\",\"LocatorImpl\",\"LogManager\",\"LogRecord\",\"LogStream\",\"Logger\",\"LoggingPermission\",\"LoginContext\",\"LoginException\",\"LoginModule\",\"LoginModuleControlFlag\",\"Long\",\"LongBuffer\",\"LongHolder\",\"LongLongSeqHelper\",\"LongLongSeqHolder\",\"LongSeqHelper\",\"LongSeqHolder\",\"LookAndFeel\",\"LookAndFeelInfo\",\"LookupOp\",\"LookupTable\",\"MARSHAL\",\"Mac\",\"MacSpi\",\"MalformedInputException\",\"MalformedLinkException\",\"MalformedURLException\",\"ManagerFactoryParameters\",\"Manifest\",\"Map\",\"MapMode\",\"MappedByteBuffer\",\"MarginBorder\",\"MarshalException\",\"MarshalledObject\",\"MaskFormatter\",\"Matcher\",\"Math\",\"MatteBorder\",\"MatteBorderUIResource\",\"Media\",\"MediaName\",\"MediaPrintableArea\",\"MediaSize\",\"MediaSizeName\",\"MediaTracker\",\"MediaTray\",\"MediaType\",\"Member\",\"MemoryCacheImageInputStream\",\"MemoryCacheImageOutputStream\",\"MemoryHandler\",\"MemoryImageSource\",\"Menu\",\"MenuBar\",\"MenuBarBorder\",\"MenuBarUI\",\"MenuComponent\",\"MenuContainer\",\"MenuDragMouseEvent\",\"MenuDragMouseListener\",\"MenuElement\",\"MenuEvent\",\"MenuItem\",\"MenuItemBorder\",\"MenuItemUI\",\"MenuKeyEvent\",\"MenuKeyListener\",\"MenuListener\",\"MenuSelectionManager\",\"MenuShortcut\",\"MessageDigest\",\"MessageDigestSpi\",\"MessageFormat\",\"MessageProp\",\"MetaEventListener\",\"MetaMessage\",\"MetalBorders\",\"MetalButtonUI\",\"MetalCheckBoxIcon\",\"MetalCheckBoxUI\",\"MetalComboBoxButton\",\"MetalComboBoxEditor\",\"MetalComboBoxIcon\",\"MetalComboBoxUI\",\"MetalDesktopIconUI\",\"MetalFileChooserUI\",\"MetalIconFactory\",\"MetalInternalFrameTitlePane\",\"MetalInternalFrameUI\",\"MetalLabelUI\",\"MetalLookAndFeel\",\"MetalPopupMenuSeparatorUI\",\"MetalProgressBarUI\",\"MetalRadioButtonUI\",\"MetalRootPaneUI\",\"MetalScrollBarUI\",\"MetalScrollButton\",\"MetalScrollPaneUI\",\"MetalSeparatorUI\",\"MetalSliderUI\",\"MetalSplitPaneUI\",\"MetalTabbedPaneUI\",\"MetalTextFieldUI\",\"MetalTheme\",\"MetalToggleButtonUI\",\"MetalToolBarUI\",\"MetalToolTipUI\",\"MetalTreeUI\",\"Method\",\"MethodDescriptor\",\"MidiChannel\",\"MidiDevice\",\"MidiDeviceProvider\",\"MidiEvent\",\"MidiFileFormat\",\"MidiFileReader\",\"MidiFileWriter\",\"MidiMessage\",\"MidiSystem\",\"MidiUnavailableException\",\"MimeTypeParseException\",\"MinimalHTMLWriter\",\"MissingResourceException\",\"Mixer\",\"MixerProvider\",\"ModificationItem\",\"Modifier\",\"MouseAdapter\",\"MouseDragGestureRecognizer\",\"MouseEvent\",\"MouseInputAdapter\",\"MouseInputListener\",\"MouseListener\",\"MouseMotionAdapter\",\"MouseMotionListener\",\"MouseWheelEvent\",\"MouseWheelListener\",\"MultiButtonUI\",\"MultiColorChooserUI\",\"MultiComboBoxUI\",\"MultiDesktopIconUI\",\"MultiDesktopPaneUI\",\"MultiDoc\",\"MultiDocPrintJob\",\"MultiDocPrintService\",\"MultiFileChooserUI\",\"MultiInternalFrameUI\",\"MultiLabelUI\",\"MultiListUI\",\"MultiLookAndFeel\",\"MultiMenuBarUI\",\"MultiMenuItemUI\",\"MultiOptionPaneUI\",\"MultiPanelUI\",\"MultiPixelPackedSampleModel\",\"MultiPopupMenuUI\",\"MultiProgressBarUI\",\"MultiRootPaneUI\",\"MultiScrollBarUI\",\"MultiScrollPaneUI\",\"MultiSeparatorUI\",\"MultiSliderUI\",\"MultiSpinnerUI\",\"MultiSplitPaneUI\",\"MultiTabbedPaneUI\",\"MultiTableHeaderUI\",\"MultiTableUI\",\"MultiTextUI\",\"MultiToolBarUI\",\"MultiToolTipUI\",\"MultiTreeUI\",\"MultiViewportUI\",\"MulticastSocket\",\"MultipleComponentProfileHelper\",\"MultipleComponentProfileHolder\",\"MultipleDocumentHandling\",\"MultipleDocumentHandlingType\",\"MultipleMaster\",\"MutableAttributeSet\",\"MutableComboBoxModel\",\"MutableTreeNode\",\"NA\",\"NO_IMPLEMENT\",\"NO_MEMORY\",\"NO_PERMISSION\",\"NO_RESOURCES\",\"NO_RESPONSE\",\"NVList\",\"Name\",\"NameAlreadyBoundException\",\"NameCallback\",\"NameClassPair\",\"NameComponent\",\"NameComponentHelper\",\"NameComponentHolder\",\"NameDynAnyPair\",\"NameDynAnyPairHelper\",\"NameDynAnyPairSeqHelper\",\"NameHelper\",\"NameHolder\",\"NameNotFoundException\",\"NameParser\",\"NameValuePair\",\"NameValuePairHelper\",\"NameValuePairSeqHelper\",\"NamedNodeMap\",\"NamedValue\",\"NamespaceChangeListener\",\"NamespaceSupport\",\"Naming\",\"NamingContext\",\"NamingContextExt\",\"NamingContextExtHelper\",\"NamingContextExtHolder\",\"NamingContextExtOperations\",\"NamingContextExtPOA\",\"NamingContextHelper\",\"NamingContextHolder\",\"NamingContextOperations\",\"NamingContextPOA\",\"NamingEnumeration\",\"NamingEvent\",\"NamingException\",\"NamingExceptionEvent\",\"NamingListener\",\"NamingManager\",\"NamingSecurityException\",\"NavigationFilter\",\"NegativeArraySizeException\",\"NetPermission\",\"NetworkInterface\",\"NoClassDefFoundError\",\"NoConnectionPendingException\",\"NoContext\",\"NoContextHelper\",\"NoInitialContextException\",\"NoPermissionException\",\"NoRouteToHostException\",\"NoServant\",\"NoServantHelper\",\"NoSuchAlgorithmException\",\"NoSuchAttributeException\",\"NoSuchElementException\",\"NoSuchFieldError\",\"NoSuchFieldException\",\"NoSuchMethodError\",\"NoSuchMethodException\",\"NoSuchObjectException\",\"NoSuchPaddingException\",\"NoSuchProviderException\",\"Node\",\"NodeChangeEvent\",\"NodeChangeListener\",\"NodeDimensions\",\"NodeList\",\"NonReadableChannelException\",\"NonWritableChannelException\",\"NoninvertibleTransformException\",\"NotActiveException\",\"NotBoundException\",\"NotContextException\",\"NotEmpty\",\"NotEmptyHelper\",\"NotEmptyHolder\",\"NotFound\",\"NotFoundHelper\",\"NotFoundHolder\",\"NotFoundReason\",\"NotFoundReasonHelper\",\"NotFoundReasonHolder\",\"NotOwnerException\",\"NotSerializableException\",\"NotYetBoundException\",\"NotYetConnectedException\",\"Notation\",\"NullCipher\",\"NullPointerException\",\"Number\",\"NumberEditor\",\"NumberFormat\",\"NumberFormatException\",\"NumberFormatter\",\"NumberOfDocuments\",\"NumberOfInterveningJobs\",\"NumberUp\",\"NumberUpSupported\",\"NumericShaper\",\"OBJECT_NOT_EXIST\",\"OBJ_ADAPTER\",\"OMGVMCID\",\"ORB\",\"ORBInitInfo\",\"ORBInitInfoOperations\",\"ORBInitializer\",\"ORBInitializerOperations\",\"ObjID\",\"Object\",\"ObjectAlreadyActive\",\"ObjectAlreadyActiveHelper\",\"ObjectChangeListener\",\"ObjectFactory\",\"ObjectFactoryBuilder\",\"ObjectHelper\",\"ObjectHolder\",\"ObjectIdHelper\",\"ObjectImpl\",\"ObjectInput\",\"ObjectInputStream\",\"ObjectInputValidation\",\"ObjectNotActive\",\"ObjectNotActiveHelper\",\"ObjectOutput\",\"ObjectOutputStream\",\"ObjectStreamClass\",\"ObjectStreamConstants\",\"ObjectStreamException\",\"ObjectStreamField\",\"ObjectView\",\"Observable\",\"Observer\",\"OctetSeqHelper\",\"OctetSeqHolder\",\"Oid\",\"OpenType\",\"Operation\",\"OperationNotSupportedException\",\"Option\",\"OptionDialogBorder\",\"OptionPaneUI\",\"OptionalDataException\",\"OrientationRequested\",\"OrientationRequestedType\",\"OriginType\",\"Other\",\"OutOfMemoryError\",\"OutputDeviceAssigned\",\"OutputKeys\",\"OutputStream\",\"OutputStreamWriter\",\"OverlappingFileLockException\",\"OverlayLayout\",\"Owner\",\"PBEKey\",\"PBEKeySpec\",\"PBEParameterSpec\",\"PDLOverrideSupported\",\"PERSIST_STORE\",\"PKCS8EncodedKeySpec\",\"PKIXBuilderParameters\",\"PKIXCertPathBuilderResult\",\"PKIXCertPathChecker\",\"PKIXCertPathValidatorResult\",\"PKIXParameters\",\"POA\",\"POAHelper\",\"POAManager\",\"POAManagerOperations\",\"POAOperations\",\"PRIVATE_MEMBER\",\"PSSParameterSpec\",\"PUBLIC_MEMBER\",\"Package\",\"PackedColorModel\",\"PageAttributes\",\"PageFormat\",\"PageRanges\",\"Pageable\",\"PagesPerMinute\",\"PagesPerMinuteColor\",\"Paint\",\"PaintContext\",\"PaintEvent\",\"PaletteBorder\",\"PaletteCloseIcon\",\"Panel\",\"PanelUI\",\"Paper\",\"ParagraphAttribute\",\"ParagraphConstants\",\"ParagraphView\",\"Parameter\",\"ParameterBlock\",\"ParameterDescriptor\",\"ParameterMetaData\",\"ParameterMode\",\"ParameterModeHelper\",\"ParameterModeHolder\",\"ParseException\",\"ParsePosition\",\"Parser\",\"ParserAdapter\",\"ParserCallback\",\"ParserConfigurationException\",\"ParserDelegator\",\"ParserFactory\",\"PartialResultException\",\"PasswordAuthentication\",\"PasswordCallback\",\"PasswordView\",\"PasteAction\",\"Patch\",\"PathIterator\",\"Pattern\",\"PatternSyntaxException\",\"Permission\",\"PermissionCollection\",\"Permissions\",\"PersistenceDelegate\",\"PhantomReference\",\"Pipe\",\"PipedInputStream\",\"PipedOutputStream\",\"PipedReader\",\"PipedWriter\",\"PixelGrabber\",\"PixelInterleavedSampleModel\",\"PlainDocument\",\"PlainView\",\"Point\",\"Point2D\",\"Policy\",\"PolicyError\",\"PolicyErrorCodeHelper\",\"PolicyErrorHelper\",\"PolicyErrorHolder\",\"PolicyFactory\",\"PolicyFactoryOperations\",\"PolicyHelper\",\"PolicyHolder\",\"PolicyListHelper\",\"PolicyListHolder\",\"PolicyNode\",\"PolicyOperations\",\"PolicyQualifierInfo\",\"PolicyTypeHelper\",\"Polygon\",\"PooledConnection\",\"Popup\",\"PopupFactory\",\"PopupMenu\",\"PopupMenuBorder\",\"PopupMenuEvent\",\"PopupMenuListener\",\"PopupMenuUI\",\"Port\",\"PortUnreachableException\",\"PortableRemoteObject\",\"PortableRemoteObjectDelegate\",\"Position\",\"PreferenceChangeEvent\",\"PreferenceChangeListener\",\"Preferences\",\"PreferencesFactory\",\"PreparedStatement\",\"PresentationDirection\",\"Principal\",\"PrincipalHolder\",\"PrintEvent\",\"PrintException\",\"PrintGraphics\",\"PrintJob\",\"PrintJobAdapter\",\"PrintJobAttribute\",\"PrintJobAttributeEvent\",\"PrintJobAttributeListener\",\"PrintJobAttributeSet\",\"PrintJobEvent\",\"PrintJobListener\",\"PrintQuality\",\"PrintQualityType\",\"PrintRequestAttribute\",\"PrintRequestAttributeSet\",\"PrintService\",\"PrintServiceAttribute\",\"PrintServiceAttributeEvent\",\"PrintServiceAttributeListener\",\"PrintServiceAttributeSet\",\"PrintServiceLookup\",\"PrintStream\",\"PrintWriter\",\"Printable\",\"PrinterAbortException\",\"PrinterException\",\"PrinterGraphics\",\"PrinterIOException\",\"PrinterInfo\",\"PrinterIsAcceptingJobs\",\"PrinterJob\",\"PrinterLocation\",\"PrinterMakeAndModel\",\"PrinterMessageFromOperator\",\"PrinterMoreInfo\",\"PrinterMoreInfoManufacturer\",\"PrinterName\",\"PrinterResolution\",\"PrinterState\",\"PrinterStateReason\",\"PrinterStateReasons\",\"PrinterURI\",\"PrivateCredentialPermission\",\"PrivateKey\",\"PrivilegedAction\",\"PrivilegedActionException\",\"PrivilegedExceptionAction\",\"Process\",\"ProcessingInstruction\",\"ProfileDataException\",\"ProfileIdHelper\",\"ProgressBarUI\",\"ProgressMonitor\",\"ProgressMonitorInputStream\",\"Properties\",\"PropertyChangeEvent\",\"PropertyChangeListener\",\"PropertyChangeListenerProxy\",\"PropertyChangeSupport\",\"PropertyDescriptor\",\"PropertyEditor\",\"PropertyEditorManager\",\"PropertyEditorSupport\",\"PropertyPermission\",\"PropertyResourceBundle\",\"PropertyVetoException\",\"ProtectionDomain\",\"ProtocolException\",\"Provider\",\"ProviderException\",\"Proxy\",\"ProxyLazyValue\",\"PublicKey\",\"PushbackInputStream\",\"PushbackReader\",\"PutField\",\"QuadCurve2D\",\"QueuedJobCount\",\"RC2ParameterSpec\",\"RC5ParameterSpec\",\"READER\",\"REQUEST_PROCESSING_POLICY_ID\",\"RGBImageFilter\",\"RMIClassLoader\",\"RMIClassLoaderSpi\",\"RMIClientSocketFactory\",\"RMIFailureHandler\",\"RMISecurityException\",\"RMISecurityManager\",\"RMIServerSocketFactory\",\"RMISocketFactory\",\"RSAKey\",\"RSAKeyGenParameterSpec\",\"RSAMultiPrimePrivateCrtKey\",\"RSAMultiPrimePrivateCrtKeySpec\",\"RSAOtherPrimeInfo\",\"RSAPrivateCrtKey\",\"RSAPrivateCrtKeySpec\",\"RSAPrivateKey\",\"RSAPrivateKeySpec\",\"RSAPublicKey\",\"RSAPublicKeySpec\",\"RTFEditorKit\",\"RadioButtonBorder\",\"Random\",\"RandomAccess\",\"RandomAccessFile\",\"Raster\",\"RasterFormatException\",\"RasterOp\",\"ReadOnlyBufferException\",\"ReadableByteChannel\",\"Reader\",\"Receiver\",\"Rectangle\",\"Rectangle2D\",\"RectangularShape\",\"Ref\",\"RefAddr\",\"Reference\",\"ReferenceQueue\",\"ReferenceUriSchemesSupported\",\"Referenceable\",\"ReferralException\",\"ReflectPermission\",\"RefreshFailedException\",\"Refreshable\",\"RegisterableService\",\"Registry\",\"RegistryHandler\",\"RemarshalException\",\"Remote\",\"RemoteCall\",\"RemoteException\",\"RemoteObject\",\"RemoteRef\",\"RemoteServer\",\"RemoteStub\",\"RenderContext\",\"RenderableImage\",\"RenderableImageOp\",\"RenderableImageProducer\",\"RenderedImage\",\"RenderedImageFactory\",\"Renderer\",\"RenderingHints\",\"RepaintManager\",\"ReplicateScaleFilter\",\"RepositoryIdHelper\",\"Request\",\"RequestInfo\",\"RequestInfoOperations\",\"RequestProcessingPolicy\",\"RequestProcessingPolicyOperations\",\"RequestProcessingPolicyValue\",\"RequestingUserName\",\"RescaleOp\",\"ResolutionSyntax\",\"ResolveResult\",\"Resolver\",\"ResourceBundle\",\"ResponseHandler\",\"Result\",\"ResultSet\",\"ResultSetMetaData\",\"ReverbType\",\"Robot\",\"RolloverButtonBorder\",\"RootPaneContainer\",\"RootPaneUI\",\"RoundRectangle2D\",\"RowMapper\",\"RowSet\",\"RowSetEvent\",\"RowSetInternal\",\"RowSetListener\",\"RowSetMetaData\",\"RowSetReader\",\"RowSetWriter\",\"RuleBasedCollator\",\"RunTime\",\"RunTimeOperations\",\"Runnable\",\"Runtime\",\"RuntimeException\",\"RuntimePermission\",\"SAXException\",\"SAXNotRecognizedException\",\"SAXNotSupportedException\",\"SAXParseException\",\"SAXParser\",\"SAXParserFactory\",\"SAXResult\",\"SAXSource\",\"SAXTransformerFactory\",\"SERVANT_RETENTION_POLICY_ID\",\"SERVICE_FORMATTED\",\"SQLData\",\"SQLException\",\"SQLInput\",\"SQLOutput\",\"SQLPermission\",\"SQLWarning\",\"SSLContext\",\"SSLContextSpi\",\"SSLException\",\"SSLHandshakeException\",\"SSLKeyException\",\"SSLPeerUnverifiedException\",\"SSLPermission\",\"SSLProtocolException\",\"SSLServerSocket\",\"SSLServerSocketFactory\",\"SSLSession\",\"SSLSessionBindingEvent\",\"SSLSessionBindingListener\",\"SSLSessionContext\",\"SSLSocket\",\"SSLSocketFactory\",\"STRING\",\"SUCCESSFUL\",\"SYNC_WITH_TRANSPORT\",\"SYSTEM_EXCEPTION\",\"SampleModel\",\"Savepoint\",\"ScatteringByteChannel\",\"SchemaViolationException\",\"ScrollBarUI\",\"ScrollPane\",\"ScrollPaneAdjustable\",\"ScrollPaneBorder\",\"ScrollPaneConstants\",\"ScrollPaneLayout\",\"ScrollPaneUI\",\"Scrollable\",\"Scrollbar\",\"SealedObject\",\"SearchControls\",\"SearchResult\",\"SecretKey\",\"SecretKeyFactory\",\"SecretKeyFactorySpi\",\"SecretKeySpec\",\"SecureClassLoader\",\"SecureRandom\",\"SecureRandomSpi\",\"Security\",\"SecurityException\",\"SecurityManager\",\"SecurityPermission\",\"Segment\",\"SelectableChannel\",\"SelectionKey\",\"Selector\",\"SelectorProvider\",\"Separator\",\"SeparatorUI\",\"Sequence\",\"SequenceInputStream\",\"Sequencer\",\"Serializable\",\"SerializablePermission\",\"Servant\",\"ServantActivator\",\"ServantActivatorHelper\",\"ServantActivatorOperations\",\"ServantActivatorPOA\",\"ServantAlreadyActive\",\"ServantAlreadyActiveHelper\",\"ServantLocator\",\"ServantLocatorHelper\",\"ServantLocatorOperations\",\"ServantLocatorPOA\",\"ServantManager\",\"ServantManagerOperations\",\"ServantNotActive\",\"ServantNotActiveHelper\",\"ServantObject\",\"ServantRetentionPolicy\",\"ServantRetentionPolicyOperations\",\"ServantRetentionPolicyValue\",\"ServerCloneException\",\"ServerError\",\"ServerException\",\"ServerNotActiveException\",\"ServerRef\",\"ServerRequest\",\"ServerRequestInfo\",\"ServerRequestInfoOperations\",\"ServerRequestInterceptor\",\"ServerRequestInterceptorOperations\",\"ServerRuntimeException\",\"ServerSocket\",\"ServerSocketChannel\",\"ServerSocketFactory\",\"ServiceContext\",\"ServiceContextHelper\",\"ServiceContextHolder\",\"ServiceContextListHelper\",\"ServiceContextListHolder\",\"ServiceDetail\",\"ServiceDetailHelper\",\"ServiceIdHelper\",\"ServiceInformation\",\"ServiceInformationHelper\",\"ServiceInformationHolder\",\"ServicePermission\",\"ServiceRegistry\",\"ServiceUI\",\"ServiceUIFactory\",\"ServiceUnavailableException\",\"Set\",\"SetOfIntegerSyntax\",\"SetOverrideType\",\"SetOverrideTypeHelper\",\"Severity\",\"Shape\",\"ShapeGraphicAttribute\",\"SheetCollate\",\"Short\",\"ShortBuffer\",\"ShortBufferException\",\"ShortHolder\",\"ShortLookupTable\",\"ShortMessage\",\"ShortSeqHelper\",\"ShortSeqHolder\",\"Sides\",\"SidesType\",\"Signature\",\"SignatureException\",\"SignatureSpi\",\"SignedObject\",\"Signer\",\"SimpleAttributeSet\",\"SimpleBeanInfo\",\"SimpleDateFormat\",\"SimpleDoc\",\"SimpleFormatter\",\"SimpleTimeZone\",\"SinglePixelPackedSampleModel\",\"SingleSelectionModel\",\"SinkChannel\",\"Size2DSyntax\",\"SizeLimitExceededException\",\"SizeRequirements\",\"SizeSequence\",\"Skeleton\",\"SkeletonMismatchException\",\"SkeletonNotFoundException\",\"SliderUI\",\"Socket\",\"SocketAddress\",\"SocketChannel\",\"SocketException\",\"SocketFactory\",\"SocketHandler\",\"SocketImpl\",\"SocketImplFactory\",\"SocketOptions\",\"SocketPermission\",\"SocketSecurityException\",\"SocketTimeoutException\",\"SoftBevelBorder\",\"SoftReference\",\"SortedMap\",\"SortedSet\",\"SortingFocusTraversalPolicy\",\"Soundbank\",\"SoundbankReader\",\"SoundbankResource\",\"Source\",\"SourceChannel\",\"SourceDataLine\",\"SourceLocator\",\"SpinnerDateModel\",\"SpinnerListModel\",\"SpinnerModel\",\"SpinnerNumberModel\",\"SpinnerUI\",\"SplitPaneBorder\",\"SplitPaneUI\",\"Spring\",\"SpringLayout\",\"Stack\",\"StackOverflowError\",\"StackTraceElement\",\"StartTlsRequest\",\"StartTlsResponse\",\"State\",\"StateEdit\",\"StateEditable\",\"StateFactory\",\"Statement\",\"StreamCorruptedException\",\"StreamHandler\",\"StreamPrintService\",\"StreamPrintServiceFactory\",\"StreamResult\",\"StreamSource\",\"StreamTokenizer\",\"Streamable\",\"StreamableValue\",\"StrictMath\",\"String\",\"StringBuffer\",\"StringBufferInputStream\",\"StringCharacterIterator\",\"StringContent\",\"StringHolder\",\"StringIndexOutOfBoundsException\",\"StringNameHelper\",\"StringReader\",\"StringRefAddr\",\"StringSelection\",\"StringSeqHelper\",\"StringSeqHolder\",\"StringTokenizer\",\"StringValueHelper\",\"StringWriter\",\"Stroke\",\"Struct\",\"StructMember\",\"StructMemberHelper\",\"Stub\",\"StubDelegate\",\"StubNotFoundException\",\"Style\",\"StyleConstants\",\"StyleContext\",\"StyleSheet\",\"StyledDocument\",\"StyledEditorKit\",\"StyledTextAction\",\"Subject\",\"SubjectDomainCombiner\",\"Subset\",\"SupportedValuesAttribute\",\"SwingConstants\",\"SwingPropertyChangeSupport\",\"SwingUtilities\",\"SyncFailedException\",\"SyncMode\",\"SyncScopeHelper\",\"Synthesizer\",\"SysexMessage\",\"System\",\"SystemColor\",\"SystemException\",\"SystemFlavorMap\",\"TAG_ALTERNATE_IIOP_ADDRESS\",\"TAG_CODE_SETS\",\"TAG_INTERNET_IOP\",\"TAG_JAVA_CODEBASE\",\"TAG_MULTIPLE_COMPONENTS\",\"TAG_ORB_TYPE\",\"TAG_POLICIES\",\"TCKind\",\"THREAD_POLICY_ID\",\"TRANSACTION_REQUIRED\",\"TRANSACTION_ROLLEDBACK\",\"TRANSIENT\",\"TRANSPORT_RETRY\",\"TabExpander\",\"TabSet\",\"TabStop\",\"TabableView\",\"TabbedPaneUI\",\"TableCellEditor\",\"TableCellRenderer\",\"TableColumn\",\"TableColumnModel\",\"TableColumnModelEvent\",\"TableColumnModelListener\",\"TableHeaderBorder\",\"TableHeaderUI\",\"TableModel\",\"TableModelEvent\",\"TableModelListener\",\"TableUI\",\"TableView\",\"Tag\",\"TagElement\",\"TaggedComponent\",\"TaggedComponentHelper\",\"TaggedComponentHolder\",\"TaggedProfile\",\"TaggedProfileHelper\",\"TaggedProfileHolder\",\"TargetDataLine\",\"Templates\",\"TemplatesHandler\",\"Text\",\"TextAction\",\"TextArea\",\"TextAttribute\",\"TextComponent\",\"TextEvent\",\"TextField\",\"TextFieldBorder\",\"TextHitInfo\",\"TextInputCallback\",\"TextLayout\",\"TextListener\",\"TextMeasurer\",\"TextOutputCallback\",\"TextSyntax\",\"TextUI\",\"TexturePaint\",\"Thread\",\"ThreadDeath\",\"ThreadGroup\",\"ThreadLocal\",\"ThreadPolicy\",\"ThreadPolicyOperations\",\"ThreadPolicyValue\",\"Throwable\",\"Tie\",\"TileObserver\",\"Time\",\"TimeLimitExceededException\",\"TimeZone\",\"Timer\",\"TimerTask\",\"Timestamp\",\"TitledBorder\",\"TitledBorderUIResource\",\"ToggleButtonBorder\",\"ToggleButtonModel\",\"TooManyListenersException\",\"ToolBarBorder\",\"ToolBarUI\",\"ToolTipManager\",\"ToolTipUI\",\"Toolkit\",\"Track\",\"TransactionRequiredException\",\"TransactionRolledbackException\",\"TransactionService\",\"TransferHandler\",\"Transferable\",\"TransformAttribute\",\"Transformer\",\"TransformerConfigurationException\",\"TransformerException\",\"TransformerFactory\",\"TransformerFactoryConfigurationError\",\"TransformerHandler\",\"Transmitter\",\"Transparency\",\"TreeCellEditor\",\"TreeCellRenderer\",\"TreeControlIcon\",\"TreeExpansionEvent\",\"TreeExpansionListener\",\"TreeFolderIcon\",\"TreeLeafIcon\",\"TreeMap\",\"TreeModel\",\"TreeModelEvent\",\"TreeModelListener\",\"TreeNode\",\"TreePath\",\"TreeSelectionEvent\",\"TreeSelectionListener\",\"TreeSelectionModel\",\"TreeSet\",\"TreeUI\",\"TreeWillExpandListener\",\"TrustAnchor\",\"TrustManager\",\"TrustManagerFactory\",\"TrustManagerFactorySpi\",\"Type\",\"TypeCode\",\"TypeCodeHolder\",\"TypeMismatch\",\"TypeMismatchHelper\",\"Types\",\"UID\",\"UIDefaults\",\"UIManager\",\"UIResource\",\"ULongLongSeqHelper\",\"ULongLongSeqHolder\",\"ULongSeqHelper\",\"ULongSeqHolder\",\"UNKNOWN\",\"UNSUPPORTED_POLICY\",\"UNSUPPORTED_POLICY_VALUE\",\"URI\",\"URIException\",\"URIResolver\",\"URISyntax\",\"URISyntaxException\",\"URL\",\"URLClassLoader\",\"URLConnection\",\"URLDecoder\",\"URLEncoder\",\"URLStreamHandler\",\"URLStreamHandlerFactory\",\"URLStringHelper\",\"USER_EXCEPTION\",\"UShortSeqHelper\",\"UShortSeqHolder\",\"UTFDataFormatException\",\"UndeclaredThrowableException\",\"UnderlineAction\",\"UndoManager\",\"UndoableEdit\",\"UndoableEditEvent\",\"UndoableEditListener\",\"UndoableEditSupport\",\"UnexpectedException\",\"UnicastRemoteObject\",\"UnicodeBlock\",\"UnionMember\",\"UnionMemberHelper\",\"UnknownEncoding\",\"UnknownEncodingHelper\",\"UnknownError\",\"UnknownException\",\"UnknownGroupException\",\"UnknownHostException\",\"UnknownObjectException\",\"UnknownServiceException\",\"UnknownTag\",\"UnknownUserException\",\"UnknownUserExceptionHelper\",\"UnknownUserExceptionHolder\",\"UnmappableCharacterException\",\"UnmarshalException\",\"UnmodifiableSetException\",\"UnrecoverableKeyException\",\"Unreferenced\",\"UnresolvedAddressException\",\"UnresolvedPermission\",\"UnsatisfiedLinkError\",\"UnsolicitedNotification\",\"UnsolicitedNotificationEvent\",\"UnsolicitedNotificationListener\",\"UnsupportedAddressTypeException\",\"UnsupportedAudioFileException\",\"UnsupportedCallbackException\",\"UnsupportedCharsetException\",\"UnsupportedClassVersionError\",\"UnsupportedEncodingException\",\"UnsupportedFlavorException\",\"UnsupportedLookAndFeelException\",\"UnsupportedOperationException\",\"UserException\",\"Util\",\"UtilDelegate\",\"Utilities\",\"VMID\",\"VM_ABSTRACT\",\"VM_CUSTOM\",\"VM_NONE\",\"VM_TRUNCATABLE\",\"ValueBase\",\"ValueBaseHelper\",\"ValueBaseHolder\",\"ValueFactory\",\"ValueHandler\",\"ValueMember\",\"ValueMemberHelper\",\"VariableHeightLayoutCache\",\"Vector\",\"VerifyError\",\"VersionSpecHelper\",\"VetoableChangeListener\",\"VetoableChangeListenerProxy\",\"VetoableChangeSupport\",\"View\",\"ViewFactory\",\"ViewportLayout\",\"ViewportUI\",\"VirtualMachineError\",\"Visibility\",\"VisibilityHelper\",\"VoiceStatus\",\"Void\",\"VolatileImage\",\"WCharSeqHelper\",\"WCharSeqHolder\",\"WStringSeqHelper\",\"WStringSeqHolder\",\"WStringValueHelper\",\"WeakHashMap\",\"WeakReference\",\"Window\",\"WindowAdapter\",\"WindowConstants\",\"WindowEvent\",\"WindowFocusListener\",\"WindowListener\",\"WindowStateListener\",\"WrappedPlainView\",\"WritableByteChannel\",\"WritableRaster\",\"WritableRenderedImage\",\"WriteAbortedException\",\"Writer\",\"WrongAdapter\",\"WrongAdapterHelper\",\"WrongPolicy\",\"WrongPolicyHelper\",\"WrongTransaction\",\"WrongTransactionHelper\",\"WrongTransactionHolder\",\"X500Principal\",\"X500PrivateCredential\",\"X509CRL\",\"X509CRLEntry\",\"X509CRLSelector\",\"X509CertSelector\",\"X509Certificate\",\"X509EncodedKeySpec\",\"X509Extension\",\"X509KeyManager\",\"X509TrustManager\",\"XAConnection\",\"XADataSource\",\"XAException\",\"XAResource\",\"XMLDecoder\",\"XMLEncoder\",\"XMLFilter\",\"XMLFilterImpl\",\"XMLFormatter\",\"XMLReader\",\"XMLReaderAdapter\",\"XMLReaderFactory\",\"Xid\",\"ZipEntry\",\"ZipException\",\"ZipFile\",\"ZipInputStream\",\"ZipOutputStream\",\"ZoneView\",\"_BindingIteratorImplBase\",\"_BindingIteratorStub\",\"_DynAnyFactoryStub\",\"_DynAnyStub\",\"_DynArrayStub\",\"_DynEnumStub\",\"_DynFixedStub\",\"_DynSequenceStub\",\"_DynStructStub\",\"_DynUnionStub\",\"_DynValueStub\",\"_IDLTypeStub\",\"_NamingContextExtStub\",\"_NamingContextImplBase\",\"_NamingContextStub\",\"_PolicyStub\",\"_Remote_Stub\",\"_ServantActivatorStub\",\"_ServantLocatorStub\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [Rule {rMatcher = AnyChar \"fF\", rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [Rule {rMatcher = StringDetect \"ULL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LUL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LLU\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"UL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LU\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"U\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"L\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"//\\\\s*BEGIN.*$\", reCaseSensitive = False}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"//\\\\s*END.*$\", reCaseSensitive = False}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Java String\")]},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"!%&()+,-<=>?[]^{|}~\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Java Single-Line Comment\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Java Multi-Line Comment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Jsp Single Quoted Custom Tag Value\",Context {cName = \"Jsp Single Quoted Custom Tag Value\", cSyntax = \"JSP\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = StringDetect \"<%--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<%(!|=)?\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Scriptlet\")]},Rule {rMatcher = Detect2Chars '$' '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Expression\")]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Jsp Single Quoted Param Value\",Context {cName = \"Jsp Single Quoted Param Value\", cSyntax = \"JSP\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = StringDetect \"<%--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<%(!|=)?\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Scriptlet\")]},Rule {rMatcher = Detect2Chars '$' '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Expression\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Jsp Standard Directive\",Context {cName = \"Jsp Standard Directive\", cSyntax = \"JSP\", cRules = [Rule {rMatcher = Detect2Chars '%' '>', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*=\\\\s*\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Standard Directive Value\")]},Rule {rMatcher = StringDetect \"<%--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<%(!|=)?\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Scriptlet\")]},Rule {rMatcher = Detect2Chars '$' '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Expression\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\s*\\\\/?\\\\s*\\\\$?\\\\w*:\\\\$?\\\\w*\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Custom Tag\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Jsp Standard Directive Value\",Context {cName = \"Jsp Standard Directive Value\", cSyntax = \"JSP\", cRules = [Rule {rMatcher = StringDetect \"<%--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<%(!|=)?\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Scriptlet\")]},Rule {rMatcher = Detect2Chars '$' '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Expression\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Double Quoted Param Value\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Single Quoted Param Value\")]},Rule {rMatcher = Detect2Chars '%' '>', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Jsp Xml Directive\",Context {cName = \"Jsp Xml Directive\", cSyntax = \"JSP\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\/?\\\\s*>\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*=\\\\s*\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Xml Directive Value\")]},Rule {rMatcher = StringDetect \"<%--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<%(!|=)?\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Scriptlet\")]},Rule {rMatcher = Detect2Chars '$' '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Expression\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Jsp Xml Directive Value\",Context {cName = \"Jsp Xml Directive Value\", cSyntax = \"JSP\", cRules = [Rule {rMatcher = StringDetect \"<%--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<%(!|=)?\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Scriptlet\")]},Rule {rMatcher = Detect2Chars '$' '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Expression\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Double Quoted Param Value\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Single Quoted Param Value\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\/?\\\\s*>\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"JSP\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<%@\\\\s*[a-zA-Z0-9_\\\\.]*\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Standard Directive\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\s*jsp:(declaration|expression|scriptlet)\\\\s*>\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Scriptlet\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\s*\\\\/?s*jsp:[a-zA-Z0-9_\\\\.]*\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Xml Directive\")]},Rule {rMatcher = StringDetect \"<%--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<%(!|=)?\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Scriptlet\")]},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Html Comment\")]},Rule {rMatcher = Detect2Chars '$' '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Expression\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\s*\\\\/?\\\\s*\\\\$?[a-zA-Z0-9_]*:\\\\$?[a-zA-Z0-9_]*\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Jsp Custom Tag\")]},Rule {rMatcher = StringDetect \"<![CDATA[\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"]]>\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\s*\\\\/?\\\\s*[a-zA-Z0-9_]*\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"JSP\",\"Html Attribute\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Rob Martin (rob@gamepimp.com)\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [\"*.jsp\",\"*.JSP\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Julia.hs b/src/Skylighting/Syntax/Julia.hs
--- a/src/Skylighting/Syntax/Julia.hs
+++ b/src/Skylighting/Syntax/Julia.hs
@@ -2,1034 +2,6 @@
 module Skylighting.Syntax.Julia (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Julia"
-  , sFilename = "julia.xml"
-  , sShortname = "Julia"
-  , sContexts =
-      fromList
-        [ ( "1-comment"
-          , Context
-              { cName = "1-comment"
-              , cSyntax = "Julia"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , 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 = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Julia"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "_adjoint"
-          , Context
-              { cName = "_adjoint"
-              , cSyntax = "Julia"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'+"
-                              , reCompiled = Just (compileRegex True "'+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "_normal"
-          , Context
-              { cName = "_normal"
-              , cSyntax = "Julia"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "begin"
-                               , "do"
-                               , "for"
-                               , "function"
-                               , "if"
-                               , "let"
-                               , "quote"
-                               , "try"
-                               , "type"
-                               , "while"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "catch" , "else" , "elseif" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "end" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "#BEGIN"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Julia" , "region_marker" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "#END"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Julia" , "region_marker" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "abstract"
-                               , "bitstype"
-                               , "break"
-                               , "ccall"
-                               , "const"
-                               , "continue"
-                               , "export"
-                               , "global"
-                               , "import"
-                               , "in"
-                               , "local"
-                               , "macro"
-                               , "module"
-                               , "return"
-                               , "typealias"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ASCIIString"
-                               , "AbstractArray"
-                               , "AbstractMatrix"
-                               , "AbstractVector"
-                               , "Any"
-                               , "Array"
-                               , "Associative"
-                               , "Bool"
-                               , "ByteString"
-                               , "Char"
-                               , "Complex"
-                               , "Complex128"
-                               , "Complex64"
-                               , "ComplexPair"
-                               , "DArray"
-                               , "Dict"
-                               , "Exception"
-                               , "Expr"
-                               , "Float"
-                               , "Float32"
-                               , "Float64"
-                               , "Function"
-                               , "IO"
-                               , "IOStream"
-                               , "Int"
-                               , "Int16"
-                               , "Int32"
-                               , "Int64"
-                               , "Int8"
-                               , "IntSet"
-                               , "Integer"
-                               , "Matrix"
-                               , "NTuple"
-                               , "None"
-                               , "Nothing"
-                               , "Number"
-                               , "ObjectIdDict"
-                               , "Ptr"
-                               , "Range"
-                               , "Range1"
-                               , "Ranges"
-                               , "Rational"
-                               , "Real"
-                               , "Regex"
-                               , "RegexMatch"
-                               , "Set"
-                               , "Signed"
-                               , "StridedArray"
-                               , "StridedMatrix"
-                               , "StridedVecOrMat"
-                               , "StridedVector"
-                               , "String"
-                               , "SubArray"
-                               , "SubString"
-                               , "Symbol"
-                               , "Task"
-                               , "Tuple"
-                               , "Type"
-                               , "UTF8String"
-                               , "Uint"
-                               , "Uint16"
-                               , "Uint32"
-                               , "Uint64"
-                               , "Uint8"
-                               , "Union"
-                               , "Unsigned"
-                               , "VecOrMat"
-                               , "Vector"
-                               , "Void"
-                               , "WeakRef"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Julia" , "1-comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Julia" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "..."
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "::"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ">>>"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ">>"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<<"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "=="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "!="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ">="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "&&"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "||"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ".*"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ".^"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "./"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ".'"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "+="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "-="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "*="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "/="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "&="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "|="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "$="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ">>>="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ">>="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<<="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z]\\w*(?=')"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z]\\w*(?=')")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Julia" , "_adjoint" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\d+(\\.\\d+)?|\\.\\d+)([eE][+-]?\\d+)?(im)?(?=')"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(\\d+(\\.\\d+)?|\\.\\d+)([eE][+-]?\\d+)?(im)?(?=')")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Julia" , "_adjoint" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\)\\]}](?=')"
-                              , reCompiled = Just (compileRegex True "[\\)\\]}](?=')")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Julia" , "_adjoint" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.'(?=')"
-                              , reCompiled = Just (compileRegex True "\\.'(?=')")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Julia" , "_adjoint" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'[^']*(''[^']*)*'(?=[^']|$)"
-                              , reCompiled =
-                                  Just (compileRegex True "'[^']*(''[^']*)*'(?=[^']|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'[^']*(''[^']*)*"
-                              , reCompiled = Just (compileRegex True "'[^']*(''[^']*)*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "0x[0-9a-fA-F]+(im)?"
-                              , reCompiled = Just (compileRegex True "0x[0-9a-fA-F]+(im)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\d+(\\.\\d+)?|\\.\\d+)([eE][+-]?\\d+)?(im)?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(\\d+(\\.\\d+)?|\\.\\d+)([eE][+-]?\\d+)?(im)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "()[]{}"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "*+-/\\&|<>~$!^=,;:@"
-                      , 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
-              }
-          )
-        , ( "curly"
-          , Context
-              { cName = "curly"
-              , cSyntax = "Julia"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "nested"
-          , Context
-              { cName = "nested"
-              , cSyntax = "Julia"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "region_marker"
-          , Context
-              { cName = "region_marker"
-              , cSyntax = "Julia"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Julia" , "1-comment" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "squared"
-          , Context
-              { cName = "squared"
-              , cSyntax = "Julia"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = ""
-  , sVersion = "1"
-  , sLicense = "MIT"
-  , sExtensions = [ "*.jl" ]
-  , sStartingContext = "_normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Julia\", sFilename = \"julia.xml\", sShortname = \"Julia\", sContexts = fromList [(\"1-comment\",Context {cName = \"1-comment\", cSyntax = \"Julia\", cRules = [Rule {rMatcher = DetectSpaces, 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 = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Julia\", cRules = [Rule {rMatcher = DetectSpaces, 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 = []},Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCStringChar, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"_adjoint\",Context {cName = \"_adjoint\", cSyntax = \"Julia\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"'+\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"_normal\",Context {cName = \"_normal\", cSyntax = \"Julia\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"begin\",\"do\",\"for\",\"function\",\"if\",\"let\",\"quote\",\"try\",\"type\",\"while\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"catch\",\"else\",\"elseif\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"end\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"#BEGIN\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Julia\",\"region_marker\")]},Rule {rMatcher = StringDetect \"#END\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Julia\",\"region_marker\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"abstract\",\"bitstype\",\"break\",\"ccall\",\"const\",\"continue\",\"export\",\"global\",\"import\",\"in\",\"local\",\"macro\",\"module\",\"return\",\"typealias\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"ASCIIString\",\"AbstractArray\",\"AbstractMatrix\",\"AbstractVector\",\"Any\",\"Array\",\"Associative\",\"Bool\",\"ByteString\",\"Char\",\"Complex\",\"Complex128\",\"Complex64\",\"ComplexPair\",\"DArray\",\"Dict\",\"Exception\",\"Expr\",\"Float\",\"Float32\",\"Float64\",\"Function\",\"IO\",\"IOStream\",\"Int\",\"Int16\",\"Int32\",\"Int64\",\"Int8\",\"IntSet\",\"Integer\",\"Matrix\",\"NTuple\",\"None\",\"Nothing\",\"Number\",\"ObjectIdDict\",\"Ptr\",\"Range\",\"Range1\",\"Ranges\",\"Rational\",\"Real\",\"Regex\",\"RegexMatch\",\"Set\",\"Signed\",\"StridedArray\",\"StridedMatrix\",\"StridedVecOrMat\",\"StridedVector\",\"String\",\"SubArray\",\"SubString\",\"Symbol\",\"Task\",\"Tuple\",\"Type\",\"UTF8String\",\"Uint\",\"Uint16\",\"Uint32\",\"Uint64\",\"Uint8\",\"Union\",\"Unsigned\",\"VecOrMat\",\"Vector\",\"Void\",\"WeakRef\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Julia\",\"1-comment\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Julia\",\"String\")]},Rule {rMatcher = StringDetect \"...\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"::\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \">>>\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \">>\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<<\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"==\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"!=\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<=\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \">=\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"&&\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"||\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \".*\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \".^\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"./\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \".'\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"+=\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"-=\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"*=\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"/=\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"&=\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"|=\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"$=\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \">>>=\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \">>=\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<<=\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z]\\\\w*(?=')\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Julia\",\"_adjoint\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\d+(\\\\.\\\\d+)?|\\\\.\\\\d+)([eE][+-]?\\\\d+)?(im)?(?=')\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Julia\",\"_adjoint\")]},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\)\\\\]}](?=')\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Julia\",\"_adjoint\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.'(?=')\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Julia\",\"_adjoint\")]},Rule {rMatcher = RegExpr (RE {reString = \"'[^']*(''[^']*)*'(?=[^']|$)\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"'[^']*(''[^']*)*\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"0x[0-9a-fA-F]+(im)?\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\d+(\\\\.\\\\d+)?|\\\\.\\\\d+)([eE][+-]?\\\\d+)?(im)?\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"()[]{}\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"*+-/\\\\&|<>~$!^=,;:@\", 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}),(\"curly\",Context {cName = \"curly\", cSyntax = \"Julia\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"nested\",Context {cName = \"nested\", cSyntax = \"Julia\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"region_marker\",Context {cName = \"region_marker\", cSyntax = \"Julia\", cRules = [Rule {rMatcher = IncludeRules (\"Julia\",\"1-comment\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"squared\",Context {cName = \"squared\", cSyntax = \"Julia\", cRules = [Rule {rMatcher = DetectChar ']', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"\", sVersion = \"1\", sLicense = \"MIT\", sExtensions = [\"*.jl\"], sStartingContext = \"_normal\"}"
diff --git a/src/Skylighting/Syntax/Kotlin.hs b/src/Skylighting/Syntax/Kotlin.hs
--- a/src/Skylighting/Syntax/Kotlin.hs
+++ b/src/Skylighting/Syntax/Kotlin.hs
@@ -2,1875 +2,6 @@
 module Skylighting.Syntax.Kotlin (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Kotlin"
-  , sFilename = "kotlin.xml"
-  , sShortname = "Kotlin"
-  , sContexts =
-      fromList
-        [ ( "Char"
-          , Context
-              { cName = "Char"
-              , cSyntax = "Kotlin"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\u[0-9a-fA-F]{4}"
-                              , reCompiled = Just (compileRegex True "\\\\u[0-9a-fA-F]{4}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CommentMultiline"
-          , Context
-              { cName = "CommentMultiline"
-              , cSyntax = "Kotlin"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "TODO"
-                      , rAttribute = AlertTok
-                      , 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 ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CommentSingleLine"
-          , Context
-              { cName = "CommentSingleLine"
-              , cSyntax = "Kotlin"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "TODO"
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Expression"
-          , Context
-              { cName = "Expression"
-              , cSyntax = "Kotlin"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "ExpressionInner" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "ExpressionInner" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\w+"
-                              , reCompiled = Just (compileRegex True "<\\w+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "TypeParameters" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "Char" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\"\"\""
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "MultiLineDoubleString" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "CommentSingleLine" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "CommentMultiline" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ','
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ExpressionInner"
-          , Context
-              { cName = "ExpressionInner"
-              , cSyntax = "Kotlin"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "ExpressionInner" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "ExpressionInner" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\w+"
-                              , reCompiled = Just (compileRegex True "<\\w+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "TypeParameters" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "Char" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\"\"\""
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "MultiLineDoubleString" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "CommentSingleLine" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "CommentMultiline" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FunctionDeclaration"
-          , Context
-              { cName = "FunctionDeclaration"
-              , cSyntax = "Kotlin"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "as"
-                               , "by"
-                               , "class"
-                               , "companion"
-                               , "constructor"
-                               , "crossinline"
-                               , "data"
-                               , "enum"
-                               , "final"
-                               , "fun"
-                               , "get"
-                               , "import"
-                               , "in"
-                               , "infix"
-                               , "inline"
-                               , "interface"
-                               , "internal"
-                               , "is"
-                               , "object"
-                               , "open"
-                               , "operator"
-                               , "out"
-                               , "override"
-                               , "package"
-                               , "private"
-                               , "protected"
-                               , "public"
-                               , "reified"
-                               , "return"
-                               , "sealed"
-                               , "set"
-                               , "tailrec"
-                               , "throw"
-                               , "typealias"
-                               , "typeof"
-                               , "val"
-                               , "var"
-                               , "vararg"
-                               , "where"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '.'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "Parameters" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "TypeParameters" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ':'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "TypeName" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "{="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[_\\w][_\\w\\d]*"
-                              , reCompiled = Just (compileRegex True "[_\\w][_\\w\\d]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FunctionType"
-          , Context
-              { cName = "FunctionType"
-              , cSyntax = "Kotlin"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[_\\w][_\\w\\d]*[?]?"
-                              , reCompiled = Just (compileRegex True "[_\\w][_\\w\\d]*[?]?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "->"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ","
-                      , 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
-              }
-          )
-        , ( "Imports"
-          , Context
-              { cName = "Imports"
-              , cSyntax = "Kotlin"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ';'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "as"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "TypeName" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[_\\w][_\\w\\d]*(\\.[_\\w][_\\w\\d]*)*(\\.\\*)?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\b[_\\w][_\\w\\d]*(\\.[_\\w][_\\w\\d]*)*(\\.\\*)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ImportTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "MultiLineDoubleString"
-          , Context
-              { cName = "MultiLineDoubleString"
-              , cSyntax = "Kotlin"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "\"\"\""
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Kotlin"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(package|import)\\b"
-                              , reCompiled = Just (compileRegex True "\\b(package|import)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "Imports" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bfun\\b"
-                              , reCompiled = Just (compileRegex True "\\bfun\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "FunctionDeclaration" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(object|class|interface)\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b(object|class|interface)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "TypeDeclaration" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(val|var)\\b"
-                              , reCompiled = Just (compileRegex True "\\b(val|var)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "VariableDeclaration" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "false" , "null" , "super" , "this" , "true" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "as"
-                               , "by"
-                               , "class"
-                               , "companion"
-                               , "constructor"
-                               , "crossinline"
-                               , "data"
-                               , "enum"
-                               , "final"
-                               , "fun"
-                               , "get"
-                               , "import"
-                               , "in"
-                               , "infix"
-                               , "inline"
-                               , "interface"
-                               , "internal"
-                               , "is"
-                               , "object"
-                               , "open"
-                               , "operator"
-                               , "out"
-                               , "override"
-                               , "package"
-                               , "private"
-                               , "protected"
-                               , "public"
-                               , "reified"
-                               , "return"
-                               , "sealed"
-                               , "set"
-                               , "tailrec"
-                               , "throw"
-                               , "typealias"
-                               , "typeof"
-                               , "val"
-                               , "var"
-                               , "vararg"
-                               , "where"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "break"
-                               , "catch"
-                               , "continue"
-                               , "do"
-                               , "else"
-                               , "finally"
-                               , "for"
-                               , "if"
-                               , "try"
-                               , "when"
-                               , "while"
-                               , "yield"
-                               ])
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Boolean"
-                               , "Byte"
-                               , "Char"
-                               , "Double"
-                               , "Float"
-                               , "Int"
-                               , "Long"
-                               , "Nothing"
-                               , "Short"
-                               , "String"
-                               , "Unit"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\"\"\""
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "MultiLineDoubleString" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "Char" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "CommentSingleLine" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "CommentMultiline" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = AnyChar "fF"
-                              , rAttribute = FloatTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = True
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = StringDetect "L"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@[_\\w][_\\w\\d]*"
-                              , reCompiled = Just (compileRegex True "@[_\\w][_\\w\\d]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AttributeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "TODO\\s*\\([^)]*\\)"
-                              , reCompiled = Just (compileRegex True "TODO\\s*\\([^)]*\\)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , 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 ( "Kotlin" , "CommentSingleLine" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Parameters"
-          , Context
-              { cName = "Parameters"
-              , cSyntax = "Kotlin"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "as"
-                               , "by"
-                               , "class"
-                               , "companion"
-                               , "constructor"
-                               , "crossinline"
-                               , "data"
-                               , "enum"
-                               , "final"
-                               , "fun"
-                               , "get"
-                               , "import"
-                               , "in"
-                               , "infix"
-                               , "inline"
-                               , "interface"
-                               , "internal"
-                               , "is"
-                               , "object"
-                               , "open"
-                               , "operator"
-                               , "out"
-                               , "override"
-                               , "package"
-                               , "private"
-                               , "protected"
-                               , "public"
-                               , "reified"
-                               , "return"
-                               , "sealed"
-                               , "set"
-                               , "tailrec"
-                               , "throw"
-                               , "typealias"
-                               , "typeof"
-                               , "val"
-                               , "var"
-                               , "vararg"
-                               , "where"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ':'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "TypeName" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "Expression" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[_\\w][_\\w\\d]*"
-                              , reCompiled = Just (compileRegex True "[_\\w][_\\w\\d]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Kotlin"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\u[0-9a-fA-F]{4}"
-                              , reCompiled = Just (compileRegex True "\\\\u[0-9a-fA-F]{4}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SuperTypes"
-          , Context
-              { cName = "SuperTypes"
-              , cSyntax = "Kotlin"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "as"
-                               , "by"
-                               , "class"
-                               , "companion"
-                               , "constructor"
-                               , "crossinline"
-                               , "data"
-                               , "enum"
-                               , "final"
-                               , "fun"
-                               , "get"
-                               , "import"
-                               , "in"
-                               , "infix"
-                               , "inline"
-                               , "interface"
-                               , "internal"
-                               , "is"
-                               , "object"
-                               , "open"
-                               , "operator"
-                               , "out"
-                               , "override"
-                               , "package"
-                               , "private"
-                               , "protected"
-                               , "public"
-                               , "reified"
-                               , "return"
-                               , "sealed"
-                               , "set"
-                               , "tailrec"
-                               , "throw"
-                               , "typealias"
-                               , "typeof"
-                               , "val"
-                               , "var"
-                               , "vararg"
-                               , "where"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ','
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "Parameters" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "TypeParameters" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[_\\w][_\\w\\d]*"
-                              , reCompiled = Just (compileRegex True "[_\\w][_\\w\\d]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "TypeDeclaration"
-          , Context
-              { cName = "TypeDeclaration"
-              , cSyntax = "Kotlin"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "as"
-                               , "by"
-                               , "class"
-                               , "companion"
-                               , "constructor"
-                               , "crossinline"
-                               , "data"
-                               , "enum"
-                               , "final"
-                               , "fun"
-                               , "get"
-                               , "import"
-                               , "in"
-                               , "infix"
-                               , "inline"
-                               , "interface"
-                               , "internal"
-                               , "is"
-                               , "object"
-                               , "open"
-                               , "operator"
-                               , "out"
-                               , "override"
-                               , "package"
-                               , "private"
-                               , "protected"
-                               , "public"
-                               , "reified"
-                               , "return"
-                               , "sealed"
-                               , "set"
-                               , "tailrec"
-                               , "throw"
-                               , "typealias"
-                               , "typeof"
-                               , "val"
-                               , "var"
-                               , "vararg"
-                               , "where"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "TypeParameters" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "Parameters" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ':'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "SuperTypes" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "TypeName"
-          , Context
-              { cName = "TypeName"
-              , cSyntax = "Kotlin"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '*'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "FunctionType" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "->"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[_\\w][_\\w\\d]*[?]?"
-                              , reCompiled = Just (compileRegex True "[_\\w][_\\w\\d]*[?]?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "TypeParameters"
-          , Context
-              { cName = "TypeParameters"
-              , cSyntax = "Kotlin"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "as"
-                               , "by"
-                               , "class"
-                               , "companion"
-                               , "constructor"
-                               , "crossinline"
-                               , "data"
-                               , "enum"
-                               , "final"
-                               , "fun"
-                               , "get"
-                               , "import"
-                               , "in"
-                               , "infix"
-                               , "inline"
-                               , "interface"
-                               , "internal"
-                               , "is"
-                               , "object"
-                               , "open"
-                               , "operator"
-                               , "out"
-                               , "override"
-                               , "package"
-                               , "private"
-                               , "protected"
-                               , "public"
-                               , "reified"
-                               , "return"
-                               , "sealed"
-                               , "set"
-                               , "tailrec"
-                               , "throw"
-                               , "typealias"
-                               , "typeof"
-                               , "val"
-                               , "var"
-                               , "vararg"
-                               , "where"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ':'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "TypeName" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '*'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Kotlin" , "TypeParameters" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[_\\w][_\\w\\d]*[?]?"
-                              , reCompiled = Just (compileRegex True "[_\\w][_\\w\\d]*[?]?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "VariableDeclaration"
-          , Context
-              { cName = "VariableDeclaration"
-              , cSyntax = "Kotlin"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "symbols"
-          , Context
-              { cName = "symbols"
-              , cSyntax = "Kotlin"
-              , cRules =
-                  [ Rule
-                      { rMatcher = AnyChar ":!%&+,-/.*<=>?[]|~^;"
-                      , 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
-              }
-          )
-        ]
-  , sAuthor = "Sergey Mashkov (sergey.mashkov@jetbrains.com)"
-  , sVersion = "2"
-  , sLicense = "LGPLv2+"
-  , sExtensions = [ "*.kt" , "*.kts" ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Kotlin\", sFilename = \"kotlin.xml\", sShortname = \"Kotlin\", sContexts = fromList [(\"Char\",Context {cName = \"Char\", cSyntax = \"Kotlin\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\u[0-9a-fA-F]{4}\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CharTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CommentMultiline\",Context {cName = \"CommentMultiline\", cSyntax = \"Kotlin\", cRules = [Rule {rMatcher = StringDetect \"TODO\", rAttribute = AlertTok, 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]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CommentSingleLine\",Context {cName = \"CommentSingleLine\", cSyntax = \"Kotlin\", cRules = [Rule {rMatcher = StringDetect \"TODO\", rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Expression\",Context {cName = \"Expression\", cSyntax = \"Kotlin\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"ExpressionInner\")]},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"ExpressionInner\")]},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\w+\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"TypeParameters\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"Char\")]},Rule {rMatcher = StringDetect \"\\\"\\\"\\\"\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"MultiLineDoubleString\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"String\")]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"CommentSingleLine\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"CommentMultiline\")]},Rule {rMatcher = DetectChar ',', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ExpressionInner\",Context {cName = \"ExpressionInner\", cSyntax = \"Kotlin\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"ExpressionInner\")]},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"ExpressionInner\")]},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\w+\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"TypeParameters\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"Char\")]},Rule {rMatcher = StringDetect \"\\\"\\\"\\\"\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"MultiLineDoubleString\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"String\")]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"CommentSingleLine\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"CommentMultiline\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FunctionDeclaration\",Context {cName = \"FunctionDeclaration\", cSyntax = \"Kotlin\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"as\",\"by\",\"class\",\"companion\",\"constructor\",\"crossinline\",\"data\",\"enum\",\"final\",\"fun\",\"get\",\"import\",\"in\",\"infix\",\"inline\",\"interface\",\"internal\",\"is\",\"object\",\"open\",\"operator\",\"out\",\"override\",\"package\",\"private\",\"protected\",\"public\",\"reified\",\"return\",\"sealed\",\"set\",\"tailrec\",\"throw\",\"typealias\",\"typeof\",\"val\",\"var\",\"vararg\",\"where\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '.', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"Parameters\")]},Rule {rMatcher = DetectChar '<', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"TypeParameters\")]},Rule {rMatcher = DetectChar ':', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"TypeName\")]},Rule {rMatcher = AnyChar \"{=\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[_\\\\w][_\\\\w\\\\d]*\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FunctionType\",Context {cName = \"FunctionType\", cSyntax = \"Kotlin\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[_\\\\w][_\\\\w\\\\d]*[?]?\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"->\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \",\", 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}),(\"Imports\",Context {cName = \"Imports\", cSyntax = \"Kotlin\", cRules = [Rule {rMatcher = DetectChar ';', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"as\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"TypeName\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[_\\\\w][_\\\\w\\\\d]*(\\\\.[_\\\\w][_\\\\w\\\\d]*)*(\\\\.\\\\*)?\", reCaseSensitive = True}), rAttribute = ImportTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"MultiLineDoubleString\",Context {cName = \"MultiLineDoubleString\", cSyntax = \"Kotlin\", cRules = [Rule {rMatcher = StringDetect \"\\\"\\\"\\\"\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Kotlin\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(package|import)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"Imports\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bfun\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"FunctionDeclaration\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(object|class|interface)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"TypeDeclaration\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(val|var)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"VariableDeclaration\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"false\",\"null\",\"super\",\"this\",\"true\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"as\",\"by\",\"class\",\"companion\",\"constructor\",\"crossinline\",\"data\",\"enum\",\"final\",\"fun\",\"get\",\"import\",\"in\",\"infix\",\"inline\",\"interface\",\"internal\",\"is\",\"object\",\"open\",\"operator\",\"out\",\"override\",\"package\",\"private\",\"protected\",\"public\",\"reified\",\"return\",\"sealed\",\"set\",\"tailrec\",\"throw\",\"typealias\",\"typeof\",\"val\",\"var\",\"vararg\",\"where\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"break\",\"catch\",\"continue\",\"do\",\"else\",\"finally\",\"for\",\"if\",\"try\",\"when\",\"while\",\"yield\"])), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"Boolean\",\"Byte\",\"Char\",\"Double\",\"Float\",\"Int\",\"Long\",\"Nothing\",\"Short\",\"String\",\"Unit\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"\\\"\\\"\\\"\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"MultiLineDoubleString\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"String\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"Char\")]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"CommentSingleLine\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"CommentMultiline\")]},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [Rule {rMatcher = AnyChar \"fF\", rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [Rule {rMatcher = StringDetect \"L\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"@[_\\\\w][_\\\\w\\\\d]*\", reCaseSensitive = True}), rAttribute = AttributeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"TODO\\\\s*\\\\([^)]*\\\\)\", reCaseSensitive = True}), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, 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 (\"Kotlin\",\"CommentSingleLine\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Parameters\",Context {cName = \"Parameters\", cSyntax = \"Kotlin\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"as\",\"by\",\"class\",\"companion\",\"constructor\",\"crossinline\",\"data\",\"enum\",\"final\",\"fun\",\"get\",\"import\",\"in\",\"infix\",\"inline\",\"interface\",\"internal\",\"is\",\"object\",\"open\",\"operator\",\"out\",\"override\",\"package\",\"private\",\"protected\",\"public\",\"reified\",\"return\",\"sealed\",\"set\",\"tailrec\",\"throw\",\"typealias\",\"typeof\",\"val\",\"var\",\"vararg\",\"where\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar ':', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"TypeName\")]},Rule {rMatcher = DetectChar '=', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"Expression\")]},Rule {rMatcher = RegExpr (RE {reString = \"[_\\\\w][_\\\\w\\\\d]*\", reCaseSensitive = True}), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Kotlin\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCStringChar, rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\u[0-9a-fA-F]{4}\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SuperTypes\",Context {cName = \"SuperTypes\", cSyntax = \"Kotlin\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"as\",\"by\",\"class\",\"companion\",\"constructor\",\"crossinline\",\"data\",\"enum\",\"final\",\"fun\",\"get\",\"import\",\"in\",\"infix\",\"inline\",\"interface\",\"internal\",\"is\",\"object\",\"open\",\"operator\",\"out\",\"override\",\"package\",\"private\",\"protected\",\"public\",\"reified\",\"return\",\"sealed\",\"set\",\"tailrec\",\"throw\",\"typealias\",\"typeof\",\"val\",\"var\",\"vararg\",\"where\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar ',', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"Parameters\")]},Rule {rMatcher = DetectChar '<', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"TypeParameters\")]},Rule {rMatcher = RegExpr (RE {reString = \"[_\\\\w][_\\\\w\\\\d]*\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"TypeDeclaration\",Context {cName = \"TypeDeclaration\", cSyntax = \"Kotlin\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"as\",\"by\",\"class\",\"companion\",\"constructor\",\"crossinline\",\"data\",\"enum\",\"final\",\"fun\",\"get\",\"import\",\"in\",\"infix\",\"inline\",\"interface\",\"internal\",\"is\",\"object\",\"open\",\"operator\",\"out\",\"override\",\"package\",\"private\",\"protected\",\"public\",\"reified\",\"return\",\"sealed\",\"set\",\"tailrec\",\"throw\",\"typealias\",\"typeof\",\"val\",\"var\",\"vararg\",\"where\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '<', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"TypeParameters\")]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"Parameters\")]},Rule {rMatcher = DetectChar ':', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"SuperTypes\")]},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"TypeName\",Context {cName = \"TypeName\", cSyntax = \"Kotlin\", cRules = [Rule {rMatcher = DetectChar '*', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"FunctionType\")]},Rule {rMatcher = StringDetect \"->\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[_\\\\w][_\\\\w\\\\d]*[?]?\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"TypeParameters\",Context {cName = \"TypeParameters\", cSyntax = \"Kotlin\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"as\",\"by\",\"class\",\"companion\",\"constructor\",\"crossinline\",\"data\",\"enum\",\"final\",\"fun\",\"get\",\"import\",\"in\",\"infix\",\"inline\",\"interface\",\"internal\",\"is\",\"object\",\"open\",\"operator\",\"out\",\"override\",\"package\",\"private\",\"protected\",\"public\",\"reified\",\"return\",\"sealed\",\"set\",\"tailrec\",\"throw\",\"typealias\",\"typeof\",\"val\",\"var\",\"vararg\",\"where\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ':', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"TypeName\")]},Rule {rMatcher = DetectChar '*', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '>', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '<', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Kotlin\",\"TypeParameters\")]},Rule {rMatcher = RegExpr (RE {reString = \"[_\\\\w][_\\\\w\\\\d]*[?]?\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"VariableDeclaration\",Context {cName = \"VariableDeclaration\", cSyntax = \"Kotlin\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"symbols\",Context {cName = \"symbols\", cSyntax = \"Kotlin\", cRules = [Rule {rMatcher = AnyChar \":!%&+,-/.*<=>?[]|~^;\", 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})], sAuthor = \"Sergey Mashkov (sergey.mashkov@jetbrains.com)\", sVersion = \"2\", sLicense = \"LGPLv2+\", sExtensions = [\"*.kt\",\"*.kts\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Latex.hs b/src/Skylighting/Syntax/Latex.hs
--- a/src/Skylighting/Syntax/Latex.hs
+++ b/src/Skylighting/Syntax/Latex.hs
@@ -2,5368 +2,6 @@
 module Skylighting.Syntax.Latex (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "LaTeX"
-  , sFilename = "latex.xml"
-  , sShortname = "Latex"
-  , sContexts =
-      fromList
-        [ ( "BeginEnvironment"
-          , Context
-              { cName = "BeginEnvironment"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "lstlisting"
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "ListingsEnvParam" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "minted"
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MintedEnvParam" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "((B|L)?Verbatim)"
-                              , reCompiled = Just (compileRegex True "((B|L)?Verbatim)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "VerbatimEnvParam" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(verbatim|boxedverbatim)"
-                              , reCompiled = Just (compileRegex True "(verbatim|boxedverbatim)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "VerbatimEnv" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "comment"
-                              , reCompiled = Just (compileRegex True "comment")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "CommentEnv" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(alignat|xalignat|xxalignat)"
-                              , reCompiled =
-                                  Just (compileRegex True "(alignat|xalignat|xxalignat)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathEnvParam" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(equation|displaymath|eqnarray|subeqnarray|math|multline|gather|align|flalign|IEEEeqnarray|IEEEeqnarraybox|smallmatrix|pmatrix|bmatrix|Bmatrix|vmatrix|Vmatrix|cases)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(equation|displaymath|eqnarray|subeqnarray|math|multline|gather|align|flalign|IEEEeqnarray|IEEEeqnarraybox|smallmatrix|pmatrix|bmatrix|Bmatrix|vmatrix|Vmatrix|cases)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathEnv" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(tabularx|tabular|supertabular|mpsupertabular|xtabular|mpxtabular|longtable)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(tabularx|tabular|supertabular|mpsupertabular|xtabular|mpxtabular|longtable)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "TabEnv" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "LatexEnv" ) ]
-                      }
-                  , 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 = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^a-zA-Z\\xd7]"
-                              , reCompiled = Just (compileRegex True "[^a-zA-Z\\xd7]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = ExtensionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "BlockComment"
-          , Context
-              { cName = "BlockComment"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\end(?=\\s*\\{comment\\*?\\})"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\end(?=\\s*\\{comment\\*?\\})")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "CommFindEnd" ) ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Column Separator"
-          , Context
-              { cName = "Column Separator"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Column Separator" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = CharTok
-                      , 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 = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CommFindEnd"
-          , Context
-              { cName = "CommFindEnd"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\{"
-                              , reCompiled = Just (compileRegex True "\\s*\\{")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "comment\\*?"
-                              , reCompiled = Just (compileRegex True "comment\\*?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "CommandParameter"
-          , Context
-              { cName = "CommandParameter"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "CommandParameter" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , 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 = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Comment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CommandParameterStart"
-          , Context
-              { cName = "CommandParameterStart"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "CommandParameter" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\."
-                              , reCompiled = Just (compileRegex True "\\\\.")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Comment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(FIXME|TODO):?"
-                              , reCompiled = Just (compileRegex True "(FIXME|TODO):?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\\KileResetHL"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Normal Text" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\\KateResetHL"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Normal Text" ) ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CommentEnv"
-          , Context
-              { cName = "CommentEnv"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "BlockComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LaTeX" , "EnvCommon" )
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ExtensionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop , Pop , Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "ContrSeq"
-          , Context
-              { cName = "ContrSeq"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "verb*"
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Verb" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(Verb|verb)(?=[^a-zA-Z])"
-                              , reCompiled = Just (compileRegex True "(Verb|verb)(?=[^a-zA-Z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Verb" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(lstinline)(?=[^a-zA-Z])"
-                              , reCompiled = Just (compileRegex True "(lstinline)(?=[^a-zA-Z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Lstinline" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "mint(?=[^a-zA-Z])"
-                              , reCompiled = Just (compileRegex True "mint(?=[^a-zA-Z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MintParam" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z@]+(\\+?|\\*{0,3})"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z@]+(\\+?|\\*{0,3})")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "[^a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "DefCommand"
-          , Context
-              { cName = "DefCommand"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\\\[a-zA-Z]+[^\\{]*\\{"
-                              , reCompiled =
-                                  Just (compileRegex True "\\s*\\\\[a-zA-Z]+[^\\{]*\\{")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "CommandParameterStart" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "EndEnvironment"
-          , Context
-              { cName = "EndEnvironment"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "EndLatexEnv" ) ]
-                      }
-                  , 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 = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "[^a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = ExtensionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "EndLatexEnv"
-          , Context
-              { cName = "EndLatexEnv"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z]+(\\*)?"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z]+(\\*)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = ExtensionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "EnvCommon"
-          , Context
-              { cName = "EnvCommon"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\*(?=\\})"
-                              , reCompiled = Just (compileRegex True "\\*(?=\\})")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^a-zA-Z\\xd7][^\\}]*"
-                              , reCompiled = Just (compileRegex True "[^a-zA-Z\\xd7][^\\}]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = ExtensionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FancyLabel"
-          , Context
-              { cName = "FancyLabel"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\{\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*\\{\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "FancyLabelParameter" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\[\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*\\[\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "FancyLabelOption" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\(\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*\\(\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "FancyLabelRoundBrackets" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "FancyLabelOption"
-          , Context
-              { cName = "FancyLabelOption"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "\\("
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathMode" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "ContrSeq" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathMode" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\]\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*\\]\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FancyLabelParameter"
-          , Context
-              { cName = "FancyLabelParameter"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "\\("
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathMode" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "ContrSeq" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathMode" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\}\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*\\}\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = ExtensionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FancyLabelRoundBrackets"
-          , Context
-              { cName = "FancyLabelRoundBrackets"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "\\("
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathMode" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "ContrSeq" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathMode" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\)\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*\\)\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindBeginEnvironment"
-          , Context
-              { cName = "FindBeginEnvironment"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "BeginEnvironment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S"
-                              , reCompiled = Just (compileRegex True "\\S")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindEndEnvironment"
-          , Context
-              { cName = "FindEndEnvironment"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "EndEnvironment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\S"
-                              , reCompiled = Just (compileRegex True "\\S")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Footnoting"
-          , Context
-              { cName = "Footnoting"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[[^\\]]*\\]"
-                              , reCompiled = Just (compileRegex True "\\[[^\\]]*\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ' '
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "FootnotingInside" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Comment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "FootnotingInside"
-          , Context
-              { cName = "FootnotingInside"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "FootnotingInside" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\\("
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "FootnotingMathMode" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "FootnotingMathMode" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LaTeX" , "Normal Text" )
-                      , 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
-              }
-          )
-        , ( "FootnotingMathMode"
-          , Context
-              { cName = "FootnotingMathMode"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "$$"
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ')'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ']'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LaTeX" , "MathMode" )
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "HighlightningBeginC++"
-          , Context
-              { cName = "HighlightningBeginC++"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ".*(\\}|\\])"
-                              , reCompiled = Just (compileRegex True ".*(\\}|\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "HighlightningC++" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "HighlightningBeginPython"
-          , Context
-              { cName = "HighlightningBeginPython"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ".*(\\}|\\])"
-                              , reCompiled = Just (compileRegex True ".*(\\}|\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "HighlightningPython" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "HighlightningC++"
-          , Context
-              { cName = "HighlightningC++"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "LaTeX" , "HighlightningCommon" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "C++" , "" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = True
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "HighlightningCommon"
-          , Context
-              { cName = "HighlightningCommon"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\end\\s*\\{(lstlisting|minted)\\*?\\}"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "\\\\end\\s*\\{(lstlisting|minted)\\*?\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop , Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "HighlightningPython"
-          , Context
-              { cName = "HighlightningPython"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "LaTeX" , "HighlightningCommon" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "" )
-                      , 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
-              }
-          )
-        , ( "HighlightningSelector"
-          , Context
-              { cName = "HighlightningSelector"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "C++"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "HighlightningBeginC++" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "Python"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "LaTeX" , "HighlightningBeginPython" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ".*(?=\\}|\\])"
-                              , reCompiled = Just (compileRegex True ".*(?=\\}|\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Label"
-          , Context
-              { cName = "Label"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\{\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*\\{\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "LabelParameter" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\[\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*\\[\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "LabelOption" ) ]
-                      }
-                  , 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 = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "LabelOption"
-          , Context
-              { cName = "LabelOption"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "\\("
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathMode" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "ContrSeq" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathMode" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\]\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*\\]\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "LabelParameter"
-          , Context
-              { cName = "LabelParameter"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\}\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*\\}\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = ExtensionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "LatexEnv"
-          , Context
-              { cName = "LatexEnv"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z]+"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LaTeX" , "EnvCommon" )
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ExtensionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ListingsEnvParam"
-          , Context
-              { cName = "ListingsEnvParam"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '}' '['
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "language\\s*=\\s*(?=[^,]+)"
-                              , reCompiled =
-                                  Just (compileRegex True "language\\s*=\\s*(?=[^,]+)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "HighlightningSelector" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Verbatim" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Verbatim" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Push ( "LaTeX" , "Verbatim" ) ]
-              , cDynamic = False
-              }
-          )
-        , ( "Lstinline"
-          , Context
-              { cName = "Lstinline"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\[\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*\\[\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "FancyLabelOption" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\{\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*\\{\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "LstinlineParameter" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(.)"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "LstinlineEnd" ) ]
-                      }
-                  ]
-              , cAttribute = VerbatimStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "LstinlineEnd"
-          , Context
-              { cName = "LstinlineEnd"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "%1"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^%1\\xd7]*"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = VerbatimStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "LstinlineParameter"
-          , Context
-              { cName = "LstinlineParameter"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\}\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*\\}\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = VerbatimStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "MathContrSeq"
-          , Context
-              { cName = "MathContrSeq"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z]+\\*?"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z]+\\*?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "[^a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = SpecialCharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "MathEnv"
-          , Context
-              { cName = "MathEnv"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathModeEnv" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LaTeX" , "EnvCommon" )
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ExtensionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "MathEnvParam"
-          , Context
-              { cName = "MathEnvParam"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\}\\{[^\\}]*\\}"
-                              , reCompiled = Just (compileRegex True "\\}\\{[^\\}]*\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathModeEnv" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathModeEnv" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LaTeX" , "EnvCommon" )
-                      , 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
-              }
-          )
-        , ( "MathFindEnd"
-          , Context
-              { cName = "MathFindEnd"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\{"
-                              , reCompiled = Just (compileRegex True "\\s*\\{")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(equation|displaymath|eqnarray|subeqnarray|math|multline|gather|align|flalign|alignat|xalignat|xxalignat|IEEEeqnarray|IEEEeqnarraybox|smallmatrix|pmatrix|bmatrix|Bmatrix|vmatrix|Vmatrix|cases)\\*?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(equation|displaymath|eqnarray|subeqnarray|math|multline|gather|align|flalign|alignat|xalignat|xxalignat|IEEEeqnarray|IEEEeqnarraybox|smallmatrix|pmatrix|bmatrix|Bmatrix|vmatrix|Vmatrix|cases)\\*?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "MathMode"
-          , Context
-              { cName = "MathMode"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "$$"
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ')'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ']'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LaTeX" , "MathModeCommon" )
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "MathModeCommon"
-          , Context
-              { cName = "MathModeCommon"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\(begin|end)\\s*\\{(equation|displaymath|eqnarray|subeqnarray|math|multline|gather|align|flalign|alignat|xalignat|xxalignat|IEEEeqnarray)\\*?\\}"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\(begin|end)\\s*\\{(equation|displaymath|eqnarray|subeqnarray|math|multline|gather|align|flalign|alignat|xalignat|xxalignat|IEEEeqnarray)\\*?\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\begin(?=[^a-zA-Z])"
-                              , reCompiled = Just (compileRegex True "\\\\begin(?=[^a-zA-Z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\end(?=[^a-zA-Z])"
-                              , reCompiled = Just (compileRegex True "\\\\end(?=[^a-zA-Z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(text|intertext|mbox)\\s*(?=\\{)"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\(text|intertext|mbox)\\s*(?=\\{)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathModeText" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathContrSeq" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%\\s*BEGIN.*$"
-                              , reCompiled = Just (compileRegex True "%\\s*BEGIN.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%\\s*END.*$"
-                              , reCompiled = Just (compileRegex True "%\\s*END.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "MathModeDisplay"
-          , Context
-              { cName = "MathModeDisplay"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "$$"
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ']'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ')'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LaTeX" , "MathModeCommon" )
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "MathModeEnsure"
-          , Context
-              { cName = "MathModeEnsure"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathModeEnsure" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LaTeX" , "MathModeCommon" )
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "MathModeEnv"
-          , Context
-              { cName = "MathModeEnv"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\begin(?=[^a-zA-Z])"
-                              , reCompiled = Just (compileRegex True "\\\\begin(?=[^a-zA-Z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "FindBeginEnvironment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\end(?=[^a-zA-Z])"
-                              , reCompiled = Just (compileRegex True "\\\\end(?=[^a-zA-Z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathFindEnd" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\\("
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\\["
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\\)"
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\\]"
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(text|intertext|mbox)\\s*(?=\\{)"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\(text|intertext|mbox)\\s*(?=\\{)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathModeText" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathContrSeq" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "$$"
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%\\s*BEGIN.*$"
-                              , reCompiled = Just (compileRegex True "%\\s*BEGIN.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%\\s*END.*$"
-                              , reCompiled = Just (compileRegex True "%\\s*END.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "MathModeEquation"
-          , Context
-              { cName = "MathModeEquation"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' ']'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "$$"
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ')'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LaTeX" , "MathModeCommon" )
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "MathModeText"
-          , Context
-              { cName = "MathModeText"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "LaTeX" , "MathModeTextParameterStart" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "MathModeTextParameter"
-          , Context
-              { cName = "MathModeTextParameter"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\."
-                              , reCompiled = Just (compileRegex True "\\\\.")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathModeTextParameter" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Comment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "MathModeTextParameterStart"
-          , Context
-              { cName = "MathModeTextParameterStart"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\."
-                              , reCompiled = Just (compileRegex True "\\\\.")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$.*\\$"
-                              , reCompiled = Just (compileRegex True "\\$.*\\$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathModeTextParameter" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Comment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "MintParam"
-          , Context
-              { cName = "MintParam"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '}' '['
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Verb" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Verb" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "MintedEnvParam"
-          , Context
-              { cName = "MintedEnvParam"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '}' '['
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '}' '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "HighlightningSelector" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars ']' '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "HighlightningSelector" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Verbatim" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Multiline Comment"
-          , Context
-              { cName = "Multiline Comment"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "\\fi"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\\else"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "NewCommand"
-          , Context
-              { cName = "NewCommand"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\{\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*\\{\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "LabelParameter" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*(\\[\\d\\](\\[[^\\]]*\\])?)?\\{"
-                              , reCompiled =
-                                  Just (compileRegex True "\\s*(\\[\\d\\](\\[[^\\]]*\\])?)?\\{")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "LabelParameter" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "NoWeb"
-          , Context
-              { cName = "NoWeb"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*@\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*@\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal Text"
-          , Context
-              { cName = "Normal Text"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\begin(?=[^a-zA-Z])"
-                              , reCompiled = Just (compileRegex True "\\\\begin(?=[^a-zA-Z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "FindBeginEnvironment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\end(?=[^a-zA-Z])"
-                              , reCompiled = Just (compileRegex True "\\\\end(?=[^a-zA-Z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "FindEndEnvironment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\(cite|citet|citep|parencite|autocite|Autocite|citetitle)\\*(?=[^a-zA-Z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\(cite|citet|citep|parencite|autocite|Autocite|citetitle)\\*(?=[^a-zA-Z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Label" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\(documentclass|includegraphics|include|usepackage|bibliography|bibliographystyle)(?=[^a-zA-Z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\(documentclass|includegraphics|include|usepackage|bibliography|bibliographystyle)(?=[^a-zA-Z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "FancyLabel" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\(cites|Cites|parencites|Parencites|autocites|Autocites|supercites|footcites|Footcites)(?=[^a-zA-Z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\(cites|Cites|parencites|Parencites|autocites|Autocites|supercites|footcites|Footcites)(?=[^a-zA-Z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "FancyLabel" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\(cite|citet|citep|nocite|Cite|parencite|Parencite|footcite|Footcite|textcite|Textcite|supercite|autocite|Autocite|citeauthor|Citeauthor|citetitle|citeyear|citeurl|nocite|fullcite|footfullcite)(?=[^a-zA-Z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\(cite|citet|citep|nocite|Cite|parencite|Parencite|footcite|Footcite|textcite|Textcite|supercite|autocite|Autocite|citeauthor|Citeauthor|citetitle|citeyear|citeurl|nocite|fullcite|footfullcite)(?=[^a-zA-Z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Label" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\(subref\\*?|cref\\*?|label|pageref|autoref|ref|vpageref|vref|pagecite|eqref)(?=[^a-zA-Z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\(subref\\*?|cref\\*?|label|pageref|autoref|ref|vpageref|vref|pagecite|eqref)(?=[^a-zA-Z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Label" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\(part|chapter|section|subsection|subsubsection|paragraph|subparagraph)\\*?\\s*(?=[\\{\\[])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\(part|chapter|section|subsection|subsubsection|paragraph|subparagraph)\\*?\\s*(?=[\\{\\[])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Sectioning" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\(input|hspace|hspace\\*|vspace|vspace\\*|rule|special|setlength|newboolean|setboolean|setcounter|geometry|textcolor|definecolor|column)(?=[^a-zA-Z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\(input|hspace|hspace\\*|vspace|vspace\\*|rule|special|setlength|newboolean|setboolean|setcounter|geometry|textcolor|definecolor|column)(?=[^a-zA-Z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "SpecialCommand" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(footnote)\\*?\\s*(?=[\\{\\[])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\(footnote)\\*?\\s*(?=[\\{\\[])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Footnoting" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\(renewcommand|providenewcommand|newcommand)\\*?(?=[^a-zA-Z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\(renewcommand|providenewcommand|newcommand)\\*?(?=[^a-zA-Z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "NewCommand" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(e|g|x)?def(?=[^a-zA-Z])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\(e|g|x)?def(?=[^a-zA-Z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "DefCommand" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<<.*>>="
-                              , reCompiled = Just (compileRegex True "<<.*>>=")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "NoWeb" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\\("
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathMode" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\\["
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathModeEquation" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\\iffalse"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Multiline Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\\ensuremath{"
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathModeEnsure" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "ContrSeq" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "$$"
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathModeDisplay" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathMode" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%\\s*BEGIN.*$"
-                              , reCompiled = Just (compileRegex True "%\\s*BEGIN.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%\\s*END.*$"
-                              , reCompiled = Just (compileRegex True "%\\s*END.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Sectioning"
-          , Context
-              { cName = "Sectioning"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[[^\\]]*\\]"
-                              , reCompiled = Just (compileRegex True "\\[[^\\]]*\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ' '
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "SectioningInside" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Comment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "SectioningContrSeq"
-          , Context
-              { cName = "SectioningContrSeq"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z]+(\\+?|\\*{0,3})"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z]+(\\+?|\\*{0,3})")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "[^a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SectioningInside"
-          , Context
-              { cName = "SectioningInside"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "SectioningInside" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\\("
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "SectioningMathMode" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "SectioningContrSeq" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "SectioningMathMode" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SectioningMathContrSeq"
-          , Context
-              { cName = "SectioningMathContrSeq"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z]+\\*?"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z]+\\*?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "[^a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = SpecialCharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SectioningMathMode"
-          , Context
-              { cName = "SectioningMathMode"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "$$"
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ')'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ']'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "SectioningMathContrSeq" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SpecialCommand"
-          , Context
-              { cName = "SpecialCommand"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\{\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*\\{\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "LaTeX" , "SpecialCommandParameterOption" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "SpecialCommandParameterOption"
-          , Context
-              { cName = "SpecialCommandParameterOption"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "\\("
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathMode" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "ContrSeq" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "MathMode" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\}\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*\\}\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Tab"
-          , Context
-              { cName = "Tab"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '&'
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "@{"
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Column Separator" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\end(?=\\s*\\{(tabularx|tabular|supertabular|mpsupertabular|xtabular|mpxtabular|longtable)\\*?\\})"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\end(?=\\s*\\{(tabularx|tabular|supertabular|mpsupertabular|xtabular|mpxtabular|longtable)\\*?\\})")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "TabFindEnd" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LaTeX" , "Normal Text" )
-                      , 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
-              }
-          )
-        , ( "TabEnv"
-          , Context
-              { cName = "TabEnv"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Tab" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LaTeX" , "EnvCommon" )
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ExtensionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop , Pop , Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "TabFindEnd"
-          , Context
-              { cName = "TabFindEnd"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\{"
-                              , reCompiled = Just (compileRegex True "\\s*\\{")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(tabularx|tabular|supertabular|mpsupertabular|xtabular|mpxtabular|longtable)\\*?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(tabularx|tabular|supertabular|mpsupertabular|xtabular|mpxtabular|longtable)\\*?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "ToEndOfLine"
-          , Context
-              { cName = "ToEndOfLine"
-              , cSyntax = "LaTeX"
-              , cRules = []
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Verb"
-          , Context
-              { cName = "Verb"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(.)"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "VerbEnd" ) ]
-                      }
-                  ]
-              , cAttribute = VerbatimStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "VerbEnd"
-          , Context
-              { cName = "VerbEnd"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "%1"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^%1\\xd7]*"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = VerbatimStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "VerbFindEnd"
-          , Context
-              { cName = "VerbFindEnd"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\{"
-                              , reCompiled = Just (compileRegex True "\\s*\\{")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(verbatim|lstlisting|boxedverbatim|(B|L)?Verbatim|minted)\\*?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(verbatim|lstlisting|boxedverbatim|(B|L)?Verbatim|minted)\\*?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "Verbatim"
-          , Context
-              { cName = "Verbatim"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = InformationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\end(?=\\s*\\{(verbatim|lstlisting|boxedverbatim|(B|L)?Verbatim|minted)\\*?\\})"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\end(?=\\s*\\{(verbatim|lstlisting|boxedverbatim|(B|L)?Verbatim|minted)\\*?\\})")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "VerbFindEnd" ) ]
-                      }
-                  ]
-              , cAttribute = VerbatimStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "VerbatimEnv"
-          , Context
-              { cName = "VerbatimEnv"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Verbatim" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LaTeX" , "EnvCommon" )
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ExtensionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop , Pop , Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "VerbatimEnvParam"
-          , Context
-              { cName = "VerbatimEnvParam"
-              , cSyntax = "LaTeX"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '}' '['
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Verbatim" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LaTeX" , "Verbatim" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor =
-      "Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)+Holger Danielsson (holger.danielsson@versanet.de)+Michel Ludwig (michel.ludwig@kdemail.net)+Thomas Braun (thomas.braun@virtuell-zuhause.de)"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions =
-      [ "*.tex"
-      , "*.ltx"
-      , "*.dtx"
-      , "*.sty"
-      , "*.cls"
-      , "*.bbx"
-      , "*.cbx"
-      , "*.lbx"
-      , "*.tikz"
-      ]
-  , sStartingContext = "Normal Text"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"LaTeX\", sFilename = \"latex.xml\", sShortname = \"Latex\", sContexts = fromList [(\"BeginEnvironment\",Context {cName = \"BeginEnvironment\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = StringDetect \"lstlisting\", rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"ListingsEnvParam\")]},Rule {rMatcher = StringDetect \"minted\", rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MintedEnvParam\")]},Rule {rMatcher = RegExpr (RE {reString = \"((B|L)?Verbatim)\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"VerbatimEnvParam\")]},Rule {rMatcher = RegExpr (RE {reString = \"(verbatim|boxedverbatim)\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"VerbatimEnv\")]},Rule {rMatcher = RegExpr (RE {reString = \"comment\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"CommentEnv\")]},Rule {rMatcher = RegExpr (RE {reString = \"(alignat|xalignat|xxalignat)\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathEnvParam\")]},Rule {rMatcher = RegExpr (RE {reString = \"(equation|displaymath|eqnarray|subeqnarray|math|multline|gather|align|flalign|IEEEeqnarray|IEEEeqnarraybox|smallmatrix|pmatrix|bmatrix|Bmatrix|vmatrix|Vmatrix|cases)\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathEnv\")]},Rule {rMatcher = RegExpr (RE {reString = \"(tabularx|tabular|supertabular|mpsupertabular|xtabular|mpxtabular|longtable)\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"TabEnv\")]},Rule {rMatcher = DetectChar '\\215', rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z]\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"LatexEnv\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[^a-zA-Z\\\\xd7]\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = ExtensionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"BlockComment\",Context {cName = \"BlockComment\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = DetectChar '\\215', rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\end(?=\\\\s*\\\\{comment\\\\*?\\\\})\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"CommFindEnd\")]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Column Separator\",Context {cName = \"Column Separator\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Column Separator\")]},Rule {rMatcher = DetectChar '}', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CharTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CommFindEnd\",Context {cName = \"CommFindEnd\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\{\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"comment\\\\*?\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop,Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"CommandParameter\",Context {cName = \"CommandParameter\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"CommandParameter\")]},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '%', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Comment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CommandParameterStart\",Context {cName = \"CommandParameterStart\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"CommandParameter\")]},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '%', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Comment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment\",Context {cName = \"Comment\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(FIXME|TODO):?\", reCaseSensitive = True}), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"\\\\KileResetHL\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Normal Text\")]},Rule {rMatcher = StringDetect \"\\\\KateResetHL\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Normal Text\")]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CommentEnv\",Context {cName = \"CommentEnv\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"BlockComment\")]},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z]\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"LaTeX\",\"EnvCommon\"), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ExtensionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop,Pop,Pop], cDynamic = False}),(\"ContrSeq\",Context {cName = \"ContrSeq\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = StringDetect \"verb*\", rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Verb\")]},Rule {rMatcher = RegExpr (RE {reString = \"(Verb|verb)(?=[^a-zA-Z])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Verb\")]},Rule {rMatcher = RegExpr (RE {reString = \"(lstinline)(?=[^a-zA-Z])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Lstinline\")]},Rule {rMatcher = RegExpr (RE {reString = \"mint(?=[^a-zA-Z])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MintParam\")]},Rule {rMatcher = DetectChar '\\215', rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z@]+(\\\\+?|\\\\*{0,3})\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[^a-zA-Z]\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"DefCommand\",Context {cName = \"DefCommand\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\\\\\[a-zA-Z]+[^\\\\{]*\\\\{\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"CommandParameterStart\")]},Rule {rMatcher = DetectChar '}', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"EndEnvironment\",Context {cName = \"EndEnvironment\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z]\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"EndLatexEnv\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[^a-zA-Z]\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = ExtensionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"EndLatexEnv\",Context {cName = \"EndLatexEnv\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z]+(\\\\*)?\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z]\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]}], cAttribute = ExtensionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"EnvCommon\",Context {cName = \"EnvCommon\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = DetectChar '\\215', rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\*(?=\\\\})\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\*[^\\\\}]*\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[^a-zA-Z\\\\xd7][^\\\\}]*\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]}], cAttribute = ExtensionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FancyLabel\",Context {cName = \"FancyLabel\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\{\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"FancyLabelParameter\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\[\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"FancyLabelOption\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\(\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"FancyLabelRoundBrackets\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"FancyLabelOption\",Context {cName = \"FancyLabelOption\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = StringDetect \"\\\\(\", rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathMode\")]},Rule {rMatcher = DetectChar '\\\\', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"ContrSeq\")]},Rule {rMatcher = DetectChar '$', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathMode\")]},Rule {rMatcher = DetectChar '%', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Comment\")]},Rule {rMatcher = DetectChar '\\215', rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\]\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FancyLabelParameter\",Context {cName = \"FancyLabelParameter\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = StringDetect \"\\\\(\", rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathMode\")]},Rule {rMatcher = DetectChar '\\\\', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"ContrSeq\")]},Rule {rMatcher = DetectChar '$', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathMode\")]},Rule {rMatcher = DetectChar '%', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Comment\")]},Rule {rMatcher = DetectChar '\\215', rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\}\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = ExtensionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FancyLabelRoundBrackets\",Context {cName = \"FancyLabelRoundBrackets\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = StringDetect \"\\\\(\", rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathMode\")]},Rule {rMatcher = DetectChar '\\\\', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"ContrSeq\")]},Rule {rMatcher = DetectChar '$', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathMode\")]},Rule {rMatcher = DetectChar '%', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Comment\")]},Rule {rMatcher = DetectChar '\\215', rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\)\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindBeginEnvironment\",Context {cName = \"FindBeginEnvironment\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"BeginEnvironment\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindEndEnvironment\",Context {cName = \"FindEndEnvironment\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"EndEnvironment\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Footnoting\",Context {cName = \"Footnoting\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\[[^\\\\]]*\\\\]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ' ', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"FootnotingInside\")]},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '%', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Comment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"FootnotingInside\",Context {cName = \"FootnotingInside\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"FootnotingInside\")]},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"\\\\(\", rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"FootnotingMathMode\")]},Rule {rMatcher = DetectChar '$', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"FootnotingMathMode\")]},Rule {rMatcher = IncludeRules (\"LaTeX\",\"Normal Text\"), 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}),(\"FootnotingMathMode\",Context {cName = \"FootnotingMathMode\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = StringDetect \"$$\", rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '$', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '\\\\' ')', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '\\\\' ']', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"LaTeX\",\"MathMode\"), rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"HighlightningBeginC++\",Context {cName = \"HighlightningBeginC++\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \".*(\\\\}|\\\\])\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"HighlightningC++\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"HighlightningBeginPython\",Context {cName = \"HighlightningBeginPython\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \".*(\\\\}|\\\\])\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"HighlightningPython\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"HighlightningC++\",Context {cName = \"HighlightningC++\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = IncludeRules (\"LaTeX\",\"HighlightningCommon\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"C++\",\"\"), rAttribute = NormalTok, rIncludeAttribute = True, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"HighlightningCommon\",Context {cName = \"HighlightningCommon\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\end\\\\s*\\\\{(lstlisting|minted)\\\\*?\\\\}\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop,Pop,Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"HighlightningPython\",Context {cName = \"HighlightningPython\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = IncludeRules (\"LaTeX\",\"HighlightningCommon\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Python\",\"\"), 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}),(\"HighlightningSelector\",Context {cName = \"HighlightningSelector\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = StringDetect \"C++\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"HighlightningBeginC++\")]},Rule {rMatcher = StringDetect \"Python\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"HighlightningBeginPython\")]},Rule {rMatcher = RegExpr (RE {reString = \".*(?=\\\\}|\\\\])\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Label\",Context {cName = \"Label\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\{\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"LabelParameter\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\[\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"LabelOption\")]},Rule {rMatcher = RegExpr (RE {reString = \"[^\\\\[\\\\{]+\", 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}),(\"LabelOption\",Context {cName = \"LabelOption\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = StringDetect \"\\\\(\", rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathMode\")]},Rule {rMatcher = DetectChar '\\\\', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"ContrSeq\")]},Rule {rMatcher = DetectChar '$', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathMode\")]},Rule {rMatcher = DetectChar '%', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Comment\")]},Rule {rMatcher = DetectChar '\\215', rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\]\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"LabelParameter\",Context {cName = \"LabelParameter\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = DetectChar '\\215', rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\}\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = ExtensionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"LatexEnv\",Context {cName = \"LatexEnv\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z]+\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"LaTeX\",\"EnvCommon\"), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ExtensionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ListingsEnvParam\",Context {cName = \"ListingsEnvParam\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = Detect2Chars '}' '[', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"language\\\\s*=\\\\s*(?=[^,]+)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"HighlightningSelector\")]},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Verbatim\")]},Rule {rMatcher = DetectChar ']', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Verbatim\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Push (\"LaTeX\",\"Verbatim\")], cDynamic = False}),(\"Lstinline\",Context {cName = \"Lstinline\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\[\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"FancyLabelOption\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\{\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"LstinlineParameter\")]},Rule {rMatcher = RegExpr (RE {reString = \"(.)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"LstinlineEnd\")]}], cAttribute = VerbatimStringTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"LstinlineEnd\",Context {cName = \"LstinlineEnd\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = StringDetect \"%1\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = DetectChar '\\215', rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[^%1\\\\xd7]*\", reCaseSensitive = True}), rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = VerbatimStringTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop,Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"LstinlineParameter\",Context {cName = \"LstinlineParameter\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\}\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]}], cAttribute = VerbatimStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"MathContrSeq\",Context {cName = \"MathContrSeq\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = DetectChar '\\215', rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z]+\\\\*?\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[^a-zA-Z]\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = SpecialCharTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"MathEnv\",Context {cName = \"MathEnv\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathModeEnv\")]},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z]\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"LaTeX\",\"EnvCommon\"), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ExtensionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"MathEnvParam\",Context {cName = \"MathEnvParam\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\}\\\\{[^\\\\}]*\\\\}\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathModeEnv\")]},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathModeEnv\")]},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z]\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"LaTeX\",\"EnvCommon\"), 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}),(\"MathFindEnd\",Context {cName = \"MathFindEnd\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\{\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(equation|displaymath|eqnarray|subeqnarray|math|multline|gather|align|flalign|alignat|xalignat|xxalignat|IEEEeqnarray|IEEEeqnarraybox|smallmatrix|pmatrix|bmatrix|Bmatrix|vmatrix|Vmatrix|cases)\\\\*?\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop,Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"MathMode\",Context {cName = \"MathMode\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = StringDetect \"$$\", rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '$', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '\\\\' ')', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '\\\\' ']', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"LaTeX\",\"MathModeCommon\"), rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"MathModeCommon\",Context {cName = \"MathModeCommon\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(begin|end)\\\\s*\\\\{(equation|displaymath|eqnarray|subeqnarray|math|multline|gather|align|flalign|alignat|xalignat|xxalignat|IEEEeqnarray)\\\\*?\\\\}\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\begin(?=[^a-zA-Z])\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\end(?=[^a-zA-Z])\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(text|intertext|mbox)\\\\s*(?=\\\\{)\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathModeText\")]},Rule {rMatcher = DetectChar '\\\\', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathContrSeq\")]},Rule {rMatcher = DetectChar '%', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"%\\\\s*BEGIN.*$\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%\\\\s*END.*$\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\215', rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"MathModeDisplay\",Context {cName = \"MathModeDisplay\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = StringDetect \"$$\", rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '$', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ']', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ')', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"LaTeX\",\"MathModeCommon\"), rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"MathModeEnsure\",Context {cName = \"MathModeEnsure\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathModeEnsure\")]},Rule {rMatcher = DetectChar '}', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"LaTeX\",\"MathModeCommon\"), rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"MathModeEnv\",Context {cName = \"MathModeEnv\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\begin(?=[^a-zA-Z])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"FindBeginEnvironment\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\end(?=[^a-zA-Z])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathFindEnd\")]},Rule {rMatcher = StringDetect \"\\\\(\", rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"\\\\[\", rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"\\\\)\", rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"\\\\]\", rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(text|intertext|mbox)\\\\s*(?=\\\\{)\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathModeText\")]},Rule {rMatcher = DetectChar '\\\\', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathContrSeq\")]},Rule {rMatcher = StringDetect \"$$\", rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '$', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '%', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Comment\")]},Rule {rMatcher = DetectChar '\\215', rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%\\\\s*BEGIN.*$\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%\\\\s*END.*$\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"MathModeEquation\",Context {cName = \"MathModeEquation\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' ']', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"$$\", rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '$', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ')', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"LaTeX\",\"MathModeCommon\"), rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"MathModeText\",Context {cName = \"MathModeText\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathModeTextParameterStart\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"MathModeTextParameter\",Context {cName = \"MathModeTextParameter\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathModeTextParameter\")]},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\\215', rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '%', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Comment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"MathModeTextParameterStart\",Context {cName = \"MathModeTextParameterStart\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\215', rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$.*\\\\$\", reCaseSensitive = True}), rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathModeTextParameter\")]},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar '%', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Comment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"MintParam\",Context {cName = \"MintParam\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = Detect2Chars '}' '[', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Verb\")]},Rule {rMatcher = DetectChar ']', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Verb\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"MintedEnvParam\",Context {cName = \"MintedEnvParam\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = Detect2Chars '}' '[', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '}' '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"HighlightningSelector\")]},Rule {rMatcher = Detect2Chars ']' '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"HighlightningSelector\")]},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Verbatim\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Multiline Comment\",Context {cName = \"Multiline Comment\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = StringDetect \"\\\\fi\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"\\\\else\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"NewCommand\",Context {cName = \"NewCommand\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\{\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"LabelParameter\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*(\\\\[\\\\d\\\\](\\\\[[^\\\\]]*\\\\])?)?\\\\{\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"LabelParameter\")]},Rule {rMatcher = DetectChar '}', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"NoWeb\",Context {cName = \"NoWeb\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*@\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal Text\",Context {cName = \"Normal Text\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\begin(?=[^a-zA-Z])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"FindBeginEnvironment\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\end(?=[^a-zA-Z])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"FindEndEnvironment\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(cite|citet|citep|parencite|autocite|Autocite|citetitle)\\\\*(?=[^a-zA-Z])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Label\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(documentclass|includegraphics|include|usepackage|bibliography|bibliographystyle)(?=[^a-zA-Z])\", reCaseSensitive = True}), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"FancyLabel\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(cites|Cites|parencites|Parencites|autocites|Autocites|supercites|footcites|Footcites)(?=[^a-zA-Z])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"FancyLabel\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(cite|citet|citep|nocite|Cite|parencite|Parencite|footcite|Footcite|textcite|Textcite|supercite|autocite|Autocite|citeauthor|Citeauthor|citetitle|citeyear|citeurl|nocite|fullcite|footfullcite)(?=[^a-zA-Z])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Label\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(subref\\\\*?|cref\\\\*?|label|pageref|autoref|ref|vpageref|vref|pagecite|eqref)(?=[^a-zA-Z])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Label\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(part|chapter|section|subsection|subsubsection|paragraph|subparagraph)\\\\*?\\\\s*(?=[\\\\{\\\\[])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Sectioning\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(input|hspace|hspace\\\\*|vspace|vspace\\\\*|rule|special|setlength|newboolean|setboolean|setcounter|geometry|textcolor|definecolor|column)(?=[^a-zA-Z])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"SpecialCommand\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(footnote)\\\\*?\\\\s*(?=[\\\\{\\\\[])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Footnoting\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(renewcommand|providenewcommand|newcommand)\\\\*?(?=[^a-zA-Z])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"NewCommand\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(e|g|x)?def(?=[^a-zA-Z])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"DefCommand\")]},Rule {rMatcher = RegExpr (RE {reString = \"<<.*>>=\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"NoWeb\")]},Rule {rMatcher = StringDetect \"\\\\(\", rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathMode\")]},Rule {rMatcher = StringDetect \"\\\\[\", rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathModeEquation\")]},Rule {rMatcher = StringDetect \"\\\\iffalse\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Multiline Comment\")]},Rule {rMatcher = StringDetect \"\\\\ensuremath{\", rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathModeEnsure\")]},Rule {rMatcher = DetectChar '\\\\', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"ContrSeq\")]},Rule {rMatcher = StringDetect \"$$\", rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathModeDisplay\")]},Rule {rMatcher = DetectChar '$', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathMode\")]},Rule {rMatcher = RegExpr (RE {reString = \"%\\\\s*BEGIN.*$\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%\\\\s*END.*$\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '%', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Comment\")]},Rule {rMatcher = DetectChar '\\215', rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Sectioning\",Context {cName = \"Sectioning\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\[[^\\\\]]*\\\\]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ' ', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"SectioningInside\")]},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '%', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Comment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"SectioningContrSeq\",Context {cName = \"SectioningContrSeq\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = DetectChar '\\215', rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z]+(\\\\+?|\\\\*{0,3})\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[^a-zA-Z]\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SectioningInside\",Context {cName = \"SectioningInside\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"SectioningInside\")]},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"\\\\(\", rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"SectioningMathMode\")]},Rule {rMatcher = DetectChar '\\\\', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"SectioningContrSeq\")]},Rule {rMatcher = DetectChar '$', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"SectioningMathMode\")]},Rule {rMatcher = DetectChar '%', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Comment\")]},Rule {rMatcher = DetectChar '\\215', rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SectioningMathContrSeq\",Context {cName = \"SectioningMathContrSeq\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = DetectChar '\\215', rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z]+\\\\*?\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[^a-zA-Z]\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = SpecialCharTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SectioningMathMode\",Context {cName = \"SectioningMathMode\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = StringDetect \"$$\", rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '$', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '\\\\' ')', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '\\\\' ']', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\\\', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"SectioningMathContrSeq\")]},Rule {rMatcher = DetectChar '%', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Comment\")]},Rule {rMatcher = DetectChar '\\215', rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SpecialCommand\",Context {cName = \"SpecialCommand\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\{\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"SpecialCommandParameterOption\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"SpecialCommandParameterOption\",Context {cName = \"SpecialCommandParameterOption\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = StringDetect \"\\\\(\", rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathMode\")]},Rule {rMatcher = DetectChar '\\\\', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"ContrSeq\")]},Rule {rMatcher = DetectChar '$', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"MathMode\")]},Rule {rMatcher = DetectChar '%', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Comment\")]},Rule {rMatcher = DetectChar '\\215', rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\}\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Tab\",Context {cName = \"Tab\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = DetectChar '&', rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"@{\", rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Column Separator\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\end(?=\\\\s*\\\\{(tabularx|tabular|supertabular|mpsupertabular|xtabular|mpxtabular|longtable)\\\\*?\\\\})\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"TabFindEnd\")]},Rule {rMatcher = IncludeRules (\"LaTeX\",\"Normal Text\"), 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}),(\"TabEnv\",Context {cName = \"TabEnv\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Tab\")]},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z]\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"LaTeX\",\"EnvCommon\"), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ExtensionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop,Pop,Pop], cDynamic = False}),(\"TabFindEnd\",Context {cName = \"TabFindEnd\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\{\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(tabularx|tabular|supertabular|mpsupertabular|xtabular|mpxtabular|longtable)\\\\*?\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop,Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"ToEndOfLine\",Context {cName = \"ToEndOfLine\", cSyntax = \"LaTeX\", cRules = [], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Verb\",Context {cName = \"Verb\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(.)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"VerbEnd\")]}], cAttribute = VerbatimStringTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"VerbEnd\",Context {cName = \"VerbEnd\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = StringDetect \"%1\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = DetectChar '\\215', rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[^%1\\\\xd7]*\", reCaseSensitive = True}), rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = VerbatimStringTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop,Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"VerbFindEnd\",Context {cName = \"VerbFindEnd\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\{\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(verbatim|lstlisting|boxedverbatim|(B|L)?Verbatim|minted)\\\\*?\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop,Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"Verbatim\",Context {cName = \"Verbatim\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = DetectChar '\\215', rAttribute = InformationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\end(?=\\\\s*\\\\{(verbatim|lstlisting|boxedverbatim|(B|L)?Verbatim|minted)\\\\*?\\\\})\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"VerbFindEnd\")]}], cAttribute = VerbatimStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"VerbatimEnv\",Context {cName = \"VerbatimEnv\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Verbatim\")]},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z]\", reCaseSensitive = True}), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"LaTeX\",\"EnvCommon\"), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ExtensionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop,Pop,Pop], cDynamic = False}),(\"VerbatimEnvParam\",Context {cName = \"VerbatimEnvParam\", cSyntax = \"LaTeX\", cRules = [Rule {rMatcher = Detect2Chars '}' '[', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Verbatim\")]},Rule {rMatcher = DetectChar ']', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LaTeX\",\"Verbatim\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)+Holger Danielsson (holger.danielsson@versanet.de)+Michel Ludwig (michel.ludwig@kdemail.net)+Thomas Braun (thomas.braun@virtuell-zuhause.de)\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [\"*.tex\",\"*.ltx\",\"*.dtx\",\"*.sty\",\"*.cls\",\"*.bbx\",\"*.cbx\",\"*.lbx\",\"*.tikz\"], sStartingContext = \"Normal Text\"}"
diff --git a/src/Skylighting/Syntax/Lex.hs b/src/Skylighting/Syntax/Lex.hs
--- a/src/Skylighting/Syntax/Lex.hs
+++ b/src/Skylighting/Syntax/Lex.hs
@@ -2,1061 +2,6 @@
 module Skylighting.Syntax.Lex (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Lex/Flex"
-  , sFilename = "lex.xml"
-  , sShortname = "Lex"
-  , sContexts =
-      fromList
-        [ ( "Action"
-          , Context
-              { cName = "Action"
-              , cSyntax = "Lex/Flex"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\|\\s*$"
-                              , reCompiled = Just (compileRegex True "\\|\\s*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '%' '{'
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Lex/Flex" , "Lex Rule C Bloc" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Push ( "Lex/Flex" , "Action C" ) ]
-              , cDynamic = False
-              }
-          )
-        , ( "Action C"
-          , Context
-              { cName = "Action C"
-              , cSyntax = "Lex/Flex"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Lex/Flex" , "Normal C Bloc" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "C++" , "" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "Lex/Flex"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Definition RegExpr"
-          , Context
-              { cName = "Definition RegExpr"
-              , cSyntax = "Lex/Flex"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Lex/Flex" , "RegExpr Base" )
-                      , rAttribute = StringTok
-                      , 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 = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ".*"
-                              , reCompiled = Just (compileRegex True ".*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Definitions"
-          , Context
-              { cName = "Definitions"
-              , cSyntax = "Lex/Flex"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Lex/Flex" , "Detect C" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '%' '%'
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Lex/Flex" , "Rules" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Lex/Flex" , "Percent Command" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Lex/Flex" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Za-z_]\\w*\\s+"
-                              , reCompiled = Just (compileRegex True "[A-Za-z_]\\w*\\s+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Lex/Flex" , "Definition RegExpr" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Detect C"
-          , Context
-              { cName = "Detect C"
-              , cSyntax = "Lex/Flex"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s"
-                              , reCompiled = Just (compileRegex True "\\s")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Lex/Flex" , "Indented C" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '%' '{'
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Lex/Flex" , "Lex C Bloc" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Indented C"
-          , Context
-              { cName = "Indented C"
-              , cSyntax = "Lex/Flex"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "C++" , "" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Lex C Bloc"
-          , Context
-              { cName = "Lex C Bloc"
-              , cSyntax = "Lex/Flex"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '%' '}'
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "C++" , "" )
-                      , 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
-              }
-          )
-        , ( "Lex Rule C Bloc"
-          , Context
-              { cName = "Lex Rule C Bloc"
-              , cSyntax = "Lex/Flex"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '%' '}'
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "C++" , "" )
-                      , 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
-              }
-          )
-        , ( "Normal C Bloc"
-          , Context
-              { cName = "Normal C Bloc"
-              , cSyntax = "Lex/Flex"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Lex/Flex" , "Normal C Bloc" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "C++" , "" )
-                      , 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
-              }
-          )
-        , ( "Percent Command"
-          , Context
-              { cName = "Percent Command"
-              , cSyntax = "Lex/Flex"
-              , cRules = []
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Pre Start"
-          , Context
-              { cName = "Pre Start"
-              , cSyntax = "Lex/Flex"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "."
-                              , reCompiled = Just (compileRegex True ".")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Lex/Flex" , "Definitions" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "RegExpr ("
-          , Context
-              { cName = "RegExpr ("
-              , cSyntax = "Lex/Flex"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Lex/Flex" , "RegExpr Base" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = StringTok
-                      , 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 = 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
-              }
-          )
-        , ( "RegExpr Base"
-          , Context
-              { cName = "RegExpr Base"
-              , cSyntax = "Lex/Flex"
-              , 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 = DetectChar '('
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Lex/Flex" , "RegExpr (" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Lex/Flex" , "RegExpr [" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Lex/Flex" , "RegExpr {" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Lex/Flex" , "RegExpr Q" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "RegExpr Q"
-          , Context
-              { cName = "RegExpr Q"
-              , cSyntax = "Lex/Flex"
-              , 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 = DetectChar '"'
-                      , rAttribute = StringTok
-                      , 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 = 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
-              }
-          )
-        , ( "RegExpr ["
-          , Context
-              { cName = "RegExpr ["
-              , cSyntax = "Lex/Flex"
-              , 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 = DetectChar ']'
-                      , rAttribute = StringTok
-                      , 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 = 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
-              }
-          )
-        , ( "RegExpr {"
-          , Context
-              { cName = "RegExpr {"
-              , cSyntax = "Lex/Flex"
-              , 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 = DetectChar '}'
-                      , rAttribute = StringTok
-                      , 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 = 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
-              }
-          )
-        , ( "Rule RegExpr"
-          , Context
-              { cName = "Rule RegExpr"
-              , cSyntax = "Lex/Flex"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\{$"
-                              , reCompiled = Just (compileRegex True "\\{$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Lex/Flex" , "Start Conditions Scope" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Lex/Flex" , "RegExpr Base" )
-                      , rAttribute = StringTok
-                      , 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 = StringTok
-                      , 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 = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Lex/Flex" , "Action" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Rules"
-          , Context
-              { cName = "Rules"
-              , cSyntax = "Lex/Flex"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Lex/Flex" , "Detect C" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '%' '%'
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Lex/Flex" , "User Code" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Push ( "Lex/Flex" , "Rule RegExpr" ) ]
-              , cDynamic = False
-              }
-          )
-        , ( "Start Conditions Scope"
-          , Context
-              { cName = "Start Conditions Scope"
-              , cSyntax = "Lex/Flex"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\}"
-                              , reCompiled = Just (compileRegex True "\\s*\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Lex/Flex" , "Rule RegExpr" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Push ( "Lex/Flex" , "Rule RegExpr" ) ]
-              , cDynamic = False
-              }
-          )
-        , ( "User Code"
-          , Context
-              { cName = "User Code"
-              , cSyntax = "Lex/Flex"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "C++" , "" )
-                      , 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
-              }
-          )
-        ]
-  , sAuthor = "Jan Villat (jan.villat@net2000.ch)"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.l" , "*.lex" , "*.flex" ]
-  , sStartingContext = "Pre Start"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Lex/Flex\", sFilename = \"lex.xml\", sShortname = \"Lex\", sContexts = fromList [(\"Action\",Context {cName = \"Action\", cSyntax = \"Lex/Flex\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\|\\\\s*$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '%' '{', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Lex/Flex\",\"Lex Rule C Bloc\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Push (\"Lex/Flex\",\"Action C\")], cDynamic = False}),(\"Action C\",Context {cName = \"Action C\", cSyntax = \"Lex/Flex\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Lex/Flex\",\"Normal C Bloc\")]},Rule {rMatcher = DetectChar '}', rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"C++\",\"\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment\",Context {cName = \"Comment\", cSyntax = \"Lex/Flex\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Definition RegExpr\",Context {cName = \"Definition RegExpr\", cSyntax = \"Lex/Flex\", cRules = [Rule {rMatcher = IncludeRules (\"Lex/Flex\",\"RegExpr Base\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \".*\", reCaseSensitive = True}), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Definitions\",Context {cName = \"Definitions\", cSyntax = \"Lex/Flex\", cRules = [Rule {rMatcher = IncludeRules (\"Lex/Flex\",\"Detect C\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '%' '%', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Lex/Flex\",\"Rules\")]},Rule {rMatcher = DetectChar '%', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Lex/Flex\",\"Percent Command\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Lex/Flex\",\"Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"[A-Za-z_]\\\\w*\\\\s+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Lex/Flex\",\"Definition RegExpr\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Detect C\",Context {cName = \"Detect C\", cSyntax = \"Lex/Flex\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Lex/Flex\",\"Indented C\")]},Rule {rMatcher = Detect2Chars '%' '{', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Lex/Flex\",\"Lex C Bloc\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Indented C\",Context {cName = \"Indented C\", cSyntax = \"Lex/Flex\", cRules = [Rule {rMatcher = IncludeRules (\"C++\",\"\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Lex C Bloc\",Context {cName = \"Lex C Bloc\", cSyntax = \"Lex/Flex\", cRules = [Rule {rMatcher = Detect2Chars '%' '}', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"C++\",\"\"), 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}),(\"Lex Rule C Bloc\",Context {cName = \"Lex Rule C Bloc\", cSyntax = \"Lex/Flex\", cRules = [Rule {rMatcher = Detect2Chars '%' '}', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"C++\",\"\"), 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}),(\"Normal C Bloc\",Context {cName = \"Normal C Bloc\", cSyntax = \"Lex/Flex\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Lex/Flex\",\"Normal C Bloc\")]},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"C++\",\"\"), 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}),(\"Percent Command\",Context {cName = \"Percent Command\", cSyntax = \"Lex/Flex\", cRules = [], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Pre Start\",Context {cName = \"Pre Start\", cSyntax = \"Lex/Flex\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Lex/Flex\",\"Definitions\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"RegExpr (\",Context {cName = \"RegExpr (\", cSyntax = \"Lex/Flex\", cRules = [Rule {rMatcher = IncludeRules (\"Lex/Flex\",\"RegExpr Base\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ')', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), 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}),(\"RegExpr Base\",Context {cName = \"RegExpr Base\", cSyntax = \"Lex/Flex\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Lex/Flex\",\"RegExpr (\")]},Rule {rMatcher = DetectChar '[', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Lex/Flex\",\"RegExpr [\")]},Rule {rMatcher = DetectChar '{', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Lex/Flex\",\"RegExpr {\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Lex/Flex\",\"RegExpr Q\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"RegExpr Q\",Context {cName = \"RegExpr Q\", cSyntax = \"Lex/Flex\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), 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}),(\"RegExpr [\",Context {cName = \"RegExpr [\", cSyntax = \"Lex/Flex\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ']', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), 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}),(\"RegExpr {\",Context {cName = \"RegExpr {\", cSyntax = \"Lex/Flex\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), 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}),(\"Rule RegExpr\",Context {cName = \"Rule RegExpr\", cSyntax = \"Lex/Flex\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\{$\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Lex/Flex\",\"Start Conditions Scope\")]},Rule {rMatcher = IncludeRules (\"Lex/Flex\",\"RegExpr Base\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Lex/Flex\",\"Action\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Rules\",Context {cName = \"Rules\", cSyntax = \"Lex/Flex\", cRules = [Rule {rMatcher = IncludeRules (\"Lex/Flex\",\"Detect C\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '%' '%', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Lex/Flex\",\"User Code\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Push (\"Lex/Flex\",\"Rule RegExpr\")], cDynamic = False}),(\"Start Conditions Scope\",Context {cName = \"Start Conditions Scope\", cSyntax = \"Lex/Flex\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\}\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Lex/Flex\",\"Rule RegExpr\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Push (\"Lex/Flex\",\"Rule RegExpr\")], cDynamic = False}),(\"User Code\",Context {cName = \"User Code\", cSyntax = \"Lex/Flex\", cRules = [Rule {rMatcher = IncludeRules (\"C++\",\"\"), 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})], sAuthor = \"Jan Villat (jan.villat@net2000.ch)\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [\"*.l\",\"*.lex\",\"*.flex\"], sStartingContext = \"Pre Start\"}"
diff --git a/src/Skylighting/Syntax/Lilypond.hs b/src/Skylighting/Syntax/Lilypond.hs
--- a/src/Skylighting/Syntax/Lilypond.hs
+++ b/src/Skylighting/Syntax/Lilypond.hs
@@ -2,5875 +2,6 @@
 module Skylighting.Syntax.Lilypond (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "LilyPond"
-  , sFilename = "lilypond.xml"
-  , sShortname = "Lilypond"
-  , sContexts =
-      fromList
-        [ ( "assignment"
-          , Context
-              { cName = "assignment"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b(dash(Hat|Plus|Dash|Bar|Larger|Dot|Underscore)|fermataMarkup|pipeSymbol|slashSeparator)\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\b(dash(Hat|Plus|Dash|Bar|Larger|Dot|Underscore)|fermataMarkup|pipeSymbol|slashSeparator)\\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 = "[a-z]+"
-                              , reCompiled = Just (compileRegex False "[a-z]+")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "basic"
-          , Context
-              { cName = "basic"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '%' '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "commentblock" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "commentline" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "string" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "scheme" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "schemesub" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "chord"
-          , Context
-              { cName = "chord"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "chordend" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z]))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z]))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "chordpitch" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "<{}srR"
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "music" )
-                      , 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
-              }
-          )
-        , ( "chordend"
-          , Context
-              { cName = "chordend"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\\\(longa|breve)\\b|(1|2|4|8|16|32|64|128|256|512|1024|2048)(?!\\d))(\\s*\\.+)?(\\s*\\*\\s*\\d+(/\\d+)?)*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(\\\\(longa|breve)\\b|(1|2|4|8|16|32|64|128|256|512|1024|2048)(?!\\d))(\\s*\\.+)?(\\s*\\*\\s*\\d+(/\\d+)?)*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop , Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "chordmode"
-          , Context
-              { cName = "chordmode"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "chordmode2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "chordmode2"
-          , Context
-              { cName = "chordmode2"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "chordrules" )
-                      , 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
-              }
-          )
-        , ( "chordpitch"
-          , Context
-              { cName = "chordpitch"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , 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 = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\\\(longa|breve)\\b|(1|2|4|8|16|32|64|128|256|512|1024|2048)(?!\\d))(\\s*\\.+)?(\\s*\\*\\s*\\d+(/\\d+)?)*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(\\\\(longa|breve)\\b|(1|2|4|8|16|32|64|128|256|512|1024|2048)(?!\\d))(\\s*\\.+)?(\\s*\\*\\s*\\d+(/\\d+)?)*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\d+"
-                              , reCompiled = Just (compileRegex True "\\d+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "chordrules"
-          , Context
-              { cName = "chordrules"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "chordrules" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  ":?([\\.^]?\\d+[-+]?|(m|dim|aug|maj|sus)(?![A-Za-z]))*(/\\+?\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z])))?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       ":?([\\.^]?\\d+[-+]?|(m|dim|aug|maj|sus)(?![A-Za-z]))*(/\\+?\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z])))?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "music" )
-                      , 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
-              }
-          )
-        , ( "command"
-          , Context
-              { cName = "command"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\note(mode|s)(?![A-Za-z])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\note(mode|s)(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "notemode" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\drum(mode|s)(?![A-Za-z])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\drum(mode|s)(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "drummode" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\chord(mode|s)(?![A-Za-z])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\chord(mode|s)(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "chordmode" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\figure(mode|s)(?![A-Za-z])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\figure(mode|s)(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "figuremode" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(lyric(mode|s)|addlyrics)(?![A-Za-z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "\\\\(lyric(mode|s)|addlyrics)(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "lyricmode" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\lyricsto(?![A-Za-z])"
-                              , reCompiled = Just (compileRegex True "\\\\lyricsto(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "lyricsto" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\markup(lines)?(?![A-Za-z])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\markup(lines)?(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "markup" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(header|paper|layout|midi|with)\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\(header|paper|layout|midi|with)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "section" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(new|context|change)\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\(new|context|change)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "context" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(un)?set\\b"
-                              , reCompiled = Just (compileRegex True "\\\\(un)?set\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "set" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(override(Property)?|revert)(?![A-Za-z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\\\(override(Property)?|revert)(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "override" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\skip(?![A-Za-z])"
-                              , reCompiled = Just (compileRegex True "\\\\skip(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "duration" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\tempo(?![A-Za-z])"
-                              , reCompiled = Just (compileRegex True "\\\\tempo(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "tempo" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\(accepts|alias|consists|defaultchild|denies|description|grobdescriptions|include|invalid|language|name|objectid|once|remove|sequential|simultaneous|type|version|score|book|bookpart)(?![A-Za-z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\(accepts|alias|consists|defaultchild|denies|description|grobdescriptions|include|invalid|language|name|objectid|once|remove|sequential|simultaneous|type|version|score|book|bookpart)(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\((aiken|funk|sacredHarp|southernHarmony|walker)Heads(Minor)?)(?![A-Za-z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\((aiken|funk|sacredHarp|southernHarmony|walker)Heads(Minor)?)(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\(acciaccatura|addQuote|afterGrace|allowPageTurn|alternative|apply(Context|Music|Output)|appoggiatura|arpeggio(Arrow(Down|Up)|Bracket|Normal|Parenthesis)?|(a|de)scendens|auctum|augmentum|autoBeamO(ff|n)|autochange|balloon(Grob)?Text|bar|barNumberCheck|bendAfter|breathe|break|cadenzaO(ff|n)|cavum|clef(\\s+(treble|violin|G|alto|C|tenor|(sub)?bass|F|french|(mezzo)?soprano|(var)?baritone|percussion|tab))?|(end)?(de)?cr|cresc(TextCresc|Hairpin))(?![A-Za-z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\(acciaccatura|addQuote|afterGrace|allowPageTurn|alternative|apply(Context|Music|Output)|appoggiatura|arpeggio(Arrow(Down|Up)|Bracket|Normal|Parenthesis)?|(a|de)scendens|auctum|augmentum|autoBeamO(ff|n)|autochange|balloon(Grob)?Text|bar|barNumberCheck|bendAfter|breathe|break|cadenzaO(ff|n)|cavum|clef(\\s+(treble|violin|G|alto|C|tenor|(sub)?bass|F|french|(mezzo)?soprano|(var)?baritone|percussion|tab))?|(end)?(de)?cr|cresc(TextCresc|Hairpin))(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\((cue|transposedCue)During|default|deminutum|dim(Text(Decresc|Decr|Dim)|Hairpin)|display(Lily)?Music|divisio(Maior|Maxima|Minima)|(dynamic|dots|phrasingSlur|slur|stem|tie|tuplet)(Down|Neutral|Up)|(balloon|text)LengthO(ff|n)|featherDurations|figure(mode|s)|finalis|flexa|(french|german|italian|semiGerman)Chords|glissando|grace|harmonic|(unH|h)ideNotes|(hide|show)StaffSwitch|inclinatum|(keep|remove)WithTag|key(\\s+\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z])))?|killCues)(?![A-Za-z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\((cue|transposedCue)During|default|deminutum|dim(Text(Decresc|Decr|Dim)|Hairpin)|display(Lily)?Music|divisio(Maior|Maxima|Minima)|(dynamic|dots|phrasingSlur|slur|stem|tie|tuplet)(Down|Neutral|Up)|(balloon|text)LengthO(ff|n)|featherDurations|figure(mode|s)|finalis|flexa|(french|german|italian|semiGerman)Chords|glissando|grace|harmonic|(unH|h)ideNotes|(hide|show)StaffSwitch|inclinatum|(keep|remove)WithTag|key(\\s+\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z])))?|killCues)(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\(label|laissezVibrer|linea|makeClusters|mark|maxima|melisma(End)?|mergeDifferently(Head|Dott)edO(ff|n)|newSpacingSection|no(Beam|Break|PageBreak|PageTurn)|normalsize|numericTimeSignature|octaveCheck|oneVoice|oriscus|ottava|page(-ref|Break|Turn)|parallelMusic|parenthesize|partcombine|partial(\\s*(\\\\(longa|breve)\\b|(1|2|4|8|16|32|64|128|256|512|1024|2048)(?!\\d))(\\s*\\.+)?(\\s*\\*\\s*\\d+(/\\d+)?)*)?|pes|pitchedTrill)(?![A-Za-z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\(label|laissezVibrer|linea|makeClusters|mark|maxima|melisma(End)?|mergeDifferently(Head|Dott)edO(ff|n)|newSpacingSection|no(Beam|Break|PageBreak|PageTurn)|normalsize|numericTimeSignature|octaveCheck|oneVoice|oriscus|ottava|page(-ref|Break|Turn)|parallelMusic|parenthesize|partcombine|partial(\\s*(\\\\(longa|breve)\\b|(1|2|4|8|16|32|64|128|256|512|1024|2048)(?!\\d))(\\s*\\.+)?(\\s*\\*\\s*\\d+(/\\d+)?)*)?|pes|pitchedTrill)(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\(pointAndClickO(ff|n)|quilisma|quoteDuring|relative(\\s+\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z])))?|RemoveEmptyStaffContext|repeat(\\s+(unfold|volta|tremolo|percent)(\\s+\\d+)?)?|repeatTie|resetRelativeOctave|rest|scaleDurations|scoreTweak|easyHeadsO(ff|n)|shift(Durations|Off|On{1,3})|(slur|tie)(Both|Dashed|Dotted|Solid)|small|spacingTweaks)(?![A-Za-z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\(pointAndClickO(ff|n)|quilisma|quoteDuring|relative(\\s+\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z])))?|RemoveEmptyStaffContext|repeat(\\s+(unfold|volta|tremolo|percent)(\\s+\\d+)?)?|repeatTie|resetRelativeOctave|rest|scaleDurations|scoreTweak|easyHeadsO(ff|n)|shift(Durations|Off|On{1,3})|(slur|tie)(Both|Dashed|Dotted|Solid)|small|spacingTweaks)(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\((start|stop)(Group|(Text|Trill)Span|Staff)|stemBoth|stropha|super|(sustain|sostenuto)O(ff|n)|table-of-contents|tag|times?(\\s*\\d+/\\d+)?|tiny|tocItem)(?![A-Za-z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\((start|stop)(Group|(Text|Trill)Span|Staff)|stemBoth|stropha|super|(sustain|sostenuto)O(ff|n)|table-of-contents|tag|times?(\\s*\\d+/\\d+)?|tiny|tocItem)(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\(transpose(\\s+\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z]))\\s*\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z])))?|transposition(\\s+\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z]))))(?![A-Za-z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\(transpose(\\s+\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z]))\\s*\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z])))?|transposition(\\s+\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z]))))(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\(tweak|unfoldRepeats|virg(ul)?a|voice(One|Two|Three|Four)|withMusicProperty|cm|mm|in|pt|major|minor|ionian|locrian|aeolian|mixolydian|lydian|phrygian|dorian)(?![A-Za-z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\(tweak|unfoldRepeats|virg(ul)?a|voice(One|Two|Three|Four)|withMusicProperty|cm|mm|in|pt|major|minor|ionian|locrian|aeolian|mixolydian|lydian|phrygian|dorian)(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\(dash(Hat|Plus|Dash|Bar|Larger|Dot|Underscore)|fermataMarkup|pipeSymbol|slashSeparator)(?![A-Za-z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\(dash(Hat|Plus|Dash|Bar|Larger|Dot|Underscore)|fermataMarkup|pipeSymbol|slashSeparator)(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(consistsend)(?![A-Za-z])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\(consistsend)(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\(arpeggio(Up|Down|Neutral)|newpage|script(Up|Down|Both)|(empty|fat)Text|setEasyHeads|(default|voice|modernVoice|piano|forget)Accidentals|(modern(Voice)?|piano)Cautionaries|noResetKey|compressMusic|octave|(sustain|sostenuto)(Down|Up)|set(Hairpin|Text)(Cresc|Decresc|Dim)|setTextDecr)(?![A-Za-z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\(arpeggio(Up|Down|Neutral)|newpage|script(Up|Down|Both)|(empty|fat)Text|setEasyHeads|(default|voice|modernVoice|piano|forget)Accidentals|(modern(Voice)?|piano)Cautionaries|noResetKey|compressMusic|octave|(sustain|sostenuto)(Down|Up)|set(Hairpin|Text)(Cresc|Decresc|Dim)|setTextDecr)(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(translator|newcontext)\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\(translator|newcontext)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "context" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\property(?![A-Za-z])"
-                              , reCompiled = Just (compileRegex True "\\\\property(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "override" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[A-Za-z]+"
-                              , reCompiled = Just (compileRegex True "\\\\[A-Za-z]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "commentblock"
-          , Context
-              { cName = "commentblock"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ 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 = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "commentline"
-          , Context
-              { cName = "commentline"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "connect"
-          , Context
-              { cName = "connect"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = AnyChar ".-+|>^_12345"
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "context"
-          , Context
-              { cName = "context"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&'()*+,-./0123456789:;<=>?[\\]^_{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ChoirStaff"
-                               , "ChordNames"
-                               , "CueVoice"
-                               , "Devnull"
-                               , "DrumStaff"
-                               , "DrumVoice"
-                               , "Dynamics"
-                               , "FiguredBass"
-                               , "FretBoards"
-                               , "Global"
-                               , "GrandStaff"
-                               , "GregorianTranscriptionStaff"
-                               , "GregorianTranscriptionVoice"
-                               , "Lyrics"
-                               , "MensuralStaff"
-                               , "MensuralVoice"
-                               , "NoteNames"
-                               , "PianoStaff"
-                               , "RhythmicStaff"
-                               , "Score"
-                               , "Staff"
-                               , "StaffGroup"
-                               , "TabStaff"
-                               , "TabVoice"
-                               , "Timing"
-                               , "VaticanaStaff"
-                               , "VaticanaVoice"
-                               , "Voice"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "context2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&'()*+,-./0123456789:;<=>?[\\]^_{|}~"
-                              }
-                            (makeWordSet True [ "InnerChoirStaff" , "InnerStaffGroup" ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "context2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Za-z]+"
-                              , reCompiled = Just (compileRegex True "[A-Za-z]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "context2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "section2" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "context2"
-          , Context
-              { cName = "context2"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "=(\\s*[A-Za-z]+)?"
-                              , reCompiled = Just (compileRegex True "=(\\s*[A-Za-z]+)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop , Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "default"
-          , Context
-              { cName = "default"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '<' '<'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '>' '>'
-                      , rAttribute = KeywordTok
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "command" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "basic" )
-                      , 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
-              }
-          )
-        , ( "drumchord"
-          , Context
-              { cName = "drumchord"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&'()*+,-./0123456789:;<=>?[\\]^_{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "acousticbassdrum"
-                               , "acousticsnare"
-                               , "agh"
-                               , "agl"
-                               , "bassdrum"
-                               , "bd"
-                               , "bda"
-                               , "boh"
-                               , "bohm"
-                               , "boho"
-                               , "bol"
-                               , "bolm"
-                               , "bolo"
-                               , "cab"
-                               , "cabasa"
-                               , "cb"
-                               , "cgh"
-                               , "cghm"
-                               , "cgho"
-                               , "cgl"
-                               , "cglm"
-                               , "cglo"
-                               , "chinesecymbal"
-                               , "cl"
-                               , "claves"
-                               , "closedhihat"
-                               , "cowbell"
-                               , "crashcymbal"
-                               , "crashcymbala"
-                               , "crashcymbalb"
-                               , "cuim"
-                               , "cuio"
-                               , "cymc"
-                               , "cymca"
-                               , "cymcb"
-                               , "cymch"
-                               , "cymr"
-                               , "cymra"
-                               , "cymrb"
-                               , "cyms"
-                               , "da"
-                               , "db"
-                               , "dc"
-                               , "dd"
-                               , "de"
-                               , "electricsnare"
-                               , "fivedown"
-                               , "fiveup"
-                               , "fourdown"
-                               , "fourup"
-                               , "gui"
-                               , "guil"
-                               , "guiro"
-                               , "guis"
-                               , "halfopenhihat"
-                               , "handclap"
-                               , "hc"
-                               , "hh"
-                               , "hhc"
-                               , "hhho"
-                               , "hho"
-                               , "hhp"
-                               , "hiagogo"
-                               , "hibongo"
-                               , "hiconga"
-                               , "highfloortom"
-                               , "hightom"
-                               , "hihat"
-                               , "himidtom"
-                               , "hisidestick"
-                               , "hitimbale"
-                               , "hiwoodblock"
-                               , "loagogo"
-                               , "lobongo"
-                               , "loconga"
-                               , "longguiro"
-                               , "longwhistle"
-                               , "losidestick"
-                               , "lotimbale"
-                               , "lowfloortom"
-                               , "lowmidtom"
-                               , "lowoodblock"
-                               , "lowtom"
-                               , "mar"
-                               , "maracas"
-                               , "mutecuica"
-                               , "mutehibongo"
-                               , "mutehiconga"
-                               , "mutelobongo"
-                               , "muteloconga"
-                               , "mutetriangle"
-                               , "onedown"
-                               , "oneup"
-                               , "opencuica"
-                               , "openhibongo"
-                               , "openhiconga"
-                               , "openhihat"
-                               , "openlobongo"
-                               , "openloconga"
-                               , "opentriangle"
-                               , "pedalhihat"
-                               , "rb"
-                               , "ridebell"
-                               , "ridecymbal"
-                               , "ridecymbala"
-                               , "ridecymbalb"
-                               , "shortguiro"
-                               , "shortwhistle"
-                               , "sidestick"
-                               , "sn"
-                               , "sna"
-                               , "snare"
-                               , "sne"
-                               , "splashcymbal"
-                               , "ss"
-                               , "ssh"
-                               , "ssl"
-                               , "tamb"
-                               , "tambourine"
-                               , "tamtam"
-                               , "threedown"
-                               , "threeup"
-                               , "timh"
-                               , "timl"
-                               , "tomfh"
-                               , "tomfl"
-                               , "tomh"
-                               , "toml"
-                               , "tommh"
-                               , "tomml"
-                               , "tri"
-                               , "triangle"
-                               , "trim"
-                               , "trio"
-                               , "tt"
-                               , "twodown"
-                               , "twoup"
-                               , "ua"
-                               , "ub"
-                               , "uc"
-                               , "ud"
-                               , "ue"
-                               , "vibraslap"
-                               , "vibs"
-                               , "wbh"
-                               , "wbl"
-                               , "whl"
-                               , "whs"
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "chord" )
-                      , 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
-              }
-          )
-        , ( "drummode"
-          , Context
-              { cName = "drummode"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "drummode2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "drummode2"
-          , Context
-              { cName = "drummode2"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "drumrules" )
-                      , 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
-              }
-          )
-        , ( "drumrules"
-          , Context
-              { cName = "drumrules"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "drumrules" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , 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 = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "drumchord" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&'()*+,-./0123456789:;<=>?[\\]^_{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "acousticbassdrum"
-                               , "acousticsnare"
-                               , "agh"
-                               , "agl"
-                               , "bassdrum"
-                               , "bd"
-                               , "bda"
-                               , "boh"
-                               , "bohm"
-                               , "boho"
-                               , "bol"
-                               , "bolm"
-                               , "bolo"
-                               , "cab"
-                               , "cabasa"
-                               , "cb"
-                               , "cgh"
-                               , "cghm"
-                               , "cgho"
-                               , "cgl"
-                               , "cglm"
-                               , "cglo"
-                               , "chinesecymbal"
-                               , "cl"
-                               , "claves"
-                               , "closedhihat"
-                               , "cowbell"
-                               , "crashcymbal"
-                               , "crashcymbala"
-                               , "crashcymbalb"
-                               , "cuim"
-                               , "cuio"
-                               , "cymc"
-                               , "cymca"
-                               , "cymcb"
-                               , "cymch"
-                               , "cymr"
-                               , "cymra"
-                               , "cymrb"
-                               , "cyms"
-                               , "da"
-                               , "db"
-                               , "dc"
-                               , "dd"
-                               , "de"
-                               , "electricsnare"
-                               , "fivedown"
-                               , "fiveup"
-                               , "fourdown"
-                               , "fourup"
-                               , "gui"
-                               , "guil"
-                               , "guiro"
-                               , "guis"
-                               , "halfopenhihat"
-                               , "handclap"
-                               , "hc"
-                               , "hh"
-                               , "hhc"
-                               , "hhho"
-                               , "hho"
-                               , "hhp"
-                               , "hiagogo"
-                               , "hibongo"
-                               , "hiconga"
-                               , "highfloortom"
-                               , "hightom"
-                               , "hihat"
-                               , "himidtom"
-                               , "hisidestick"
-                               , "hitimbale"
-                               , "hiwoodblock"
-                               , "loagogo"
-                               , "lobongo"
-                               , "loconga"
-                               , "longguiro"
-                               , "longwhistle"
-                               , "losidestick"
-                               , "lotimbale"
-                               , "lowfloortom"
-                               , "lowmidtom"
-                               , "lowoodblock"
-                               , "lowtom"
-                               , "mar"
-                               , "maracas"
-                               , "mutecuica"
-                               , "mutehibongo"
-                               , "mutehiconga"
-                               , "mutelobongo"
-                               , "muteloconga"
-                               , "mutetriangle"
-                               , "onedown"
-                               , "oneup"
-                               , "opencuica"
-                               , "openhibongo"
-                               , "openhiconga"
-                               , "openhihat"
-                               , "openlobongo"
-                               , "openloconga"
-                               , "opentriangle"
-                               , "pedalhihat"
-                               , "rb"
-                               , "ridebell"
-                               , "ridecymbal"
-                               , "ridecymbala"
-                               , "ridecymbalb"
-                               , "shortguiro"
-                               , "shortwhistle"
-                               , "sidestick"
-                               , "sn"
-                               , "sna"
-                               , "snare"
-                               , "sne"
-                               , "splashcymbal"
-                               , "ss"
-                               , "ssh"
-                               , "ssl"
-                               , "tamb"
-                               , "tambourine"
-                               , "tamtam"
-                               , "threedown"
-                               , "threeup"
-                               , "timh"
-                               , "timl"
-                               , "tomfh"
-                               , "tomfl"
-                               , "tomh"
-                               , "toml"
-                               , "tommh"
-                               , "tomml"
-                               , "tri"
-                               , "triangle"
-                               , "trim"
-                               , "trio"
-                               , "tt"
-                               , "twodown"
-                               , "twoup"
-                               , "ua"
-                               , "ub"
-                               , "uc"
-                               , "ud"
-                               , "ue"
-                               , "vibraslap"
-                               , "vibs"
-                               , "wbh"
-                               , "wbl"
-                               , "whl"
-                               , "whs"
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "duration" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "music" )
-                      , 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
-              }
-          )
-        , ( "duration"
-          , Context
-              { cName = "duration"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\\\(longa|breve)\\b|(1|2|4|8|16|32|64|128|256|512|1024|2048)(?!\\d))(\\s*\\.+)?(\\s*\\*\\s*\\d+(/\\d+)?)*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(\\\\(longa|breve)\\b|(1|2|4|8|16|32|64|128|256|512|1024|2048)(?!\\d))(\\s*\\.+)?(\\s*\\*\\s*\\d+(/\\d+)?)*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\d+"
-                              , reCompiled = Just (compileRegex True "\\d+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "figure"
-          , Context
-              { cName = "figure"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "chordend" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "basic" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\markup(lines)?(?![A-Za-z])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\markup(lines)?(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "markup" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\skip(?![A-Za-z])"
-                              , reCompiled = Just (compileRegex True "\\\\skip(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "duration" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "figuremode"
-          , Context
-              { cName = "figuremode"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "figuremode2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "figuremode2"
-          , Context
-              { cName = "figuremode2"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "figurerules" )
-                      , 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
-              }
-          )
-        , ( "figurerules"
-          , Context
-              { cName = "figurerules"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "figurerules" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "figure" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[srR](?![A-Za-z])"
-                              , reCompiled = Just (compileRegex True "\\b[srR](?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "duration" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "default" )
-                      , 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
-              }
-          )
-        , ( "lilypond"
-          , Context
-              { cName = "lilypond"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "music" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[a-z]+\\s*="
-                              , reCompiled = Just (compileRegex False "\\b[a-z]+\\s*=")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "assignment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "lyricmode"
-          , Context
-              { cName = "lyricmode"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "lyricmode2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "lyricmode2"
-          , Context
-              { cName = "lyricmode2"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "lyricrules" )
-                      , 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
-              }
-          )
-        , ( "lyricrules"
-          , Context
-              { cName = "lyricrules"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "lyricrules" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\w+-{2,}|\\w+_{2,}|-{2,}\\w+|_{2,}\\w+)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "(\\w+-{2,}|\\w+_{2,}|-{2,}\\w+|_{2,}\\w+)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\\\(longa|breve)\\b|(1|2|4|8|16|32|64|128|256|512|1024|2048)(?!\\d))(\\s*\\.+)?(\\s*\\*\\s*\\d+(/\\d+)?)*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(\\\\(longa|breve)\\b|(1|2|4|8|16|32|64|128|256|512|1024|2048)(?!\\d))(\\s*\\.+)?(\\s*\\*\\s*\\d+(/\\d+)?)*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(--|__|_)"
-                              , reCompiled = Just (compileRegex True "(--|__|_)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "default" )
-                      , 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 = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "lyricsto"
-          , Context
-              { cName = "lyricsto"
-              , cSyntax = "LilyPond"
-              , 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 = [ Push ( "LilyPond" , "lyricsto2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Za-z]+"
-                              , reCompiled = Just (compileRegex True "[A-Za-z]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "lyricsto2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "lyricsto2"
-          , Context
-              { cName = "lyricsto2"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "lyricsto3" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop , Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "lyricsto3"
-          , Context
-              { cName = "lyricsto3"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "lyricrules" )
-                      , 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
-              }
-          )
-        , ( "markup"
-          , Context
-              { cName = "markup"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "markup2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\score\\b"
-                              , reCompiled = Just (compileRegex True "\\\\score\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "notemode" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\(markup|bold|(rounded-)?box|bracket|caps|(center|general|left|right)-align|circle|((center|dir|left|right)-)?column|combine|concat|dynamic|fill-line|finger|fontCaps|(abs-)?fontsize|fraction|halign|hbracket|hcenter-in|hcenter|hspace|huge|italic|justify|larger?|line|lower|magnify|medium|normal-size-(sub|super)|normal-text|normalsize|number|on-the-fly|override|pad-(around|markup|to-box|x)|page-ref|postscript|put-adjacent|raise|roman|rotate|sans|small(er)?|smallCaps|sub|super|teeny|text|tiny|translate(-scaled)?|transparent|typewriter|underline|upright|vcenter|whiteout|with-(color|dimensions|url)|wordwrap|(markup|column-|justified-|override-|wordwrap-)lines|wordwrap-(string-)?internal)(?![A-Za-z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\(markup|bold|(rounded-)?box|bracket|caps|(center|general|left|right)-align|circle|((center|dir|left|right)-)?column|combine|concat|dynamic|fill-line|finger|fontCaps|(abs-)?fontsize|fraction|halign|hbracket|hcenter-in|hcenter|hspace|huge|italic|justify|larger?|line|lower|magnify|medium|normal-size-(sub|super)|normal-text|normalsize|number|on-the-fly|override|pad-(around|markup|to-box|x)|page-ref|postscript|put-adjacent|raise|roman|rotate|sans|small(er)?|smallCaps|sub|super|teeny|text|tiny|translate(-scaled)?|transparent|typewriter|underline|upright|vcenter|whiteout|with-(color|dimensions|url)|wordwrap|(markup|column-|justified-|override-|wordwrap-)lines|wordwrap-(string-)?internal)(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\(arrow-head|beam|char|(semi|sesqui|double)?(flat|sharp)|draw-(circle|line)|epsfile|eyeglasses|filled-box|fret-diagram(-terse|-verbose)?|fromproperty|harp-pedal|(justify|wordwrap)-(field|string)|left-brace|lookup|markalphabet|markletter|musicglyph|natural|note-by-number|note|null|path|right-brace|simple|(back)?slashed-digit|stencil|strut|tied-lyric|triangle|verbatim-file)(?![A-Za-z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\(arrow-head|beam|char|(semi|sesqui|double)?(flat|sharp)|draw-(circle|line)|epsfile|eyeglasses|filled-box|fret-diagram(-terse|-verbose)?|fromproperty|harp-pedal|(justify|wordwrap)-(field|string)|left-brace|lookup|markalphabet|markletter|musicglyph|natural|note-by-number|note|null|path|right-brace|simple|(back)?slashed-digit|stencil|strut|tied-lyric|triangle|verbatim-file)(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "scheme" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^\"\\s\\\\#%{}$]+"
-                              , reCompiled = Just (compileRegex True "[^\"\\s\\\\#%{}$]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "markup2"
-          , Context
-              { cName = "markup2"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "markuprules" )
-                      , 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
-              }
-          )
-        , ( "markuprules"
-          , Context
-              { cName = "markuprules"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "markuprules" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\score\\b"
-                              , reCompiled = Just (compileRegex True "\\\\score\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "notemode" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\(arrow-head|beam|char|(semi|sesqui|double)?(flat|sharp)|draw-(circle|line)|epsfile|eyeglasses|filled-box|fret-diagram(-terse|-verbose)?|fromproperty|harp-pedal|(justify|wordwrap)-(field|string)|left-brace|lookup|markalphabet|markletter|musicglyph|natural|note-by-number|note|null|path|right-brace|simple|(back)?slashed-digit|stencil|strut|tied-lyric|triangle|verbatim-file|markup|bold|(rounded-)?box|bracket|caps|(center|general|left|right)-align|circle|((center|dir|left|right)-)?column|combine|concat|dynamic|fill-line|finger|fontCaps|(abs-)?fontsize|fraction|halign|hbracket|hcenter-in|hcenter|hspace|huge|italic|justify|larger?|line|lower|magnify|medium|normal-size-(sub|super)|normal-text|normalsize|number|on-the-fly|override|pad-(around|markup|to-box|x)|page-ref|postscript|put-adjacent|raise|roman|rotate|sans|small(er)?|smallCaps|sub|super|teeny|text|tiny|translate(-scaled)?|transparent|typewriter|underline|upright|vcenter|whiteout|with-(color|dimensions|url)|wordwrap|(markup|column-|justified-|override-|wordwrap-)lines|wordwrap-(string-)?internal)(?![A-Za-z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\(arrow-head|beam|char|(semi|sesqui|double)?(flat|sharp)|draw-(circle|line)|epsfile|eyeglasses|filled-box|fret-diagram(-terse|-verbose)?|fromproperty|harp-pedal|(justify|wordwrap)-(field|string)|left-brace|lookup|markalphabet|markletter|musicglyph|natural|note-by-number|note|null|path|right-brace|simple|(back)?slashed-digit|stencil|strut|tied-lyric|triangle|verbatim-file|markup|bold|(rounded-)?box|bracket|caps|(center|general|left|right)-align|circle|((center|dir|left|right)-)?column|combine|concat|dynamic|fill-line|finger|fontCaps|(abs-)?fontsize|fraction|halign|hbracket|hcenter-in|hcenter|hspace|huge|italic|justify|larger?|line|lower|magnify|medium|normal-size-(sub|super)|normal-text|normalsize|number|on-the-fly|override|pad-(around|markup|to-box|x)|page-ref|postscript|put-adjacent|raise|roman|rotate|sans|small(er)?|smallCaps|sub|super|teeny|text|tiny|translate(-scaled)?|transparent|typewriter|underline|upright|vcenter|whiteout|with-(color|dimensions|url)|wordwrap|(markup|column-|justified-|override-|wordwrap-)lines|wordwrap-(string-)?internal)(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(bigger|h?center)(?![A-Za-z])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\(bigger|h?center)(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[A-Za-z]+(-[A-Za-z]+)*"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\[A-Za-z]+(-[A-Za-z]+)*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "basic" )
-                      , 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
-              }
-          )
-        , ( "music"
-          , Context
-              { cName = "music"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = AnyChar "()~"
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "[]"
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "-_^"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "connect" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "musiccommand" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "default" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "chord" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-z]+\\d+\\.*[,']+"
-                              , reCompiled = Just (compileRegex True "[a-z]+\\d+\\.*[,']+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b[srR](?![A-Za-z])|\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z])))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(\\b[srR](?![A-Za-z])|\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z])))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "pitch" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ":\\d*"
-                              , reCompiled = Just (compileRegex True ":\\d*")
-                              , 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
-              }
-          )
-        , ( "musiccommand"
-          , Context
-              { cName = "musiccommand"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\(p{1,5}|mp|mf|f{1,5}|s?fp|sff?|spp?|[sr]?fz|cresc|decresc|dim)(?![A-Za-z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\(p{1,5}|mp|mf|f{1,5}|s?fp|sff?|spp?|[sr]?fz|cresc|decresc|dim)(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\(\\d+|accent|marcato|staccat(issim)?o|espressivo|tenuto|portato|(up|down)(bow|mordent|prall)|flageolet|thumb|[lr](heel|toe)|open|stopped|turn|reverseturn|trill|mordent|prall(prall|mordent|down|up)?|lineprall|signumcongruentiae|(short|long|verylong)?fermata|segno|(var)?coda|snappizzicato|halfopen)(?![A-Za-z])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\(\\d+|accent|marcato|staccat(issim)?o|espressivo|tenuto|portato|(up|down)(bow|mordent|prall)|flageolet|thumb|[lr](heel|toe)|open|stopped|turn|reverseturn|trill|mordent|prall(prall|mordent|down|up)?|lineprall|signumcongruentiae|(short|long|verylong)?fermata|segno|(var)?coda|snappizzicato|halfopen)(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[()]"
-                              , reCompiled = Just (compileRegex True "\\\\[()]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[][]"
-                              , reCompiled = Just (compileRegex True "\\\\[][]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "command" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "notemode"
-          , Context
-              { cName = "notemode"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "notemode2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "notemode2"
-          , Context
-              { cName = "notemode2"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "noterules" )
-                      , 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
-              }
-          )
-        , ( "noterules"
-          , Context
-              { cName = "noterules"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "noterules" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "music" )
-                      , 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
-              }
-          )
-        , ( "override"
-          , Context
-              { cName = "override"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&'()*+,-./0123456789:;<=>?[\\]^_{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ChoirStaff"
-                               , "ChordNames"
-                               , "CueVoice"
-                               , "Devnull"
-                               , "DrumStaff"
-                               , "DrumVoice"
-                               , "Dynamics"
-                               , "FiguredBass"
-                               , "FretBoards"
-                               , "Global"
-                               , "GrandStaff"
-                               , "GregorianTranscriptionStaff"
-                               , "GregorianTranscriptionVoice"
-                               , "Lyrics"
-                               , "MensuralStaff"
-                               , "MensuralVoice"
-                               , "NoteNames"
-                               , "PianoStaff"
-                               , "RhythmicStaff"
-                               , "Score"
-                               , "Staff"
-                               , "StaffGroup"
-                               , "TabStaff"
-                               , "TabVoice"
-                               , "Timing"
-                               , "VaticanaStaff"
-                               , "VaticanaVoice"
-                               , "Voice"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&'()*+,-./0123456789:;<=>?[\\]^_{|}~"
-                              }
-                            (makeWordSet True [ "InnerChoirStaff" , "InnerStaffGroup" ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '.'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&'()*+,-./0123456789:;<=>?[\\]^_{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Accidental"
-                               , "AccidentalCautionary"
-                               , "AccidentalPlacement"
-                               , "AccidentalSuggestion"
-                               , "Ambitus"
-                               , "AmbitusAccidental"
-                               , "AmbitusLine"
-                               , "AmbitusNoteHead"
-                               , "Arpeggio"
-                               , "BalloonTextItem"
-                               , "BarLine"
-                               , "BarNumber"
-                               , "BassFigure"
-                               , "BassFigureAlignment"
-                               , "BassFigureAlignmentPositioning"
-                               , "BassFigureBracket"
-                               , "BassFigureContinuation"
-                               , "BassFigureLine"
-                               , "Beam"
-                               , "BendAfter"
-                               , "BreakAlignGroup"
-                               , "BreakAlignment"
-                               , "BreathingSign"
-                               , "ChordName"
-                               , "Clef"
-                               , "ClusterSpanner"
-                               , "ClusterSpannerBeacon"
-                               , "CombineTextScript"
-                               , "Custos"
-                               , "DotColumn"
-                               , "Dots"
-                               , "DoublePercentRepeat"
-                               , "DoublePercentRepeatCounter"
-                               , "DynamicLineSpanner"
-                               , "DynamicText"
-                               , "DynamicTextSpanner"
-                               , "Episema"
-                               , "Fingering"
-                               , "FretBoard"
-                               , "Glissando"
-                               , "GraceSpacing"
-                               , "GridLine"
-                               , "GridPoint"
-                               , "Hairpin"
-                               , "HarmonicParenthesesItem"
-                               , "HorizontalBracket"
-                               , "InstrumentName"
-                               , "InstrumentSwitch"
-                               , "KeyCancellation"
-                               , "KeySignature"
-                               , "LaissezVibrerTie"
-                               , "LaissezVibrerTieColumn"
-                               , "LedgerLineSpanner"
-                               , "LeftEdge"
-                               , "LigatureBracket"
-                               , "LyricExtender"
-                               , "LyricHyphen"
-                               , "LyricSpace"
-                               , "LyricText"
-                               , "MeasureGrouping"
-                               , "MelodyItem"
-                               , "MensuralLigature"
-                               , "MetronomeMark"
-                               , "MultiMeasureRest"
-                               , "MultiMeasureRestNumber"
-                               , "MultiMeasureRestText"
-                               , "NonMusicalPaperColumn"
-                               , "NoteCollision"
-                               , "NoteColumn"
-                               , "NoteHead"
-                               , "NoteName"
-                               , "NoteSpacing"
-                               , "OctavateEight"
-                               , "OttavaBracket"
-                               , "PaperColumn"
-                               , "ParenthesesItem"
-                               , "PercentRepeat"
-                               , "PercentRepeatCounter"
-                               , "PhrasingSlur"
-                               , "PianoPedalBracket"
-                               , "RehearsalMark"
-                               , "RepeatSlash"
-                               , "RepeatTie"
-                               , "RepeatTieColumn"
-                               , "Rest"
-                               , "RestCollision"
-                               , "Script"
-                               , "ScriptColumn"
-                               , "ScriptRow"
-                               , "SeparationItem"
-                               , "Slur"
-                               , "SostenutoPedal"
-                               , "SostenutoPedalLineSpanner"
-                               , "SpacingSpanner"
-                               , "SpanBar"
-                               , "StaffGrouper"
-                               , "StaffSpacing"
-                               , "StaffSymbol"
-                               , "StanzaNumber"
-                               , "Stem"
-                               , "StemTremolo"
-                               , "StringNumber"
-                               , "StrokeFinger"
-                               , "SustainPedal"
-                               , "SustainPedalLineSpanner"
-                               , "System"
-                               , "SystemStartBar"
-                               , "SystemStartBrace"
-                               , "SystemStartBracket"
-                               , "SystemStartSquare"
-                               , "TabNoteHead"
-                               , "TextScript"
-                               , "TextSpanner"
-                               , "Tie"
-                               , "TieColumn"
-                               , "TimeSignature"
-                               , "TrillPitchAccidental"
-                               , "TrillPitchGroup"
-                               , "TrillPitchHead"
-                               , "TrillSpanner"
-                               , "TupletBracket"
-                               , "TupletNumber"
-                               , "UnaCordaPedal"
-                               , "UnaCordaPedalLineSpanner"
-                               , "VaticanaLigature"
-                               , "VerticalAlignment"
-                               , "VerticalAxisGroup"
-                               , "VoiceFollower"
-                               , "VoltaBracket"
-                               , "VoltaBracketSpanner"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Za-z]+(?=\\s*\\.)"
-                              , reCompiled = Just (compileRegex True "[A-Za-z]+(?=\\s*\\.)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Za-z]+"
-                              , reCompiled = Just (compileRegex True "[A-Za-z]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "pitch"
-          , Context
-              { cName = "pitch"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "=\\s*('+|,+)?"
-                              , reCompiled = Just (compileRegex True "=\\s*('+|,+)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "!?"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "duration" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "scheme"
-          , Context
-              { cName = "scheme"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = FloatTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Push ( "LilyPond" , "scheme2" ) ]
-              , cDynamic = False
-              }
-          )
-        , ( "scheme2"
-          , Context
-              { cName = "scheme2"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "scheme3" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "schemerules" )
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = FloatTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "scheme3"
-          , Context
-              { cName = "scheme3"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "schemerules" )
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = FloatTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "schemecommentblock"
-          , Context
-              { cName = "schemecommentblock"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ 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 = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "schemecommentline"
-          , Context
-              { cName = "schemecommentline"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "schemelily"
-          , Context
-              { cName = "schemelily"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '#' '}'
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "lilypond" )
-                      , 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
-              }
-          )
-        , ( "schemequote"
-          , Context
-              { cName = "schemequote"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b(define|defined\\?|define\\*(-public)?|define-(\\*|builtin-markup-(list-)?command|class|(extra-)?display-method|fonts?|grob-property|ly-syntax(-loc|-simple)?|macro(-public)?|markup-(list-)command|method|module|music-function|post-event-display-method|public(-macro|-toplevel)?|safe-public|span-event-display-method)|defmacro(\\*(-public)?)?|lambda\\*?|and|or|if|cond|case|let\\*?|letrec|begin|do|delay|set!|else|(quasi)?quote|unquote(-splicing)?|(define|let|letrec)-syntax|syntax-rules)(?=($|\\s|\\)))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\b(define|defined\\?|define\\*(-public)?|define-(\\*|builtin-markup-(list-)?command|class|(extra-)?display-method|fonts?|grob-property|ly-syntax(-loc|-simple)?|macro(-public)?|markup-(list-)command|method|module|music-function|post-event-display-method|public(-macro|-toplevel)?|safe-public|span-event-display-method)|defmacro(\\*(-public)?)?|lambda\\*?|and|or|if|cond|case|let\\*?|letrec|begin|do|delay|set!|else|(quasi)?quote|unquote(-splicing)?|(define|let|letrec)-syntax|syntax-rules)(?=($|\\s|\\)))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b(not|boolean\\?|eq\\?|eqv\\?|equal\\?|pair\\?|cons|set-c[ad]r!|c[ad]{1,4}r|null\\?|list\\?|list|length|append|reverse|list-ref|mem[qv]|member|ass[qv]|assoc|symbol\\?|symbol->string|string->symbol|number\\?|complex\\?|real\\?|rational\\?|integer\\?|exact\\?|inexact\\?|zero\\?|positive\\?|negative\\?|odd\\?|even\\?|max|min|abs|quotient|remainder|modulo|gcd|lcm|numerator|denominator|floor|ceiling|truncate|round|rationalize|exp|log|sin|cos|tan|asin|acos|atan|sqrt|expt|make-rectangular|make-polar|real-part|imag-part|magnitude|angle|exact->inexact|inexact->exact|number->string|string->number)(?=($|\\s|\\)))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\b(not|boolean\\?|eq\\?|eqv\\?|equal\\?|pair\\?|cons|set-c[ad]r!|c[ad]{1,4}r|null\\?|list\\?|list|length|append|reverse|list-ref|mem[qv]|member|ass[qv]|assoc|symbol\\?|symbol->string|string->symbol|number\\?|complex\\?|real\\?|rational\\?|integer\\?|exact\\?|inexact\\?|zero\\?|positive\\?|negative\\?|odd\\?|even\\?|max|min|abs|quotient|remainder|modulo|gcd|lcm|numerator|denominator|floor|ceiling|truncate|round|rationalize|exp|log|sin|cos|tan|asin|acos|atan|sqrt|expt|make-rectangular|make-polar|real-part|imag-part|magnitude|angle|exact->inexact|inexact->exact|number->string|string->number)(?=($|\\s|\\)))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b(char((-ci)?(=\\?|<\\?|>\\?|<=\\?|>=\\?)|-alphabetic\\?|\\?|-numeric\\?|-whitespace\\?|-upper-case\\?|-lower-case\\?|->integer|-upcase|-downcase|-ready\\?)|integer->char|make-string|string(\\?|-copy|-fill!|-length|-ref|-set!|(-ci)?(=\\?|<\\?|>\\?|<=\\?|>=\\?)|-append)|substring|make-vector|vector(\\?|-length|-ref|-set!|-fill!)?|procedure\\?|apply|map|for-each|force|call-with-(current-continuation|(in|out)put-file)|(in|out)put-port\\?|current-(in|out)put-port|open-(in|out)put-file|close-(in|out)put-port|eof-object\\?|read|(read|peek)-char|write(-char)?|display|newline|call/cc|list-tail|string->list|list->string|vector->list|list->vector|with-input-from-file|with-output-to-file|load|transcript-(on|off)|eval|dynamic-wind|port\\?|values|call-with-values|(scheme-report-|null-|interaction-)environment)(?=($|\\s|\\)))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\b(char((-ci)?(=\\?|<\\?|>\\?|<=\\?|>=\\?)|-alphabetic\\?|\\?|-numeric\\?|-whitespace\\?|-upper-case\\?|-lower-case\\?|->integer|-upcase|-downcase|-ready\\?)|integer->char|make-string|string(\\?|-copy|-fill!|-length|-ref|-set!|(-ci)?(=\\?|<\\?|>\\?|<=\\?|>=\\?)|-append)|substring|make-vector|vector(\\?|-length|-ref|-set!|-fill!)?|procedure\\?|apply|map|for-each|force|call-with-(current-continuation|(in|out)put-file)|(in|out)put-port\\?|current-(in|out)put-port|open-(in|out)put-file|close-(in|out)put-port|eof-object\\?|read|(read|peek)-char|write(-char)?|display|newline|call/cc|list-tail|string->list|list->string|vector->list|list->vector|with-input-from-file|with-output-to-file|load|transcript-(on|off)|eval|dynamic-wind|port\\?|values|call-with-values|(scheme-report-|null-|interaction-)environment)(?=($|\\s|\\)))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = FloatTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "schemerules"
-          , Context
-              { cName = "schemerules"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "schemerules" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "schemestring" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ';'
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "schemecommentline" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "schemesub" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "schemequote" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '!'
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "schemecommentblock" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '{'
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "schemelily" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&'()*+,-./0123456789:;<=>?[\\]^_{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "AbsoluteDynamicEvent"
-                               , "AnnotateOutputEvent"
-                               , "ApplyContext"
-                               , "ApplyOutputEvent"
-                               , "ArpeggioEvent"
-                               , "ArticulationEvent"
-                               , "AutoChangeMusic"
-                               , "BarCheck"
-                               , "BassFigureEvent"
-                               , "BeamEvent"
-                               , "BeamForbidEvent"
-                               , "BendAfterEvent"
-                               , "BreathingEvent"
-                               , "ClusterNoteEvent"
-                               , "ContextChange"
-                               , "ContextSpeccedMusic"
-                               , "CrescendoEvent"
-                               , "DecrescendoEvent"
-                               , "Event"
-                               , "EventChord"
-                               , "ExtenderEvent"
-                               , "FingeringEvent"
-                               , "GlissandoEvent"
-                               , "GraceMusic"
-                               , "HarmonicEvent"
-                               , "HyphenEvent"
-                               , "KeyChangeEvent"
-                               , "LabelEvent"
-                               , "LaissezVibrerEvent"
-                               , "LigatureEvent"
-                               , "LineBreakEvent"
-                               , "LyricCombineMusic"
-                               , "LyricEvent"
-                               , "MarkEvent"
-                               , "MultiMeasureRestEvent"
-                               , "MultiMeasureRestMusic"
-                               , "MultiMeasureTextEvent"
-                               , "Music"
-                               , "NoteEvent"
-                               , "NoteGroupingEvent"
-                               , "OverrideProperty"
-                               , "PageBreakEvent"
-                               , "PageTurnEvent"
-                               , "PartCombineMusic"
-                               , "PercentEvent"
-                               , "PercentRepeatedMusic"
-                               , "PesOrFlexaEvent"
-                               , "PhrasingSlurEvent"
-                               , "PropertySet"
-                               , "PropertyUnset"
-                               , "QuoteMusic"
-                               , "RelativeOctaveCheck"
-                               , "RelativeOctaveMusic"
-                               , "RepeatTieEvent"
-                               , "RepeatedMusic"
-                               , "RestEvent"
-                               , "RevertProperty"
-                               , "ScriptEvent"
-                               , "SequentialMusic"
-                               , "SimultaneousMusic"
-                               , "SkipEvent"
-                               , "SkipMusic"
-                               , "SlurEvent"
-                               , "SoloOneEvent"
-                               , "SoloTwoEvent"
-                               , "SostenutoEvent"
-                               , "SpacingSectionEvent"
-                               , "SpanEvent"
-                               , "StaffSpanEvent"
-                               , "StringNumberEvent"
-                               , "StrokeFingerEvent"
-                               , "SustainEvent"
-                               , "TextScriptEvent"
-                               , "TextSpanEvent"
-                               , "TieEvent"
-                               , "TimeScaledMusic"
-                               , "TransposedMusic"
-                               , "TremoloEvent"
-                               , "TremoloRepeatedMusic"
-                               , "TremoloSpanEvent"
-                               , "TrillSpanEvent"
-                               , "TupletSpanEvent"
-                               , "UnaCordaEvent"
-                               , "UnfoldedRepeatedMusic"
-                               , "UnisonoEvent"
-                               , "UnrelativableMusic"
-                               , "VoiceSeparator"
-                               , "VoltaRepeatedMusic"
-                               ])
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&'()*+,-./0123456789:;<=>?[\\]^_{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ChoirStaff"
-                               , "ChordNames"
-                               , "CueVoice"
-                               , "Devnull"
-                               , "DrumStaff"
-                               , "DrumVoice"
-                               , "Dynamics"
-                               , "FiguredBass"
-                               , "FretBoards"
-                               , "Global"
-                               , "GrandStaff"
-                               , "GregorianTranscriptionStaff"
-                               , "GregorianTranscriptionVoice"
-                               , "Lyrics"
-                               , "MensuralStaff"
-                               , "MensuralVoice"
-                               , "NoteNames"
-                               , "PianoStaff"
-                               , "RhythmicStaff"
-                               , "Score"
-                               , "Staff"
-                               , "StaffGroup"
-                               , "TabStaff"
-                               , "TabVoice"
-                               , "Timing"
-                               , "VaticanaStaff"
-                               , "VaticanaVoice"
-                               , "Voice"
-                               ])
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&'()*+,-./0123456789:;<=>?[\\]^_{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Accidental"
-                               , "AccidentalCautionary"
-                               , "AccidentalPlacement"
-                               , "AccidentalSuggestion"
-                               , "Ambitus"
-                               , "AmbitusAccidental"
-                               , "AmbitusLine"
-                               , "AmbitusNoteHead"
-                               , "Arpeggio"
-                               , "BalloonTextItem"
-                               , "BarLine"
-                               , "BarNumber"
-                               , "BassFigure"
-                               , "BassFigureAlignment"
-                               , "BassFigureAlignmentPositioning"
-                               , "BassFigureBracket"
-                               , "BassFigureContinuation"
-                               , "BassFigureLine"
-                               , "Beam"
-                               , "BendAfter"
-                               , "BreakAlignGroup"
-                               , "BreakAlignment"
-                               , "BreathingSign"
-                               , "ChordName"
-                               , "Clef"
-                               , "ClusterSpanner"
-                               , "ClusterSpannerBeacon"
-                               , "CombineTextScript"
-                               , "Custos"
-                               , "DotColumn"
-                               , "Dots"
-                               , "DoublePercentRepeat"
-                               , "DoublePercentRepeatCounter"
-                               , "DynamicLineSpanner"
-                               , "DynamicText"
-                               , "DynamicTextSpanner"
-                               , "Episema"
-                               , "Fingering"
-                               , "FretBoard"
-                               , "Glissando"
-                               , "GraceSpacing"
-                               , "GridLine"
-                               , "GridPoint"
-                               , "Hairpin"
-                               , "HarmonicParenthesesItem"
-                               , "HorizontalBracket"
-                               , "InstrumentName"
-                               , "InstrumentSwitch"
-                               , "KeyCancellation"
-                               , "KeySignature"
-                               , "LaissezVibrerTie"
-                               , "LaissezVibrerTieColumn"
-                               , "LedgerLineSpanner"
-                               , "LeftEdge"
-                               , "LigatureBracket"
-                               , "LyricExtender"
-                               , "LyricHyphen"
-                               , "LyricSpace"
-                               , "LyricText"
-                               , "MeasureGrouping"
-                               , "MelodyItem"
-                               , "MensuralLigature"
-                               , "MetronomeMark"
-                               , "MultiMeasureRest"
-                               , "MultiMeasureRestNumber"
-                               , "MultiMeasureRestText"
-                               , "NonMusicalPaperColumn"
-                               , "NoteCollision"
-                               , "NoteColumn"
-                               , "NoteHead"
-                               , "NoteName"
-                               , "NoteSpacing"
-                               , "OctavateEight"
-                               , "OttavaBracket"
-                               , "PaperColumn"
-                               , "ParenthesesItem"
-                               , "PercentRepeat"
-                               , "PercentRepeatCounter"
-                               , "PhrasingSlur"
-                               , "PianoPedalBracket"
-                               , "RehearsalMark"
-                               , "RepeatSlash"
-                               , "RepeatTie"
-                               , "RepeatTieColumn"
-                               , "Rest"
-                               , "RestCollision"
-                               , "Script"
-                               , "ScriptColumn"
-                               , "ScriptRow"
-                               , "SeparationItem"
-                               , "Slur"
-                               , "SostenutoPedal"
-                               , "SostenutoPedalLineSpanner"
-                               , "SpacingSpanner"
-                               , "SpanBar"
-                               , "StaffGrouper"
-                               , "StaffSpacing"
-                               , "StaffSymbol"
-                               , "StanzaNumber"
-                               , "Stem"
-                               , "StemTremolo"
-                               , "StringNumber"
-                               , "StrokeFinger"
-                               , "SustainPedal"
-                               , "SustainPedalLineSpanner"
-                               , "System"
-                               , "SystemStartBar"
-                               , "SystemStartBrace"
-                               , "SystemStartBracket"
-                               , "SystemStartSquare"
-                               , "TabNoteHead"
-                               , "TextScript"
-                               , "TextSpanner"
-                               , "Tie"
-                               , "TieColumn"
-                               , "TimeSignature"
-                               , "TrillPitchAccidental"
-                               , "TrillPitchGroup"
-                               , "TrillPitchHead"
-                               , "TrillSpanner"
-                               , "TupletBracket"
-                               , "TupletNumber"
-                               , "UnaCordaPedal"
-                               , "UnaCordaPedalLineSpanner"
-                               , "VaticanaLigature"
-                               , "VerticalAlignment"
-                               , "VerticalAxisGroup"
-                               , "VoiceFollower"
-                               , "VoltaBracket"
-                               , "VoltaBracketSpanner"
-                               ])
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[-+]?(\\d+(\\.\\d+)?|\\.\\d+)"
-                              , reCompiled =
-                                  Just (compileRegex True "[-+]?(\\d+(\\.\\d+)?|\\.\\d+)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "#(t|f|b[-+]?[01.]+|o[-+]?[0-7.]+|d[-+]?[0-9.]+|x[-+]?[0-9a-f.]+)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "#(t|f|b[-+]?[01.]+|o[-+]?[0-7.]+|d[-+]?[0-9.]+|x[-+]?[0-9a-f.]+)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[+-](inf|nan)\\.0"
-                              , reCompiled = Just (compileRegex True "[+-](inf|nan)\\.0")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b(define|defined\\?|define\\*(-public)?|define-(\\*|builtin-markup-(list-)?command|class|(extra-)?display-method|fonts?|grob-property|ly-syntax(-loc|-simple)?|macro(-public)?|markup-(list-)command|method|module|music-function|post-event-display-method|public(-macro|-toplevel)?|safe-public|span-event-display-method)|defmacro(\\*(-public)?)?|lambda\\*?|and|or|if|cond|case|let\\*?|letrec|begin|do|delay|set!|else|(quasi)?quote|unquote(-splicing)?|(define|let|letrec)-syntax|syntax-rules)(?=($|\\s|\\)))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\b(define|defined\\?|define\\*(-public)?|define-(\\*|builtin-markup-(list-)?command|class|(extra-)?display-method|fonts?|grob-property|ly-syntax(-loc|-simple)?|macro(-public)?|markup-(list-)command|method|module|music-function|post-event-display-method|public(-macro|-toplevel)?|safe-public|span-event-display-method)|defmacro(\\*(-public)?)?|lambda\\*?|and|or|if|cond|case|let\\*?|letrec|begin|do|delay|set!|else|(quasi)?quote|unquote(-splicing)?|(define|let|letrec)-syntax|syntax-rules)(?=($|\\s|\\)))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b(not|boolean\\?|eq\\?|eqv\\?|equal\\?|pair\\?|cons|set-c[ad]r!|c[ad]{1,4}r|null\\?|list\\?|list|length|append|reverse|list-ref|mem[qv]|member|ass[qv]|assoc|symbol\\?|symbol->string|string->symbol|number\\?|complex\\?|real\\?|rational\\?|integer\\?|exact\\?|inexact\\?|zero\\?|positive\\?|negative\\?|odd\\?|even\\?|max|min|abs|quotient|remainder|modulo|gcd|lcm|numerator|denominator|floor|ceiling|truncate|round|rationalize|exp|log|sin|cos|tan|asin|acos|atan|sqrt|expt|make-rectangular|make-polar|real-part|imag-part|magnitude|angle|exact->inexact|inexact->exact|number->string|string->number)(?=($|\\s|\\)))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\b(not|boolean\\?|eq\\?|eqv\\?|equal\\?|pair\\?|cons|set-c[ad]r!|c[ad]{1,4}r|null\\?|list\\?|list|length|append|reverse|list-ref|mem[qv]|member|ass[qv]|assoc|symbol\\?|symbol->string|string->symbol|number\\?|complex\\?|real\\?|rational\\?|integer\\?|exact\\?|inexact\\?|zero\\?|positive\\?|negative\\?|odd\\?|even\\?|max|min|abs|quotient|remainder|modulo|gcd|lcm|numerator|denominator|floor|ceiling|truncate|round|rationalize|exp|log|sin|cos|tan|asin|acos|atan|sqrt|expt|make-rectangular|make-polar|real-part|imag-part|magnitude|angle|exact->inexact|inexact->exact|number->string|string->number)(?=($|\\s|\\)))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b(char((-ci)?(=\\?|<\\?|>\\?|<=\\?|>=\\?)|-alphabetic\\?|\\?|-numeric\\?|-whitespace\\?|-upper-case\\?|-lower-case\\?|->integer|-upcase|-downcase|-ready\\?)|integer->char|make-string|string(\\?|-copy|-fill!|-length|-ref|-set!|(-ci)?(=\\?|<\\?|>\\?|<=\\?|>=\\?)|-append)|substring|make-vector|vector(\\?|-length|-ref|-set!|-fill!)?|procedure\\?|apply|map|for-each|force|call-with-(current-continuation|(in|out)put-file)|(in|out)put-port\\?|current-(in|out)put-port|open-(in|out)put-file|close-(in|out)put-port|eof-object\\?|read|(read|peek)-char|write(-char)?|display|newline|call/cc|list-tail|string->list|list->string|vector->list|list->vector|with-input-from-file|with-output-to-file|load|transcript-(on|off)|eval|dynamic-wind|port\\?|values|call-with-values|(scheme-report-|null-|interaction-)environment)(?=($|\\s|\\)))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\b(char((-ci)?(=\\?|<\\?|>\\?|<=\\?|>=\\?)|-alphabetic\\?|\\?|-numeric\\?|-whitespace\\?|-upper-case\\?|-lower-case\\?|->integer|-upcase|-downcase|-ready\\?)|integer->char|make-string|string(\\?|-copy|-fill!|-length|-ref|-set!|(-ci)?(=\\?|<\\?|>\\?|<=\\?|>=\\?)|-append)|substring|make-vector|vector(\\?|-length|-ref|-set!|-fill!)?|procedure\\?|apply|map|for-each|force|call-with-(current-continuation|(in|out)put-file)|(in|out)put-port\\?|current-(in|out)put-port|open-(in|out)put-file|close-(in|out)put-port|eof-object\\?|read|(read|peek)-char|write(-char)?|display|newline|call/cc|list-tail|string->list|list->string|vector->list|list->vector|with-input-from-file|with-output-to-file|load|transcript-(on|off)|eval|dynamic-wind|port\\?|values|call-with-values|(scheme-report-|null-|interaction-)environment)(?=($|\\s|\\)))")
-                              , 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-Z#][^\\s(){}[\\];$\"]*"
-                              , reCompiled =
-                                  Just (compileRegex True "[a-zA-Z#][^\\s(){}[\\];$\"]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = FloatTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "schemestring"
-          , Context
-              { cName = "schemestring"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[0fnrtav\\\\\"]"
-                              , reCompiled = Just (compileRegex True "\\\\[0fnrtav\\\\\"]")
-                              , reCaseSensitive = True
-                              }
-                      , 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
-              }
-          )
-        , ( "schemesub"
-          , Context
-              { cName = "schemesub"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z#][^\\s(){}[\\];$\"]*"
-                              , reCompiled =
-                                  Just (compileRegex True "[a-zA-Z#][^\\s(){}[\\];$\"]*")
-                              , reCaseSensitive = True
-                              }
-                      , 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
-              }
-          )
-        , ( "section"
-          , Context
-              { cName = "section"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "section2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "section2"
-          , Context
-              { cName = "section2"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "sectionrules" )
-                      , 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
-              }
-          )
-        , ( "sectionrules"
-          , Context
-              { cName = "sectionrules"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "sectionrules" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&'()*+,-./0123456789:;<=>?[\\]^_{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ChoirStaff"
-                               , "ChordNames"
-                               , "CueVoice"
-                               , "Devnull"
-                               , "DrumStaff"
-                               , "DrumVoice"
-                               , "Dynamics"
-                               , "FiguredBass"
-                               , "FretBoards"
-                               , "Global"
-                               , "GrandStaff"
-                               , "GregorianTranscriptionStaff"
-                               , "GregorianTranscriptionVoice"
-                               , "Lyrics"
-                               , "MensuralStaff"
-                               , "MensuralVoice"
-                               , "NoteNames"
-                               , "PianoStaff"
-                               , "RhythmicStaff"
-                               , "Score"
-                               , "Staff"
-                               , "StaffGroup"
-                               , "TabStaff"
-                               , "TabVoice"
-                               , "Timing"
-                               , "VaticanaStaff"
-                               , "VaticanaVoice"
-                               , "Voice"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&'()*+,-./0123456789:;<=>?[\\]^_{|}~"
-                              }
-                            (makeWordSet True [ "InnerChoirStaff" , "InnerStaffGroup" ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\"?)\\b((Accidental|Ambitus|Arpeggio|Auto_beam|Axis_group|Balloon|Bar|Bar_number|Beam|Bend|Break_align|Breathing_sign|Chord_name|Chord_tremolo|Clef|Cluster_spanner|Collision|Completion_heads|Custos|Default_bar_line|Dot_column|Dots|Drum_notes|Dynami_align|Dynamic|Episema|Extender|Figured_bass|Figured_bass_position|Fingering|Font_size|Forbid_line_break|Fretboard|Glissando|Grace_beam|Grace|Grace_spacing|Grid_line_span|Grid_point|Grob_pq|Hara_kiri|Horizontal_bracket)_engraver)\\b\\1"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(\"?)\\b((Accidental|Ambitus|Arpeggio|Auto_beam|Axis_group|Balloon|Bar|Bar_number|Beam|Bend|Break_align|Breathing_sign|Chord_name|Chord_tremolo|Clef|Cluster_spanner|Collision|Completion_heads|Custos|Default_bar_line|Dot_column|Dots|Drum_notes|Dynami_align|Dynamic|Episema|Extender|Figured_bass|Figured_bass_position|Fingering|Font_size|Forbid_line_break|Fretboard|Glissando|Grace_beam|Grace|Grace_spacing|Grid_line_span|Grid_point|Grob_pq|Hara_kiri|Horizontal_bracket)_engraver)\\b\\1")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\"?)\\b((Hyphen|Instrument_name|Instrument_switch|Key|Laissez_vibrer|Ledger_line|Ligature_bracket|Lyric|Mark|Measure_grouping|Melody|Mensural_ligature|Metronome_mark|Multi_measure_rest|New_dynamic|New_fingering|Note_head_line|Note_heads|Note_name|Note_spacing|Ottava_spanner|Output_property|Page_turn|Paper_column|Parenthesis|Part_combine|Percent_repeat|Phrasing_slur|Piano_pedal_align|Piano_pedal|Pitch_squash|Pitched_trill|Repeat_acknowledge|Repeat_tie|Rest_collision|Rest|Rhythmic_column|Scheme|Script_column|Script|Script_row)_engraver)\\b\\1"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(\"?)\\b((Hyphen|Instrument_name|Instrument_switch|Key|Laissez_vibrer|Ledger_line|Ligature_bracket|Lyric|Mark|Measure_grouping|Melody|Mensural_ligature|Metronome_mark|Multi_measure_rest|New_dynamic|New_fingering|Note_head_line|Note_heads|Note_name|Note_spacing|Ottava_spanner|Output_property|Page_turn|Paper_column|Parenthesis|Part_combine|Percent_repeat|Phrasing_slur|Piano_pedal_align|Piano_pedal|Pitch_squash|Pitched_trill|Repeat_acknowledge|Repeat_tie|Rest_collision|Rest|Rhythmic_column|Scheme|Script_column|Script|Script_row)_engraver)\\b\\1")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\"?)\\b((Separating_line_group|Slash_repeat|Slur|Spacing|Span_arpeggio|Span_bar|Spanner_break_forbid|Staff_collecting|Staff_symbol|Stanza_number_align|Stanza_number|Stem|String_number|Swallow|System_start_delimiter|Tab_harmonic|Tab_note_heads|Tab_staff_symbol|Text|Text_spanner|Tie|Time_signature|Trill_spanner|Tuplet|Tweak|Vaticana_ligature|Vertical_align|Vertically_spaced_contexts|Volta)_engraver)\\b\\1"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(\"?)\\b((Separating_line_group|Slash_repeat|Slur|Spacing|Span_arpeggio|Span_bar|Spanner_break_forbid|Staff_collecting|Staff_symbol|Stanza_number_align|Stanza_number|Stem|String_number|Swallow|System_start_delimiter|Tab_harmonic|Tab_note_heads|Tab_staff_symbol|Text|Text_spanner|Tie|Time_signature|Trill_spanner|Tuplet|Tweak|Vaticana_ligature|Vertical_align|Vertically_spaced_contexts|Volta)_engraver)\\b\\1")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\"?)\\b((Beam|Control_track|Drum_note|Dynamic|Key|Lyric|Note|Piano_pedal|Slur|Staff|Swallow|Tempo|Tie|Time_signature)_performer)\\b\\1"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(\"?)\\b((Beam|Control_track|Drum_note|Dynamic|Key|Lyric|Note|Piano_pedal|Slur|Staff|Swallow|Tempo|Tie|Time_signature)_performer)\\b\\1")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\"?)\\b((Note_swallow|Rest_swallow|Skip_event_swallow|Timing)_translator)\\b\\1"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(\"?)\\b((Note_swallow|Rest_swallow|Skip_event_swallow|Timing)_translator)\\b\\1")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&'()*+,-./0123456789:;<=>?[\\]^_{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Accidental"
-                               , "AccidentalCautionary"
-                               , "AccidentalPlacement"
-                               , "AccidentalSuggestion"
-                               , "Ambitus"
-                               , "AmbitusAccidental"
-                               , "AmbitusLine"
-                               , "AmbitusNoteHead"
-                               , "Arpeggio"
-                               , "BalloonTextItem"
-                               , "BarLine"
-                               , "BarNumber"
-                               , "BassFigure"
-                               , "BassFigureAlignment"
-                               , "BassFigureAlignmentPositioning"
-                               , "BassFigureBracket"
-                               , "BassFigureContinuation"
-                               , "BassFigureLine"
-                               , "Beam"
-                               , "BendAfter"
-                               , "BreakAlignGroup"
-                               , "BreakAlignment"
-                               , "BreathingSign"
-                               , "ChordName"
-                               , "Clef"
-                               , "ClusterSpanner"
-                               , "ClusterSpannerBeacon"
-                               , "CombineTextScript"
-                               , "Custos"
-                               , "DotColumn"
-                               , "Dots"
-                               , "DoublePercentRepeat"
-                               , "DoublePercentRepeatCounter"
-                               , "DynamicLineSpanner"
-                               , "DynamicText"
-                               , "DynamicTextSpanner"
-                               , "Episema"
-                               , "Fingering"
-                               , "FretBoard"
-                               , "Glissando"
-                               , "GraceSpacing"
-                               , "GridLine"
-                               , "GridPoint"
-                               , "Hairpin"
-                               , "HarmonicParenthesesItem"
-                               , "HorizontalBracket"
-                               , "InstrumentName"
-                               , "InstrumentSwitch"
-                               , "KeyCancellation"
-                               , "KeySignature"
-                               , "LaissezVibrerTie"
-                               , "LaissezVibrerTieColumn"
-                               , "LedgerLineSpanner"
-                               , "LeftEdge"
-                               , "LigatureBracket"
-                               , "LyricExtender"
-                               , "LyricHyphen"
-                               , "LyricSpace"
-                               , "LyricText"
-                               , "MeasureGrouping"
-                               , "MelodyItem"
-                               , "MensuralLigature"
-                               , "MetronomeMark"
-                               , "MultiMeasureRest"
-                               , "MultiMeasureRestNumber"
-                               , "MultiMeasureRestText"
-                               , "NonMusicalPaperColumn"
-                               , "NoteCollision"
-                               , "NoteColumn"
-                               , "NoteHead"
-                               , "NoteName"
-                               , "NoteSpacing"
-                               , "OctavateEight"
-                               , "OttavaBracket"
-                               , "PaperColumn"
-                               , "ParenthesesItem"
-                               , "PercentRepeat"
-                               , "PercentRepeatCounter"
-                               , "PhrasingSlur"
-                               , "PianoPedalBracket"
-                               , "RehearsalMark"
-                               , "RepeatSlash"
-                               , "RepeatTie"
-                               , "RepeatTieColumn"
-                               , "Rest"
-                               , "RestCollision"
-                               , "Script"
-                               , "ScriptColumn"
-                               , "ScriptRow"
-                               , "SeparationItem"
-                               , "Slur"
-                               , "SostenutoPedal"
-                               , "SostenutoPedalLineSpanner"
-                               , "SpacingSpanner"
-                               , "SpanBar"
-                               , "StaffGrouper"
-                               , "StaffSpacing"
-                               , "StaffSymbol"
-                               , "StanzaNumber"
-                               , "Stem"
-                               , "StemTremolo"
-                               , "StringNumber"
-                               , "StrokeFinger"
-                               , "SustainPedal"
-                               , "SustainPedalLineSpanner"
-                               , "System"
-                               , "SystemStartBar"
-                               , "SystemStartBrace"
-                               , "SystemStartBracket"
-                               , "SystemStartSquare"
-                               , "TabNoteHead"
-                               , "TextScript"
-                               , "TextSpanner"
-                               , "Tie"
-                               , "TieColumn"
-                               , "TimeSignature"
-                               , "TrillPitchAccidental"
-                               , "TrillPitchGroup"
-                               , "TrillPitchHead"
-                               , "TrillSpanner"
-                               , "TupletBracket"
-                               , "TupletNumber"
-                               , "UnaCordaPedal"
-                               , "UnaCordaPedalLineSpanner"
-                               , "VaticanaLigature"
-                               , "VerticalAlignment"
-                               , "VerticalAxisGroup"
-                               , "VoiceFollower"
-                               , "VoltaBracket"
-                               , "VoltaBracketSpanner"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&'()*+,-./0123456789:;<=>?[\\]^_{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "aDueText"
-                               , "alignAboveContext"
-                               , "alignBassFigureAccidentals"
-                               , "alignBelowContext"
-                               , "allowBeamBreak"
-                               , "associatedVoice"
-                               , "autoAccidentals"
-                               , "autoBeamCheck"
-                               , "autoBeamSettings"
-                               , "autoBeaming"
-                               , "autoCautionaries"
-                               , "automaticBars"
-                               , "barAlways"
-                               , "barCheckSynchronize"
-                               , "barNumberVisibility"
-                               , "baseMoment"
-                               , "bassFigureFormatFunction"
-                               , "bassStaffProperties"
-                               , "beamExceptions"
-                               , "beatGrouping"
-                               , "beatLength"
-                               , "beatStructure"
-                               , "chordChanges"
-                               , "chordNameExceptions"
-                               , "chordNameExceptionsFull"
-                               , "chordNameExceptionsPartial"
-                               , "chordNameFunction"
-                               , "chordNameSeparator"
-                               , "chordNoteNamer"
-                               , "chordPrefixSpacer"
-                               , "chordRootNamer"
-                               , "clefGlyph"
-                               , "clefOctavation"
-                               , "clefPosition"
-                               , "connectArpeggios"
-                               , "countPercentRepeats"
-                               , "createKeyOnClefChange"
-                               , "createSpacing"
-                               , "crescendoSpanner"
-                               , "crescendoText"
-                               , "currentBarNumber"
-                               , "decrescendoSpanner"
-                               , "decrescendoText"
-                               , "defaultBarType"
-                               , "doubleRepeatType"
-                               , "doubleSlurs"
-                               , "drumPitchTable"
-                               , "drumStyleTable"
-                               , "dynamicAbsoluteVolumeFunction"
-                               , "explicitClefVisibility"
-                               , "explicitKeySignatureVisibility"
-                               , "extendersOverRests"
-                               , "extraNatural"
-                               , "figuredBassAlterationDirection"
-                               , "figuredBassCenterContinuations"
-                               , "figuredBassFormatter"
-                               , "figuredBassPlusDirection"
-                               , "fingeringOrientations"
-                               , "firstClef"
-                               , "followVoice"
-                               , "fontSize"
-                               , "forbidBreak"
-                               , "forceClef"
-                               , "gridInterval"
-                               , "hairpinToBarline"
-                               , "harmonicAccidentals"
-                               , "highStringOne"
-                               , "ignoreBarChecks"
-                               , "ignoreFiguredBassRest"
-                               , "ignoreMelismata"
-                               , "implicitBassFigures"
-                               , "implicitTimeSignatureVisibility"
-                               , "instrumentCueName"
-                               , "instrumentEqualizer"
-                               , "instrumentName"
-                               , "instrumentTransposition"
-                               , "internalBarNumber"
-                               , "keepAliveInterfaces"
-                               , "keyAlterationOrder"
-                               , "keySignature"
-                               , "lyricMelismaAlignment"
-                               , "majorSevenSymbol"
-                               , "markFormatter"
-                               , "maximumFretStretch"
-                               , "measureLength"
-                               , "measurePosition"
-                               , "melismaBusyProperties"
-                               , "metronomeMarkFormatter"
-                               , "middleCClefPosition"
-                               , "middleCOffset"
-                               , "middleCPosition"
-                               , "midiInstrument"
-                               , "midiMaximumVolume"
-                               , "midiMinimumVolume"
-                               , "minimumFret"
-                               , "minimumPageTurnLength"
-                               , "minimumRepeatLengthForPageTurn"
-                               , "noteToFretFunction"
-                               , "ottavation"
-                               , "output"
-                               , "pedalSostenutoStrings"
-                               , "pedalSostenutoStyle"
-                               , "pedalSustainStrings"
-                               , "pedalSustainStyle"
-                               , "pedalUnaCordaStrings"
-                               , "pedalUnaCordaStyle"
-                               , "printKeyCancellation"
-                               , "printOctaveNames"
-                               , "printPartCombineTexts"
-                               , "proportionalNotationDuration"
-                               , "recordEventSequence"
-                               , "rehearsalMark"
-                               , "repeatCommands"
-                               , "restNumberThreshold"
-                               , "scriptDefinitions"
-                               , "shapeNoteStyles"
-                               , "shortInstrumentName"
-                               , "shortVocalName"
-                               , "skipBars"
-                               , "skipTypesetting"
-                               , "soloIIText"
-                               , "soloText"
-                               , "squashedPosition"
-                               , "staffLineLayoutFunction"
-                               , "stanza"
-                               , "stemLeftBeamCount"
-                               , "stemRightBeamCount"
-                               , "stringNumberOrientations"
-                               , "stringOneTopmost"
-                               , "stringTunings"
-                               , "strokeFingerOrientations"
-                               , "subdivideBeams"
-                               , "suggestAccidentals"
-                               , "systemStartDelimiter"
-                               , "systemStartDelimiterHierarchy"
-                               , "tablatureFormat"
-                               , "tempoUnitCount"
-                               , "tempoUnitDuration"
-                               , "tempoWholesPerMinute"
-                               , "tieWaitForNote"
-                               , "timeSignatureFraction"
-                               , "timing"
-                               , "tonic"
-                               , "topLevelAlignment"
-                               , "trebleStaffProperties"
-                               , "tremoloFlags"
-                               , "tupletFullLength"
-                               , "tupletFullLengthNote"
-                               , "tupletSpannerDuration"
-                               , "useBassFigureExtenders"
-                               , "verticallySpacedContexts"
-                               , "vocalName"
-                               , "voltaOnThisStaff"
-                               , "voltaSpannerDuration"
-                               , "whichBar"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b(dedication|(sub){,2}title|poet|composer|meter|opus|arranger|instrument|piece|breakbefore|copyright|tagline|mutopia(title|composer|poet|opus|instrument)|date|enteredby|source|style|maintainer(Email|Web)?|moreInfo|lastupdated|texidoc|footer|(top|bottom|left|right)-margin|(foot|head)-separation|indent|short-indent|paper-(height|width)|horizontal-shift|line-width|(inner|outer)-margin|two-sided|binding-offset|(after|before|between)-title-space|between-system-(space|padding)|page-top-space|page-breaking-between-system-padding|(after|before|between)-title-spacing|between-(scores-)?system-spacing|bottom-system-spacing|top-title-spacing|top-system-spacing|page-breaking-between-system-spacing|system-count|(min-|max-)?systems-per-page|annotate-spacing|auto-first-page-number|blank-(last-)?page-force|first-page-number|page-count|page-limit-inter-system-space|page-limit-inter-system-space-factor|page-spacing-weight|print-all-headers|print-first-page-number|print-page-number|ragged-(bottom|right)|ragged-last(-bottom)?|system-separator-markup|force-assignment|input-encoding|output-scale|((even|odd)(Footer|Header)|(book|score|toc)Title|tocItem)Markup|system-count|(short-)?indent)\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\b(dedication|(sub){,2}title|poet|composer|meter|opus|arranger|instrument|piece|breakbefore|copyright|tagline|mutopia(title|composer|poet|opus|instrument)|date|enteredby|source|style|maintainer(Email|Web)?|moreInfo|lastupdated|texidoc|footer|(top|bottom|left|right)-margin|(foot|head)-separation|indent|short-indent|paper-(height|width)|horizontal-shift|line-width|(inner|outer)-margin|two-sided|binding-offset|(after|before|between)-title-space|between-system-(space|padding)|page-top-space|page-breaking-between-system-padding|(after|before|between)-title-spacing|between-(scores-)?system-spacing|bottom-system-spacing|top-title-spacing|top-system-spacing|page-breaking-between-system-spacing|system-count|(min-|max-)?systems-per-page|annotate-spacing|auto-first-page-number|blank-(last-)?page-force|first-page-number|page-count|page-limit-inter-system-space|page-limit-inter-system-space-factor|page-spacing-weight|print-all-headers|print-first-page-number|print-page-number|ragged-(bottom|right)|ragged-last(-bottom)?|system-separator-markup|force-assignment|input-encoding|output-scale|((even|odd)(Footer|Header)|(book|score|toc)Title|tocItem)Markup|system-count|(short-)?indent)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&'()*+,-./0123456789:;<=>?[\\]^_{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "barNumberAlignSymbol"
-                               , "centralCPosition"
-                               , "extraVerticalExtent"
-                               , "fingerHorizontalDirection"
-                               , "instr"
-                               , "instrument"
-                               , "keyAccidentalOrder"
-                               , "minimumVerticalExtent"
-                               , "rehearsalMarkAlignSymbol"
-                               , "soloADue"
-                               , "tupletNumberFormatFunction"
-                               , "vocNam"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "default" )
-                      , 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
-              }
-          )
-        , ( "set"
-          , Context
-              { cName = "set"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&'()*+,-./0123456789:;<=>?[\\]^_{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ChoirStaff"
-                               , "ChordNames"
-                               , "CueVoice"
-                               , "Devnull"
-                               , "DrumStaff"
-                               , "DrumVoice"
-                               , "Dynamics"
-                               , "FiguredBass"
-                               , "FretBoards"
-                               , "Global"
-                               , "GrandStaff"
-                               , "GregorianTranscriptionStaff"
-                               , "GregorianTranscriptionVoice"
-                               , "Lyrics"
-                               , "MensuralStaff"
-                               , "MensuralVoice"
-                               , "NoteNames"
-                               , "PianoStaff"
-                               , "RhythmicStaff"
-                               , "Score"
-                               , "Staff"
-                               , "StaffGroup"
-                               , "TabStaff"
-                               , "TabVoice"
-                               , "Timing"
-                               , "VaticanaStaff"
-                               , "VaticanaVoice"
-                               , "Voice"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&'()*+,-./0123456789:;<=>?[\\]^_{|}~"
-                              }
-                            (makeWordSet True [ "InnerChoirStaff" , "InnerStaffGroup" ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '.'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&'()*+,-./0123456789:;<=>?[\\]^_{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "aDueText"
-                               , "alignAboveContext"
-                               , "alignBassFigureAccidentals"
-                               , "alignBelowContext"
-                               , "allowBeamBreak"
-                               , "associatedVoice"
-                               , "autoAccidentals"
-                               , "autoBeamCheck"
-                               , "autoBeamSettings"
-                               , "autoBeaming"
-                               , "autoCautionaries"
-                               , "automaticBars"
-                               , "barAlways"
-                               , "barCheckSynchronize"
-                               , "barNumberVisibility"
-                               , "baseMoment"
-                               , "bassFigureFormatFunction"
-                               , "bassStaffProperties"
-                               , "beamExceptions"
-                               , "beatGrouping"
-                               , "beatLength"
-                               , "beatStructure"
-                               , "chordChanges"
-                               , "chordNameExceptions"
-                               , "chordNameExceptionsFull"
-                               , "chordNameExceptionsPartial"
-                               , "chordNameFunction"
-                               , "chordNameSeparator"
-                               , "chordNoteNamer"
-                               , "chordPrefixSpacer"
-                               , "chordRootNamer"
-                               , "clefGlyph"
-                               , "clefOctavation"
-                               , "clefPosition"
-                               , "connectArpeggios"
-                               , "countPercentRepeats"
-                               , "createKeyOnClefChange"
-                               , "createSpacing"
-                               , "crescendoSpanner"
-                               , "crescendoText"
-                               , "currentBarNumber"
-                               , "decrescendoSpanner"
-                               , "decrescendoText"
-                               , "defaultBarType"
-                               , "doubleRepeatType"
-                               , "doubleSlurs"
-                               , "drumPitchTable"
-                               , "drumStyleTable"
-                               , "dynamicAbsoluteVolumeFunction"
-                               , "explicitClefVisibility"
-                               , "explicitKeySignatureVisibility"
-                               , "extendersOverRests"
-                               , "extraNatural"
-                               , "figuredBassAlterationDirection"
-                               , "figuredBassCenterContinuations"
-                               , "figuredBassFormatter"
-                               , "figuredBassPlusDirection"
-                               , "fingeringOrientations"
-                               , "firstClef"
-                               , "followVoice"
-                               , "fontSize"
-                               , "forbidBreak"
-                               , "forceClef"
-                               , "gridInterval"
-                               , "hairpinToBarline"
-                               , "harmonicAccidentals"
-                               , "highStringOne"
-                               , "ignoreBarChecks"
-                               , "ignoreFiguredBassRest"
-                               , "ignoreMelismata"
-                               , "implicitBassFigures"
-                               , "implicitTimeSignatureVisibility"
-                               , "instrumentCueName"
-                               , "instrumentEqualizer"
-                               , "instrumentName"
-                               , "instrumentTransposition"
-                               , "internalBarNumber"
-                               , "keepAliveInterfaces"
-                               , "keyAlterationOrder"
-                               , "keySignature"
-                               , "lyricMelismaAlignment"
-                               , "majorSevenSymbol"
-                               , "markFormatter"
-                               , "maximumFretStretch"
-                               , "measureLength"
-                               , "measurePosition"
-                               , "melismaBusyProperties"
-                               , "metronomeMarkFormatter"
-                               , "middleCClefPosition"
-                               , "middleCOffset"
-                               , "middleCPosition"
-                               , "midiInstrument"
-                               , "midiMaximumVolume"
-                               , "midiMinimumVolume"
-                               , "minimumFret"
-                               , "minimumPageTurnLength"
-                               , "minimumRepeatLengthForPageTurn"
-                               , "noteToFretFunction"
-                               , "ottavation"
-                               , "output"
-                               , "pedalSostenutoStrings"
-                               , "pedalSostenutoStyle"
-                               , "pedalSustainStrings"
-                               , "pedalSustainStyle"
-                               , "pedalUnaCordaStrings"
-                               , "pedalUnaCordaStyle"
-                               , "printKeyCancellation"
-                               , "printOctaveNames"
-                               , "printPartCombineTexts"
-                               , "proportionalNotationDuration"
-                               , "recordEventSequence"
-                               , "rehearsalMark"
-                               , "repeatCommands"
-                               , "restNumberThreshold"
-                               , "scriptDefinitions"
-                               , "shapeNoteStyles"
-                               , "shortInstrumentName"
-                               , "shortVocalName"
-                               , "skipBars"
-                               , "skipTypesetting"
-                               , "soloIIText"
-                               , "soloText"
-                               , "squashedPosition"
-                               , "staffLineLayoutFunction"
-                               , "stanza"
-                               , "stemLeftBeamCount"
-                               , "stemRightBeamCount"
-                               , "stringNumberOrientations"
-                               , "stringOneTopmost"
-                               , "stringTunings"
-                               , "strokeFingerOrientations"
-                               , "subdivideBeams"
-                               , "suggestAccidentals"
-                               , "systemStartDelimiter"
-                               , "systemStartDelimiterHierarchy"
-                               , "tablatureFormat"
-                               , "tempoUnitCount"
-                               , "tempoUnitDuration"
-                               , "tempoWholesPerMinute"
-                               , "tieWaitForNote"
-                               , "timeSignatureFraction"
-                               , "timing"
-                               , "tonic"
-                               , "topLevelAlignment"
-                               , "trebleStaffProperties"
-                               , "tremoloFlags"
-                               , "tupletFullLength"
-                               , "tupletFullLengthNote"
-                               , "tupletSpannerDuration"
-                               , "useBassFigureExtenders"
-                               , "verticallySpacedContexts"
-                               , "vocalName"
-                               , "voltaOnThisStaff"
-                               , "voltaSpannerDuration"
-                               , "whichBar"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&'()*+,-./0123456789:;<=>?[\\]^_{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "barNumberAlignSymbol"
-                               , "centralCPosition"
-                               , "extraVerticalExtent"
-                               , "fingerHorizontalDirection"
-                               , "instr"
-                               , "instrument"
-                               , "keyAccidentalOrder"
-                               , "minimumVerticalExtent"
-                               , "rehearsalMarkAlignSymbol"
-                               , "soloADue"
-                               , "tupletNumberFormatFunction"
-                               , "vocNam"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Za-z]+"
-                              , reCompiled = Just (compileRegex True "[A-Za-z]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "string"
-          , Context
-              { cName = "string"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '"'
-                      , 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
-              }
-          )
-        , ( "tempo"
-          , Context
-              { cName = "tempo"
-              , cSyntax = "LilyPond"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\markup(lines)?(?![A-Za-z])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\markup(lines)?(?![A-Za-z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LilyPond" , "markup" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\d+\\.*\\s*=\\s*\\d+"
-                              , reCompiled = Just (compileRegex True "\\d+\\.*\\s*=\\s*\\d+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LilyPond" , "basic" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Wilbert Berendsen (info@wilbertberendsen.nl)"
-  , sVersion = "4"
-  , sLicense = "LGPL"
-  , sExtensions =
-      [ "*.ly" , "*.LY" , "*.ily" , "*.ILY" , "*.lyi" , "*.LYI" ]
-  , sStartingContext = "lilypond"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"LilyPond\", sFilename = \"lilypond.xml\", sShortname = \"Lilypond\", sContexts = fromList [(\"assignment\",Context {cName = \"assignment\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(dash(Hat|Plus|Dash|Bar|Larger|Dot|Underscore)|fermataMarkup|pipeSymbol|slashSeparator)\\\\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 = \"[a-z]+\", reCaseSensitive = False}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"basic\",Context {cName = \"basic\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = Detect2Chars '%' '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"commentblock\")]},Rule {rMatcher = DetectChar '%', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"commentline\")]},Rule {rMatcher = DetectChar '\"', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"string\")]},Rule {rMatcher = DetectChar '#', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"scheme\")]},Rule {rMatcher = DetectChar '$', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"schemesub\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"chord\",Context {cName = \"chord\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"chordend\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z]))\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"chordpitch\")]},Rule {rMatcher = AnyChar \"<{}srR\", rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"LilyPond\",\"music\"), 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}),(\"chordend\",Context {cName = \"chordend\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\\\\\(longa|breve)\\\\b|(1|2|4|8|16|32|64|128|256|512|1024|2048)(?!\\\\d))(\\\\s*\\\\.+)?(\\\\s*\\\\*\\\\s*\\\\d+(/\\\\d+)?)*\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop,Pop], cDynamic = False}),(\"chordmode\",Context {cName = \"chordmode\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"chordmode2\")]},Rule {rMatcher = DetectSpaces, rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"chordmode2\",Context {cName = \"chordmode2\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"LilyPond\",\"chordrules\"), 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}),(\"chordpitch\",Context {cName = \"chordpitch\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"=\\\\s*('+|,+)?\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\\\\\(longa|breve)\\\\b|(1|2|4|8|16|32|64|128|256|512|1024|2048)(?!\\\\d))(\\\\s*\\\\.+)?(\\\\s*\\\\*\\\\s*\\\\d+(/\\\\d+)?)*\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\d+\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"chordrules\",Context {cName = \"chordrules\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"chordrules\")]},Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \":?([\\\\.^]?\\\\d+[-+]?|(m|dim|aug|maj|sus)(?![A-Za-z]))*(/\\\\+?\\\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z])))?\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"LilyPond\",\"music\"), 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}),(\"command\",Context {cName = \"command\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\note(mode|s)(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"notemode\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\drum(mode|s)(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"drummode\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\chord(mode|s)(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"chordmode\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\figure(mode|s)(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"figuremode\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(lyric(mode|s)|addlyrics)(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"lyricmode\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\lyricsto(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"lyricsto\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\markup(lines)?(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"markup\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(header|paper|layout|midi|with)\\\\b\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"section\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(new|context|change)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"context\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(un)?set\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"set\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(override(Property)?|revert)(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"override\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\skip(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"duration\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\tempo(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"tempo\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(accepts|alias|consists|defaultchild|denies|description|grobdescriptions|include|invalid|language|name|objectid|once|remove|sequential|simultaneous|type|version|score|book|bookpart)(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\((aiken|funk|sacredHarp|southernHarmony|walker)Heads(Minor)?)(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(acciaccatura|addQuote|afterGrace|allowPageTurn|alternative|apply(Context|Music|Output)|appoggiatura|arpeggio(Arrow(Down|Up)|Bracket|Normal|Parenthesis)?|(a|de)scendens|auctum|augmentum|autoBeamO(ff|n)|autochange|balloon(Grob)?Text|bar|barNumberCheck|bendAfter|breathe|break|cadenzaO(ff|n)|cavum|clef(\\\\s+(treble|violin|G|alto|C|tenor|(sub)?bass|F|french|(mezzo)?soprano|(var)?baritone|percussion|tab))?|(end)?(de)?cr|cresc(TextCresc|Hairpin))(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\((cue|transposedCue)During|default|deminutum|dim(Text(Decresc|Decr|Dim)|Hairpin)|display(Lily)?Music|divisio(Maior|Maxima|Minima)|(dynamic|dots|phrasingSlur|slur|stem|tie|tuplet)(Down|Neutral|Up)|(balloon|text)LengthO(ff|n)|featherDurations|figure(mode|s)|finalis|flexa|(french|german|italian|semiGerman)Chords|glissando|grace|harmonic|(unH|h)ideNotes|(hide|show)StaffSwitch|inclinatum|(keep|remove)WithTag|key(\\\\s+\\\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z])))?|killCues)(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(label|laissezVibrer|linea|makeClusters|mark|maxima|melisma(End)?|mergeDifferently(Head|Dott)edO(ff|n)|newSpacingSection|no(Beam|Break|PageBreak|PageTurn)|normalsize|numericTimeSignature|octaveCheck|oneVoice|oriscus|ottava|page(-ref|Break|Turn)|parallelMusic|parenthesize|partcombine|partial(\\\\s*(\\\\\\\\(longa|breve)\\\\b|(1|2|4|8|16|32|64|128|256|512|1024|2048)(?!\\\\d))(\\\\s*\\\\.+)?(\\\\s*\\\\*\\\\s*\\\\d+(/\\\\d+)?)*)?|pes|pitchedTrill)(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(pointAndClickO(ff|n)|quilisma|quoteDuring|relative(\\\\s+\\\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z])))?|RemoveEmptyStaffContext|repeat(\\\\s+(unfold|volta|tremolo|percent)(\\\\s+\\\\d+)?)?|repeatTie|resetRelativeOctave|rest|scaleDurations|scoreTweak|easyHeadsO(ff|n)|shift(Durations|Off|On{1,3})|(slur|tie)(Both|Dashed|Dotted|Solid)|small|spacingTweaks)(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\((start|stop)(Group|(Text|Trill)Span|Staff)|stemBoth|stropha|super|(sustain|sostenuto)O(ff|n)|table-of-contents|tag|times?(\\\\s*\\\\d+/\\\\d+)?|tiny|tocItem)(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(transpose(\\\\s+\\\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z]))\\\\s*\\\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z])))?|transposition(\\\\s+\\\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z]))))(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(tweak|unfoldRepeats|virg(ul)?a|voice(One|Two|Three|Four)|withMusicProperty|cm|mm|in|pt|major|minor|ionian|locrian|aeolian|mixolydian|lydian|phrygian|dorian)(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(dash(Hat|Plus|Dash|Bar|Larger|Dot|Underscore)|fermataMarkup|pipeSymbol|slashSeparator)(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(consistsend)(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(arpeggio(Up|Down|Neutral)|newpage|script(Up|Down|Both)|(empty|fat)Text|setEasyHeads|(default|voice|modernVoice|piano|forget)Accidentals|(modern(Voice)?|piano)Cautionaries|noResetKey|compressMusic|octave|(sustain|sostenuto)(Down|Up)|set(Hairpin|Text)(Cresc|Decresc|Dim)|setTextDecr)(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(translator|newcontext)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"context\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\property(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"override\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[A-Za-z]+\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\\\', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"commentblock\",Context {cName = \"commentblock\", cSyntax = \"LilyPond\", cRules = [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 = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"commentline\",Context {cName = \"commentline\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"connect\",Context {cName = \"connect\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = AnyChar \".-+|>^_12345\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"context\",Context {cName = \"context\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&'()*+,-./0123456789:;<=>?[\\\\]^_{|}~\"}) (CaseSensitiveWords (fromList [\"ChoirStaff\",\"ChordNames\",\"CueVoice\",\"Devnull\",\"DrumStaff\",\"DrumVoice\",\"Dynamics\",\"FiguredBass\",\"FretBoards\",\"Global\",\"GrandStaff\",\"GregorianTranscriptionStaff\",\"GregorianTranscriptionVoice\",\"Lyrics\",\"MensuralStaff\",\"MensuralVoice\",\"NoteNames\",\"PianoStaff\",\"RhythmicStaff\",\"Score\",\"Staff\",\"StaffGroup\",\"TabStaff\",\"TabVoice\",\"Timing\",\"VaticanaStaff\",\"VaticanaVoice\",\"Voice\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"context2\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&'()*+,-./0123456789:;<=>?[\\\\]^_{|}~\"}) (CaseSensitiveWords (fromList [\"InnerChoirStaff\",\"InnerStaffGroup\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"context2\")]},Rule {rMatcher = RegExpr (RE {reString = \"[A-Za-z]+\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"context2\")]},Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"section2\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"context2\",Context {cName = \"context2\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"=(\\\\s*[A-Za-z]+)?\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop,Pop], cDynamic = False}),(\"default\",Context {cName = \"default\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = Detect2Chars '<' '<', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '>' '>', rAttribute = KeywordTok, 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 = []},Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, 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 = []},Rule {rMatcher = DetectChar '\\\\', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"command\")]},Rule {rMatcher = IncludeRules (\"LilyPond\",\"basic\"), 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}),(\"drumchord\",Context {cName = \"drumchord\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&'()*+,-./0123456789:;<=>?[\\\\]^_{|}~\"}) (CaseSensitiveWords (fromList [\"acousticbassdrum\",\"acousticsnare\",\"agh\",\"agl\",\"bassdrum\",\"bd\",\"bda\",\"boh\",\"bohm\",\"boho\",\"bol\",\"bolm\",\"bolo\",\"cab\",\"cabasa\",\"cb\",\"cgh\",\"cghm\",\"cgho\",\"cgl\",\"cglm\",\"cglo\",\"chinesecymbal\",\"cl\",\"claves\",\"closedhihat\",\"cowbell\",\"crashcymbal\",\"crashcymbala\",\"crashcymbalb\",\"cuim\",\"cuio\",\"cymc\",\"cymca\",\"cymcb\",\"cymch\",\"cymr\",\"cymra\",\"cymrb\",\"cyms\",\"da\",\"db\",\"dc\",\"dd\",\"de\",\"electricsnare\",\"fivedown\",\"fiveup\",\"fourdown\",\"fourup\",\"gui\",\"guil\",\"guiro\",\"guis\",\"halfopenhihat\",\"handclap\",\"hc\",\"hh\",\"hhc\",\"hhho\",\"hho\",\"hhp\",\"hiagogo\",\"hibongo\",\"hiconga\",\"highfloortom\",\"hightom\",\"hihat\",\"himidtom\",\"hisidestick\",\"hitimbale\",\"hiwoodblock\",\"loagogo\",\"lobongo\",\"loconga\",\"longguiro\",\"longwhistle\",\"losidestick\",\"lotimbale\",\"lowfloortom\",\"lowmidtom\",\"lowoodblock\",\"lowtom\",\"mar\",\"maracas\",\"mutecuica\",\"mutehibongo\",\"mutehiconga\",\"mutelobongo\",\"muteloconga\",\"mutetriangle\",\"onedown\",\"oneup\",\"opencuica\",\"openhibongo\",\"openhiconga\",\"openhihat\",\"openlobongo\",\"openloconga\",\"opentriangle\",\"pedalhihat\",\"rb\",\"ridebell\",\"ridecymbal\",\"ridecymbala\",\"ridecymbalb\",\"shortguiro\",\"shortwhistle\",\"sidestick\",\"sn\",\"sna\",\"snare\",\"sne\",\"splashcymbal\",\"ss\",\"ssh\",\"ssl\",\"tamb\",\"tambourine\",\"tamtam\",\"threedown\",\"threeup\",\"timh\",\"timl\",\"tomfh\",\"tomfl\",\"tomh\",\"toml\",\"tommh\",\"tomml\",\"tri\",\"triangle\",\"trim\",\"trio\",\"tt\",\"twodown\",\"twoup\",\"ua\",\"ub\",\"uc\",\"ud\",\"ue\",\"vibraslap\",\"vibs\",\"wbh\",\"wbl\",\"whl\",\"whs\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"LilyPond\",\"chord\"), 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}),(\"drummode\",Context {cName = \"drummode\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"drummode2\")]},Rule {rMatcher = DetectSpaces, rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"drummode2\",Context {cName = \"drummode2\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"LilyPond\",\"drumrules\"), 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}),(\"drumrules\",Context {cName = \"drumrules\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"drumrules\")]},Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"<(?!<)\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"drumchord\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&'()*+,-./0123456789:;<=>?[\\\\]^_{|}~\"}) (CaseSensitiveWords (fromList [\"acousticbassdrum\",\"acousticsnare\",\"agh\",\"agl\",\"bassdrum\",\"bd\",\"bda\",\"boh\",\"bohm\",\"boho\",\"bol\",\"bolm\",\"bolo\",\"cab\",\"cabasa\",\"cb\",\"cgh\",\"cghm\",\"cgho\",\"cgl\",\"cglm\",\"cglo\",\"chinesecymbal\",\"cl\",\"claves\",\"closedhihat\",\"cowbell\",\"crashcymbal\",\"crashcymbala\",\"crashcymbalb\",\"cuim\",\"cuio\",\"cymc\",\"cymca\",\"cymcb\",\"cymch\",\"cymr\",\"cymra\",\"cymrb\",\"cyms\",\"da\",\"db\",\"dc\",\"dd\",\"de\",\"electricsnare\",\"fivedown\",\"fiveup\",\"fourdown\",\"fourup\",\"gui\",\"guil\",\"guiro\",\"guis\",\"halfopenhihat\",\"handclap\",\"hc\",\"hh\",\"hhc\",\"hhho\",\"hho\",\"hhp\",\"hiagogo\",\"hibongo\",\"hiconga\",\"highfloortom\",\"hightom\",\"hihat\",\"himidtom\",\"hisidestick\",\"hitimbale\",\"hiwoodblock\",\"loagogo\",\"lobongo\",\"loconga\",\"longguiro\",\"longwhistle\",\"losidestick\",\"lotimbale\",\"lowfloortom\",\"lowmidtom\",\"lowoodblock\",\"lowtom\",\"mar\",\"maracas\",\"mutecuica\",\"mutehibongo\",\"mutehiconga\",\"mutelobongo\",\"muteloconga\",\"mutetriangle\",\"onedown\",\"oneup\",\"opencuica\",\"openhibongo\",\"openhiconga\",\"openhihat\",\"openlobongo\",\"openloconga\",\"opentriangle\",\"pedalhihat\",\"rb\",\"ridebell\",\"ridecymbal\",\"ridecymbala\",\"ridecymbalb\",\"shortguiro\",\"shortwhistle\",\"sidestick\",\"sn\",\"sna\",\"snare\",\"sne\",\"splashcymbal\",\"ss\",\"ssh\",\"ssl\",\"tamb\",\"tambourine\",\"tamtam\",\"threedown\",\"threeup\",\"timh\",\"timl\",\"tomfh\",\"tomfl\",\"tomh\",\"toml\",\"tommh\",\"tomml\",\"tri\",\"triangle\",\"trim\",\"trio\",\"tt\",\"twodown\",\"twoup\",\"ua\",\"ub\",\"uc\",\"ud\",\"ue\",\"vibraslap\",\"vibs\",\"wbh\",\"wbl\",\"whl\",\"whs\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"duration\")]},Rule {rMatcher = IncludeRules (\"LilyPond\",\"music\"), 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}),(\"duration\",Context {cName = \"duration\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\\\\\(longa|breve)\\\\b|(1|2|4|8|16|32|64|128|256|512|1024|2048)(?!\\\\d))(\\\\s*\\\\.+)?(\\\\s*\\\\*\\\\s*\\\\d+(/\\\\d+)?)*\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\d+\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"figure\",Context {cName = \"figure\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"chordend\")]},Rule {rMatcher = IncludeRules (\"LilyPond\",\"basic\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\markup(lines)?(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"markup\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\skip(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"duration\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"figuremode\",Context {cName = \"figuremode\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"figuremode2\")]},Rule {rMatcher = DetectSpaces, rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"figuremode2\",Context {cName = \"figuremode2\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"LilyPond\",\"figurerules\"), 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}),(\"figurerules\",Context {cName = \"figurerules\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"figurerules\")]},Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '<', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"figure\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[srR](?![A-Za-z])\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"duration\")]},Rule {rMatcher = IncludeRules (\"LilyPond\",\"default\"), 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}),(\"lilypond\",Context {cName = \"lilypond\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = IncludeRules (\"LilyPond\",\"music\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[a-z]+\\\\s*=\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"assignment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"lyricmode\",Context {cName = \"lyricmode\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"lyricmode2\")]},Rule {rMatcher = DetectSpaces, rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"lyricmode2\",Context {cName = \"lyricmode2\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"LilyPond\",\"lyricrules\"), 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}),(\"lyricrules\",Context {cName = \"lyricrules\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"lyricrules\")]},Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\w+-{2,}|\\\\w+_{2,}|-{2,}\\\\w+|_{2,}\\\\w+)\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\\\\\(longa|breve)\\\\b|(1|2|4|8|16|32|64|128|256|512|1024|2048)(?!\\\\d))(\\\\s*\\\\.+)?(\\\\s*\\\\*\\\\s*\\\\d+(/\\\\d+)?)*\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(--|__|_)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"LilyPond\",\"default\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S+\\\\}\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"lyricsto\",Context {cName = \"lyricsto\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\"(\\\\\\\\[\\\"\\\\\\\\]|[^\\\"\\\\\\\\])+\\\"\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"lyricsto2\")]},Rule {rMatcher = RegExpr (RE {reString = \"[A-Za-z]+\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"lyricsto2\")]},Rule {rMatcher = DetectSpaces, rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"lyricsto2\",Context {cName = \"lyricsto2\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"lyricsto3\")]},Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop,Pop], cDynamic = False}),(\"lyricsto3\",Context {cName = \"lyricsto3\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = IncludeRules (\"LilyPond\",\"lyricrules\"), 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}),(\"markup\",Context {cName = \"markup\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"markup2\")]},Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\score\\\\b\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"notemode\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(markup|bold|(rounded-)?box|bracket|caps|(center|general|left|right)-align|circle|((center|dir|left|right)-)?column|combine|concat|dynamic|fill-line|finger|fontCaps|(abs-)?fontsize|fraction|halign|hbracket|hcenter-in|hcenter|hspace|huge|italic|justify|larger?|line|lower|magnify|medium|normal-size-(sub|super)|normal-text|normalsize|number|on-the-fly|override|pad-(around|markup|to-box|x)|page-ref|postscript|put-adjacent|raise|roman|rotate|sans|small(er)?|smallCaps|sub|super|teeny|text|tiny|translate(-scaled)?|transparent|typewriter|underline|upright|vcenter|whiteout|with-(color|dimensions|url)|wordwrap|(markup|column-|justified-|override-|wordwrap-)lines|wordwrap-(string-)?internal)(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(arrow-head|beam|char|(semi|sesqui|double)?(flat|sharp)|draw-(circle|line)|epsfile|eyeglasses|filled-box|fret-diagram(-terse|-verbose)?|fromproperty|harp-pedal|(justify|wordwrap)-(field|string)|left-brace|lookup|markalphabet|markletter|musicglyph|natural|note-by-number|note|null|path|right-brace|simple|(back)?slashed-digit|stencil|strut|tied-lyric|triangle|verbatim-file)(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '#', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"scheme\")]},Rule {rMatcher = RegExpr (RE {reString = \"[^\\\"\\\\s\\\\\\\\#%{}$]+\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"markup2\",Context {cName = \"markup2\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"LilyPond\",\"markuprules\"), 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}),(\"markuprules\",Context {cName = \"markuprules\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"markuprules\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\score\\\\b\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"notemode\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(arrow-head|beam|char|(semi|sesqui|double)?(flat|sharp)|draw-(circle|line)|epsfile|eyeglasses|filled-box|fret-diagram(-terse|-verbose)?|fromproperty|harp-pedal|(justify|wordwrap)-(field|string)|left-brace|lookup|markalphabet|markletter|musicglyph|natural|note-by-number|note|null|path|right-brace|simple|(back)?slashed-digit|stencil|strut|tied-lyric|triangle|verbatim-file|markup|bold|(rounded-)?box|bracket|caps|(center|general|left|right)-align|circle|((center|dir|left|right)-)?column|combine|concat|dynamic|fill-line|finger|fontCaps|(abs-)?fontsize|fraction|halign|hbracket|hcenter-in|hcenter|hspace|huge|italic|justify|larger?|line|lower|magnify|medium|normal-size-(sub|super)|normal-text|normalsize|number|on-the-fly|override|pad-(around|markup|to-box|x)|page-ref|postscript|put-adjacent|raise|roman|rotate|sans|small(er)?|smallCaps|sub|super|teeny|text|tiny|translate(-scaled)?|transparent|typewriter|underline|upright|vcenter|whiteout|with-(color|dimensions|url)|wordwrap|(markup|column-|justified-|override-|wordwrap-)lines|wordwrap-(string-)?internal)(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(bigger|h?center)(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[A-Za-z]+(-[A-Za-z]+)*\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"LilyPond\",\"basic\"), 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}),(\"music\",Context {cName = \"music\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = AnyChar \"()~\", rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"[]\", rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"-_^\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"connect\")]},Rule {rMatcher = DetectChar '\\\\', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"musiccommand\")]},Rule {rMatcher = IncludeRules (\"LilyPond\",\"default\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '<', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"chord\")]},Rule {rMatcher = DetectChar '>', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-z]+\\\\d+\\\\.*[,']+\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b[srR](?![A-Za-z])|\\\\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|(?![A-Za-z])))\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"pitch\")]},Rule {rMatcher = RegExpr (RE {reString = \":\\\\d*\", 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}),(\"musiccommand\",Context {cName = \"musiccommand\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(p{1,5}|mp|mf|f{1,5}|s?fp|sff?|spp?|[sr]?fz|cresc|decresc|dim)(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[<!>]\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(\\\\d+|accent|marcato|staccat(issim)?o|espressivo|tenuto|portato|(up|down)(bow|mordent|prall)|flageolet|thumb|[lr](heel|toe)|open|stopped|turn|reverseturn|trill|mordent|prall(prall|mordent|down|up)?|lineprall|signumcongruentiae|(short|long|verylong)?fermata|segno|(var)?coda|snappizzicato|halfopen)(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[()]\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[][]\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"LilyPond\",\"command\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"notemode\",Context {cName = \"notemode\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"notemode2\")]},Rule {rMatcher = DetectSpaces, rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"notemode2\",Context {cName = \"notemode2\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"LilyPond\",\"noterules\"), 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}),(\"noterules\",Context {cName = \"noterules\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"noterules\")]},Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"LilyPond\",\"music\"), 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}),(\"override\",Context {cName = \"override\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&'()*+,-./0123456789:;<=>?[\\\\]^_{|}~\"}) (CaseSensitiveWords (fromList [\"ChoirStaff\",\"ChordNames\",\"CueVoice\",\"Devnull\",\"DrumStaff\",\"DrumVoice\",\"Dynamics\",\"FiguredBass\",\"FretBoards\",\"Global\",\"GrandStaff\",\"GregorianTranscriptionStaff\",\"GregorianTranscriptionVoice\",\"Lyrics\",\"MensuralStaff\",\"MensuralVoice\",\"NoteNames\",\"PianoStaff\",\"RhythmicStaff\",\"Score\",\"Staff\",\"StaffGroup\",\"TabStaff\",\"TabVoice\",\"Timing\",\"VaticanaStaff\",\"VaticanaVoice\",\"Voice\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&'()*+,-./0123456789:;<=>?[\\\\]^_{|}~\"}) (CaseSensitiveWords (fromList [\"InnerChoirStaff\",\"InnerStaffGroup\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '.', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&'()*+,-./0123456789:;<=>?[\\\\]^_{|}~\"}) (CaseSensitiveWords (fromList [\"Accidental\",\"AccidentalCautionary\",\"AccidentalPlacement\",\"AccidentalSuggestion\",\"Ambitus\",\"AmbitusAccidental\",\"AmbitusLine\",\"AmbitusNoteHead\",\"Arpeggio\",\"BalloonTextItem\",\"BarLine\",\"BarNumber\",\"BassFigure\",\"BassFigureAlignment\",\"BassFigureAlignmentPositioning\",\"BassFigureBracket\",\"BassFigureContinuation\",\"BassFigureLine\",\"Beam\",\"BendAfter\",\"BreakAlignGroup\",\"BreakAlignment\",\"BreathingSign\",\"ChordName\",\"Clef\",\"ClusterSpanner\",\"ClusterSpannerBeacon\",\"CombineTextScript\",\"Custos\",\"DotColumn\",\"Dots\",\"DoublePercentRepeat\",\"DoublePercentRepeatCounter\",\"DynamicLineSpanner\",\"DynamicText\",\"DynamicTextSpanner\",\"Episema\",\"Fingering\",\"FretBoard\",\"Glissando\",\"GraceSpacing\",\"GridLine\",\"GridPoint\",\"Hairpin\",\"HarmonicParenthesesItem\",\"HorizontalBracket\",\"InstrumentName\",\"InstrumentSwitch\",\"KeyCancellation\",\"KeySignature\",\"LaissezVibrerTie\",\"LaissezVibrerTieColumn\",\"LedgerLineSpanner\",\"LeftEdge\",\"LigatureBracket\",\"LyricExtender\",\"LyricHyphen\",\"LyricSpace\",\"LyricText\",\"MeasureGrouping\",\"MelodyItem\",\"MensuralLigature\",\"MetronomeMark\",\"MultiMeasureRest\",\"MultiMeasureRestNumber\",\"MultiMeasureRestText\",\"NonMusicalPaperColumn\",\"NoteCollision\",\"NoteColumn\",\"NoteHead\",\"NoteName\",\"NoteSpacing\",\"OctavateEight\",\"OttavaBracket\",\"PaperColumn\",\"ParenthesesItem\",\"PercentRepeat\",\"PercentRepeatCounter\",\"PhrasingSlur\",\"PianoPedalBracket\",\"RehearsalMark\",\"RepeatSlash\",\"RepeatTie\",\"RepeatTieColumn\",\"Rest\",\"RestCollision\",\"Script\",\"ScriptColumn\",\"ScriptRow\",\"SeparationItem\",\"Slur\",\"SostenutoPedal\",\"SostenutoPedalLineSpanner\",\"SpacingSpanner\",\"SpanBar\",\"StaffGrouper\",\"StaffSpacing\",\"StaffSymbol\",\"StanzaNumber\",\"Stem\",\"StemTremolo\",\"StringNumber\",\"StrokeFinger\",\"SustainPedal\",\"SustainPedalLineSpanner\",\"System\",\"SystemStartBar\",\"SystemStartBrace\",\"SystemStartBracket\",\"SystemStartSquare\",\"TabNoteHead\",\"TextScript\",\"TextSpanner\",\"Tie\",\"TieColumn\",\"TimeSignature\",\"TrillPitchAccidental\",\"TrillPitchGroup\",\"TrillPitchHead\",\"TrillSpanner\",\"TupletBracket\",\"TupletNumber\",\"UnaCordaPedal\",\"UnaCordaPedalLineSpanner\",\"VaticanaLigature\",\"VerticalAlignment\",\"VerticalAxisGroup\",\"VoiceFollower\",\"VoltaBracket\",\"VoltaBracketSpanner\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[A-Za-z]+(?=\\\\s*\\\\.)\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[A-Za-z]+\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"pitch\",Context {cName = \"pitch\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"=\\\\s*('+|,+)?\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"!?\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"LilyPond\",\"duration\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"scheme\",Context {cName = \"scheme\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = FloatTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Push (\"LilyPond\",\"scheme2\")], cDynamic = False}),(\"scheme2\",Context {cName = \"scheme2\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"scheme3\")]},Rule {rMatcher = IncludeRules (\"LilyPond\",\"schemerules\"), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectSpaces, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = FloatTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"scheme3\",Context {cName = \"scheme3\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = IncludeRules (\"LilyPond\",\"schemerules\"), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = FloatTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"schemecommentblock\",Context {cName = \"schemecommentblock\", cSyntax = \"LilyPond\", cRules = [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 = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"schemecommentline\",Context {cName = \"schemecommentline\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"schemelily\",Context {cName = \"schemelily\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = Detect2Chars '#' '}', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"LilyPond\",\"lilypond\"), 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}),(\"schemequote\",Context {cName = \"schemequote\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(define|defined\\\\?|define\\\\*(-public)?|define-(\\\\*|builtin-markup-(list-)?command|class|(extra-)?display-method|fonts?|grob-property|ly-syntax(-loc|-simple)?|macro(-public)?|markup-(list-)command|method|module|music-function|post-event-display-method|public(-macro|-toplevel)?|safe-public|span-event-display-method)|defmacro(\\\\*(-public)?)?|lambda\\\\*?|and|or|if|cond|case|let\\\\*?|letrec|begin|do|delay|set!|else|(quasi)?quote|unquote(-splicing)?|(define|let|letrec)-syntax|syntax-rules)(?=($|\\\\s|\\\\)))\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(not|boolean\\\\?|eq\\\\?|eqv\\\\?|equal\\\\?|pair\\\\?|cons|set-c[ad]r!|c[ad]{1,4}r|null\\\\?|list\\\\?|list|length|append|reverse|list-ref|mem[qv]|member|ass[qv]|assoc|symbol\\\\?|symbol->string|string->symbol|number\\\\?|complex\\\\?|real\\\\?|rational\\\\?|integer\\\\?|exact\\\\?|inexact\\\\?|zero\\\\?|positive\\\\?|negative\\\\?|odd\\\\?|even\\\\?|max|min|abs|quotient|remainder|modulo|gcd|lcm|numerator|denominator|floor|ceiling|truncate|round|rationalize|exp|log|sin|cos|tan|asin|acos|atan|sqrt|expt|make-rectangular|make-polar|real-part|imag-part|magnitude|angle|exact->inexact|inexact->exact|number->string|string->number)(?=($|\\\\s|\\\\)))\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(char((-ci)?(=\\\\?|<\\\\?|>\\\\?|<=\\\\?|>=\\\\?)|-alphabetic\\\\?|\\\\?|-numeric\\\\?|-whitespace\\\\?|-upper-case\\\\?|-lower-case\\\\?|->integer|-upcase|-downcase|-ready\\\\?)|integer->char|make-string|string(\\\\?|-copy|-fill!|-length|-ref|-set!|(-ci)?(=\\\\?|<\\\\?|>\\\\?|<=\\\\?|>=\\\\?)|-append)|substring|make-vector|vector(\\\\?|-length|-ref|-set!|-fill!)?|procedure\\\\?|apply|map|for-each|force|call-with-(current-continuation|(in|out)put-file)|(in|out)put-port\\\\?|current-(in|out)put-port|open-(in|out)put-file|close-(in|out)put-port|eof-object\\\\?|read|(read|peek)-char|write(-char)?|display|newline|call/cc|list-tail|string->list|list->string|vector->list|list->vector|with-input-from-file|with-output-to-file|load|transcript-(on|off)|eval|dynamic-wind|port\\\\?|values|call-with-values|(scheme-report-|null-|interaction-)environment)(?=($|\\\\s|\\\\)))\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = FloatTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"schemerules\",Context {cName = \"schemerules\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"schemerules\")]},Rule {rMatcher = DetectChar ')', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\"', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"schemestring\")]},Rule {rMatcher = DetectChar ';', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"schemecommentline\")]},Rule {rMatcher = DetectChar '$', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"schemesub\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"schemequote\")]},Rule {rMatcher = Detect2Chars '#' '!', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"schemecommentblock\")]},Rule {rMatcher = Detect2Chars '#' '{', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"schemelily\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&'()*+,-./0123456789:;<=>?[\\\\]^_{|}~\"}) (CaseSensitiveWords (fromList [\"AbsoluteDynamicEvent\",\"AnnotateOutputEvent\",\"ApplyContext\",\"ApplyOutputEvent\",\"ArpeggioEvent\",\"ArticulationEvent\",\"AutoChangeMusic\",\"BarCheck\",\"BassFigureEvent\",\"BeamEvent\",\"BeamForbidEvent\",\"BendAfterEvent\",\"BreathingEvent\",\"ClusterNoteEvent\",\"ContextChange\",\"ContextSpeccedMusic\",\"CrescendoEvent\",\"DecrescendoEvent\",\"Event\",\"EventChord\",\"ExtenderEvent\",\"FingeringEvent\",\"GlissandoEvent\",\"GraceMusic\",\"HarmonicEvent\",\"HyphenEvent\",\"KeyChangeEvent\",\"LabelEvent\",\"LaissezVibrerEvent\",\"LigatureEvent\",\"LineBreakEvent\",\"LyricCombineMusic\",\"LyricEvent\",\"MarkEvent\",\"MultiMeasureRestEvent\",\"MultiMeasureRestMusic\",\"MultiMeasureTextEvent\",\"Music\",\"NoteEvent\",\"NoteGroupingEvent\",\"OverrideProperty\",\"PageBreakEvent\",\"PageTurnEvent\",\"PartCombineMusic\",\"PercentEvent\",\"PercentRepeatedMusic\",\"PesOrFlexaEvent\",\"PhrasingSlurEvent\",\"PropertySet\",\"PropertyUnset\",\"QuoteMusic\",\"RelativeOctaveCheck\",\"RelativeOctaveMusic\",\"RepeatTieEvent\",\"RepeatedMusic\",\"RestEvent\",\"RevertProperty\",\"ScriptEvent\",\"SequentialMusic\",\"SimultaneousMusic\",\"SkipEvent\",\"SkipMusic\",\"SlurEvent\",\"SoloOneEvent\",\"SoloTwoEvent\",\"SostenutoEvent\",\"SpacingSectionEvent\",\"SpanEvent\",\"StaffSpanEvent\",\"StringNumberEvent\",\"StrokeFingerEvent\",\"SustainEvent\",\"TextScriptEvent\",\"TextSpanEvent\",\"TieEvent\",\"TimeScaledMusic\",\"TransposedMusic\",\"TremoloEvent\",\"TremoloRepeatedMusic\",\"TremoloSpanEvent\",\"TrillSpanEvent\",\"TupletSpanEvent\",\"UnaCordaEvent\",\"UnfoldedRepeatedMusic\",\"UnisonoEvent\",\"UnrelativableMusic\",\"VoiceSeparator\",\"VoltaRepeatedMusic\"])), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&'()*+,-./0123456789:;<=>?[\\\\]^_{|}~\"}) (CaseSensitiveWords (fromList [\"ChoirStaff\",\"ChordNames\",\"CueVoice\",\"Devnull\",\"DrumStaff\",\"DrumVoice\",\"Dynamics\",\"FiguredBass\",\"FretBoards\",\"Global\",\"GrandStaff\",\"GregorianTranscriptionStaff\",\"GregorianTranscriptionVoice\",\"Lyrics\",\"MensuralStaff\",\"MensuralVoice\",\"NoteNames\",\"PianoStaff\",\"RhythmicStaff\",\"Score\",\"Staff\",\"StaffGroup\",\"TabStaff\",\"TabVoice\",\"Timing\",\"VaticanaStaff\",\"VaticanaVoice\",\"Voice\"])), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&'()*+,-./0123456789:;<=>?[\\\\]^_{|}~\"}) (CaseSensitiveWords (fromList [\"Accidental\",\"AccidentalCautionary\",\"AccidentalPlacement\",\"AccidentalSuggestion\",\"Ambitus\",\"AmbitusAccidental\",\"AmbitusLine\",\"AmbitusNoteHead\",\"Arpeggio\",\"BalloonTextItem\",\"BarLine\",\"BarNumber\",\"BassFigure\",\"BassFigureAlignment\",\"BassFigureAlignmentPositioning\",\"BassFigureBracket\",\"BassFigureContinuation\",\"BassFigureLine\",\"Beam\",\"BendAfter\",\"BreakAlignGroup\",\"BreakAlignment\",\"BreathingSign\",\"ChordName\",\"Clef\",\"ClusterSpanner\",\"ClusterSpannerBeacon\",\"CombineTextScript\",\"Custos\",\"DotColumn\",\"Dots\",\"DoublePercentRepeat\",\"DoublePercentRepeatCounter\",\"DynamicLineSpanner\",\"DynamicText\",\"DynamicTextSpanner\",\"Episema\",\"Fingering\",\"FretBoard\",\"Glissando\",\"GraceSpacing\",\"GridLine\",\"GridPoint\",\"Hairpin\",\"HarmonicParenthesesItem\",\"HorizontalBracket\",\"InstrumentName\",\"InstrumentSwitch\",\"KeyCancellation\",\"KeySignature\",\"LaissezVibrerTie\",\"LaissezVibrerTieColumn\",\"LedgerLineSpanner\",\"LeftEdge\",\"LigatureBracket\",\"LyricExtender\",\"LyricHyphen\",\"LyricSpace\",\"LyricText\",\"MeasureGrouping\",\"MelodyItem\",\"MensuralLigature\",\"MetronomeMark\",\"MultiMeasureRest\",\"MultiMeasureRestNumber\",\"MultiMeasureRestText\",\"NonMusicalPaperColumn\",\"NoteCollision\",\"NoteColumn\",\"NoteHead\",\"NoteName\",\"NoteSpacing\",\"OctavateEight\",\"OttavaBracket\",\"PaperColumn\",\"ParenthesesItem\",\"PercentRepeat\",\"PercentRepeatCounter\",\"PhrasingSlur\",\"PianoPedalBracket\",\"RehearsalMark\",\"RepeatSlash\",\"RepeatTie\",\"RepeatTieColumn\",\"Rest\",\"RestCollision\",\"Script\",\"ScriptColumn\",\"ScriptRow\",\"SeparationItem\",\"Slur\",\"SostenutoPedal\",\"SostenutoPedalLineSpanner\",\"SpacingSpanner\",\"SpanBar\",\"StaffGrouper\",\"StaffSpacing\",\"StaffSymbol\",\"StanzaNumber\",\"Stem\",\"StemTremolo\",\"StringNumber\",\"StrokeFinger\",\"SustainPedal\",\"SustainPedalLineSpanner\",\"System\",\"SystemStartBar\",\"SystemStartBrace\",\"SystemStartBracket\",\"SystemStartSquare\",\"TabNoteHead\",\"TextScript\",\"TextSpanner\",\"Tie\",\"TieColumn\",\"TimeSignature\",\"TrillPitchAccidental\",\"TrillPitchGroup\",\"TrillPitchHead\",\"TrillSpanner\",\"TupletBracket\",\"TupletNumber\",\"UnaCordaPedal\",\"UnaCordaPedalLineSpanner\",\"VaticanaLigature\",\"VerticalAlignment\",\"VerticalAxisGroup\",\"VoiceFollower\",\"VoltaBracket\",\"VoltaBracketSpanner\"])), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[-+]?(\\\\d+(\\\\.\\\\d+)?|\\\\.\\\\d+)\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#(t|f|b[-+]?[01.]+|o[-+]?[0-7.]+|d[-+]?[0-9.]+|x[-+]?[0-9a-f.]+)\", reCaseSensitive = False}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[+-](inf|nan)\\\\.0\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(define|defined\\\\?|define\\\\*(-public)?|define-(\\\\*|builtin-markup-(list-)?command|class|(extra-)?display-method|fonts?|grob-property|ly-syntax(-loc|-simple)?|macro(-public)?|markup-(list-)command|method|module|music-function|post-event-display-method|public(-macro|-toplevel)?|safe-public|span-event-display-method)|defmacro(\\\\*(-public)?)?|lambda\\\\*?|and|or|if|cond|case|let\\\\*?|letrec|begin|do|delay|set!|else|(quasi)?quote|unquote(-splicing)?|(define|let|letrec)-syntax|syntax-rules)(?=($|\\\\s|\\\\)))\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(not|boolean\\\\?|eq\\\\?|eqv\\\\?|equal\\\\?|pair\\\\?|cons|set-c[ad]r!|c[ad]{1,4}r|null\\\\?|list\\\\?|list|length|append|reverse|list-ref|mem[qv]|member|ass[qv]|assoc|symbol\\\\?|symbol->string|string->symbol|number\\\\?|complex\\\\?|real\\\\?|rational\\\\?|integer\\\\?|exact\\\\?|inexact\\\\?|zero\\\\?|positive\\\\?|negative\\\\?|odd\\\\?|even\\\\?|max|min|abs|quotient|remainder|modulo|gcd|lcm|numerator|denominator|floor|ceiling|truncate|round|rationalize|exp|log|sin|cos|tan|asin|acos|atan|sqrt|expt|make-rectangular|make-polar|real-part|imag-part|magnitude|angle|exact->inexact|inexact->exact|number->string|string->number)(?=($|\\\\s|\\\\)))\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(char((-ci)?(=\\\\?|<\\\\?|>\\\\?|<=\\\\?|>=\\\\?)|-alphabetic\\\\?|\\\\?|-numeric\\\\?|-whitespace\\\\?|-upper-case\\\\?|-lower-case\\\\?|->integer|-upcase|-downcase|-ready\\\\?)|integer->char|make-string|string(\\\\?|-copy|-fill!|-length|-ref|-set!|(-ci)?(=\\\\?|<\\\\?|>\\\\?|<=\\\\?|>=\\\\?)|-append)|substring|make-vector|vector(\\\\?|-length|-ref|-set!|-fill!)?|procedure\\\\?|apply|map|for-each|force|call-with-(current-continuation|(in|out)put-file)|(in|out)put-port\\\\?|current-(in|out)put-port|open-(in|out)put-file|close-(in|out)put-port|eof-object\\\\?|read|(read|peek)-char|write(-char)?|display|newline|call/cc|list-tail|string->list|list->string|vector->list|list->vector|with-input-from-file|with-output-to-file|load|transcript-(on|off)|eval|dynamic-wind|port\\\\?|values|call-with-values|(scheme-report-|null-|interaction-)environment)(?=($|\\\\s|\\\\)))\", 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-Z#][^\\\\s(){}[\\\\];$\\\"]*\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = FloatTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"schemestring\",Context {cName = \"schemestring\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[0fnrtav\\\\\\\\\\\"]\", reCaseSensitive = True}), 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}),(\"schemesub\",Context {cName = \"schemesub\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z#][^\\\\s(){}[\\\\];$\\\"]*\", reCaseSensitive = True}), 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}),(\"section\",Context {cName = \"section\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"section2\")]},Rule {rMatcher = DetectSpaces, rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"section2\",Context {cName = \"section2\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"LilyPond\",\"sectionrules\"), 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}),(\"sectionrules\",Context {cName = \"sectionrules\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"sectionrules\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&'()*+,-./0123456789:;<=>?[\\\\]^_{|}~\"}) (CaseSensitiveWords (fromList [\"ChoirStaff\",\"ChordNames\",\"CueVoice\",\"Devnull\",\"DrumStaff\",\"DrumVoice\",\"Dynamics\",\"FiguredBass\",\"FretBoards\",\"Global\",\"GrandStaff\",\"GregorianTranscriptionStaff\",\"GregorianTranscriptionVoice\",\"Lyrics\",\"MensuralStaff\",\"MensuralVoice\",\"NoteNames\",\"PianoStaff\",\"RhythmicStaff\",\"Score\",\"Staff\",\"StaffGroup\",\"TabStaff\",\"TabVoice\",\"Timing\",\"VaticanaStaff\",\"VaticanaVoice\",\"Voice\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&'()*+,-./0123456789:;<=>?[\\\\]^_{|}~\"}) (CaseSensitiveWords (fromList [\"InnerChoirStaff\",\"InnerStaffGroup\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\"?)\\\\b((Accidental|Ambitus|Arpeggio|Auto_beam|Axis_group|Balloon|Bar|Bar_number|Beam|Bend|Break_align|Breathing_sign|Chord_name|Chord_tremolo|Clef|Cluster_spanner|Collision|Completion_heads|Custos|Default_bar_line|Dot_column|Dots|Drum_notes|Dynami_align|Dynamic|Episema|Extender|Figured_bass|Figured_bass_position|Fingering|Font_size|Forbid_line_break|Fretboard|Glissando|Grace_beam|Grace|Grace_spacing|Grid_line_span|Grid_point|Grob_pq|Hara_kiri|Horizontal_bracket)_engraver)\\\\b\\\\1\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\"?)\\\\b((Hyphen|Instrument_name|Instrument_switch|Key|Laissez_vibrer|Ledger_line|Ligature_bracket|Lyric|Mark|Measure_grouping|Melody|Mensural_ligature|Metronome_mark|Multi_measure_rest|New_dynamic|New_fingering|Note_head_line|Note_heads|Note_name|Note_spacing|Ottava_spanner|Output_property|Page_turn|Paper_column|Parenthesis|Part_combine|Percent_repeat|Phrasing_slur|Piano_pedal_align|Piano_pedal|Pitch_squash|Pitched_trill|Repeat_acknowledge|Repeat_tie|Rest_collision|Rest|Rhythmic_column|Scheme|Script_column|Script|Script_row)_engraver)\\\\b\\\\1\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\"?)\\\\b((Separating_line_group|Slash_repeat|Slur|Spacing|Span_arpeggio|Span_bar|Spanner_break_forbid|Staff_collecting|Staff_symbol|Stanza_number_align|Stanza_number|Stem|String_number|Swallow|System_start_delimiter|Tab_harmonic|Tab_note_heads|Tab_staff_symbol|Text|Text_spanner|Tie|Time_signature|Trill_spanner|Tuplet|Tweak|Vaticana_ligature|Vertical_align|Vertically_spaced_contexts|Volta)_engraver)\\\\b\\\\1\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\"?)\\\\b((Beam|Control_track|Drum_note|Dynamic|Key|Lyric|Note|Piano_pedal|Slur|Staff|Swallow|Tempo|Tie|Time_signature)_performer)\\\\b\\\\1\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\"?)\\\\b((Note_swallow|Rest_swallow|Skip_event_swallow|Timing)_translator)\\\\b\\\\1\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&'()*+,-./0123456789:;<=>?[\\\\]^_{|}~\"}) (CaseSensitiveWords (fromList [\"Accidental\",\"AccidentalCautionary\",\"AccidentalPlacement\",\"AccidentalSuggestion\",\"Ambitus\",\"AmbitusAccidental\",\"AmbitusLine\",\"AmbitusNoteHead\",\"Arpeggio\",\"BalloonTextItem\",\"BarLine\",\"BarNumber\",\"BassFigure\",\"BassFigureAlignment\",\"BassFigureAlignmentPositioning\",\"BassFigureBracket\",\"BassFigureContinuation\",\"BassFigureLine\",\"Beam\",\"BendAfter\",\"BreakAlignGroup\",\"BreakAlignment\",\"BreathingSign\",\"ChordName\",\"Clef\",\"ClusterSpanner\",\"ClusterSpannerBeacon\",\"CombineTextScript\",\"Custos\",\"DotColumn\",\"Dots\",\"DoublePercentRepeat\",\"DoublePercentRepeatCounter\",\"DynamicLineSpanner\",\"DynamicText\",\"DynamicTextSpanner\",\"Episema\",\"Fingering\",\"FretBoard\",\"Glissando\",\"GraceSpacing\",\"GridLine\",\"GridPoint\",\"Hairpin\",\"HarmonicParenthesesItem\",\"HorizontalBracket\",\"InstrumentName\",\"InstrumentSwitch\",\"KeyCancellation\",\"KeySignature\",\"LaissezVibrerTie\",\"LaissezVibrerTieColumn\",\"LedgerLineSpanner\",\"LeftEdge\",\"LigatureBracket\",\"LyricExtender\",\"LyricHyphen\",\"LyricSpace\",\"LyricText\",\"MeasureGrouping\",\"MelodyItem\",\"MensuralLigature\",\"MetronomeMark\",\"MultiMeasureRest\",\"MultiMeasureRestNumber\",\"MultiMeasureRestText\",\"NonMusicalPaperColumn\",\"NoteCollision\",\"NoteColumn\",\"NoteHead\",\"NoteName\",\"NoteSpacing\",\"OctavateEight\",\"OttavaBracket\",\"PaperColumn\",\"ParenthesesItem\",\"PercentRepeat\",\"PercentRepeatCounter\",\"PhrasingSlur\",\"PianoPedalBracket\",\"RehearsalMark\",\"RepeatSlash\",\"RepeatTie\",\"RepeatTieColumn\",\"Rest\",\"RestCollision\",\"Script\",\"ScriptColumn\",\"ScriptRow\",\"SeparationItem\",\"Slur\",\"SostenutoPedal\",\"SostenutoPedalLineSpanner\",\"SpacingSpanner\",\"SpanBar\",\"StaffGrouper\",\"StaffSpacing\",\"StaffSymbol\",\"StanzaNumber\",\"Stem\",\"StemTremolo\",\"StringNumber\",\"StrokeFinger\",\"SustainPedal\",\"SustainPedalLineSpanner\",\"System\",\"SystemStartBar\",\"SystemStartBrace\",\"SystemStartBracket\",\"SystemStartSquare\",\"TabNoteHead\",\"TextScript\",\"TextSpanner\",\"Tie\",\"TieColumn\",\"TimeSignature\",\"TrillPitchAccidental\",\"TrillPitchGroup\",\"TrillPitchHead\",\"TrillSpanner\",\"TupletBracket\",\"TupletNumber\",\"UnaCordaPedal\",\"UnaCordaPedalLineSpanner\",\"VaticanaLigature\",\"VerticalAlignment\",\"VerticalAxisGroup\",\"VoiceFollower\",\"VoltaBracket\",\"VoltaBracketSpanner\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&'()*+,-./0123456789:;<=>?[\\\\]^_{|}~\"}) (CaseSensitiveWords (fromList [\"aDueText\",\"alignAboveContext\",\"alignBassFigureAccidentals\",\"alignBelowContext\",\"allowBeamBreak\",\"associatedVoice\",\"autoAccidentals\",\"autoBeamCheck\",\"autoBeamSettings\",\"autoBeaming\",\"autoCautionaries\",\"automaticBars\",\"barAlways\",\"barCheckSynchronize\",\"barNumberVisibility\",\"baseMoment\",\"bassFigureFormatFunction\",\"bassStaffProperties\",\"beamExceptions\",\"beatGrouping\",\"beatLength\",\"beatStructure\",\"chordChanges\",\"chordNameExceptions\",\"chordNameExceptionsFull\",\"chordNameExceptionsPartial\",\"chordNameFunction\",\"chordNameSeparator\",\"chordNoteNamer\",\"chordPrefixSpacer\",\"chordRootNamer\",\"clefGlyph\",\"clefOctavation\",\"clefPosition\",\"connectArpeggios\",\"countPercentRepeats\",\"createKeyOnClefChange\",\"createSpacing\",\"crescendoSpanner\",\"crescendoText\",\"currentBarNumber\",\"decrescendoSpanner\",\"decrescendoText\",\"defaultBarType\",\"doubleRepeatType\",\"doubleSlurs\",\"drumPitchTable\",\"drumStyleTable\",\"dynamicAbsoluteVolumeFunction\",\"explicitClefVisibility\",\"explicitKeySignatureVisibility\",\"extendersOverRests\",\"extraNatural\",\"figuredBassAlterationDirection\",\"figuredBassCenterContinuations\",\"figuredBassFormatter\",\"figuredBassPlusDirection\",\"fingeringOrientations\",\"firstClef\",\"followVoice\",\"fontSize\",\"forbidBreak\",\"forceClef\",\"gridInterval\",\"hairpinToBarline\",\"harmonicAccidentals\",\"highStringOne\",\"ignoreBarChecks\",\"ignoreFiguredBassRest\",\"ignoreMelismata\",\"implicitBassFigures\",\"implicitTimeSignatureVisibility\",\"instrumentCueName\",\"instrumentEqualizer\",\"instrumentName\",\"instrumentTransposition\",\"internalBarNumber\",\"keepAliveInterfaces\",\"keyAlterationOrder\",\"keySignature\",\"lyricMelismaAlignment\",\"majorSevenSymbol\",\"markFormatter\",\"maximumFretStretch\",\"measureLength\",\"measurePosition\",\"melismaBusyProperties\",\"metronomeMarkFormatter\",\"middleCClefPosition\",\"middleCOffset\",\"middleCPosition\",\"midiInstrument\",\"midiMaximumVolume\",\"midiMinimumVolume\",\"minimumFret\",\"minimumPageTurnLength\",\"minimumRepeatLengthForPageTurn\",\"noteToFretFunction\",\"ottavation\",\"output\",\"pedalSostenutoStrings\",\"pedalSostenutoStyle\",\"pedalSustainStrings\",\"pedalSustainStyle\",\"pedalUnaCordaStrings\",\"pedalUnaCordaStyle\",\"printKeyCancellation\",\"printOctaveNames\",\"printPartCombineTexts\",\"proportionalNotationDuration\",\"recordEventSequence\",\"rehearsalMark\",\"repeatCommands\",\"restNumberThreshold\",\"scriptDefinitions\",\"shapeNoteStyles\",\"shortInstrumentName\",\"shortVocalName\",\"skipBars\",\"skipTypesetting\",\"soloIIText\",\"soloText\",\"squashedPosition\",\"staffLineLayoutFunction\",\"stanza\",\"stemLeftBeamCount\",\"stemRightBeamCount\",\"stringNumberOrientations\",\"stringOneTopmost\",\"stringTunings\",\"strokeFingerOrientations\",\"subdivideBeams\",\"suggestAccidentals\",\"systemStartDelimiter\",\"systemStartDelimiterHierarchy\",\"tablatureFormat\",\"tempoUnitCount\",\"tempoUnitDuration\",\"tempoWholesPerMinute\",\"tieWaitForNote\",\"timeSignatureFraction\",\"timing\",\"tonic\",\"topLevelAlignment\",\"trebleStaffProperties\",\"tremoloFlags\",\"tupletFullLength\",\"tupletFullLengthNote\",\"tupletSpannerDuration\",\"useBassFigureExtenders\",\"verticallySpacedContexts\",\"vocalName\",\"voltaOnThisStaff\",\"voltaSpannerDuration\",\"whichBar\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(dedication|(sub){,2}title|poet|composer|meter|opus|arranger|instrument|piece|breakbefore|copyright|tagline|mutopia(title|composer|poet|opus|instrument)|date|enteredby|source|style|maintainer(Email|Web)?|moreInfo|lastupdated|texidoc|footer|(top|bottom|left|right)-margin|(foot|head)-separation|indent|short-indent|paper-(height|width)|horizontal-shift|line-width|(inner|outer)-margin|two-sided|binding-offset|(after|before|between)-title-space|between-system-(space|padding)|page-top-space|page-breaking-between-system-padding|(after|before|between)-title-spacing|between-(scores-)?system-spacing|bottom-system-spacing|top-title-spacing|top-system-spacing|page-breaking-between-system-spacing|system-count|(min-|max-)?systems-per-page|annotate-spacing|auto-first-page-number|blank-(last-)?page-force|first-page-number|page-count|page-limit-inter-system-space|page-limit-inter-system-space-factor|page-spacing-weight|print-all-headers|print-first-page-number|print-page-number|ragged-(bottom|right)|ragged-last(-bottom)?|system-separator-markup|force-assignment|input-encoding|output-scale|((even|odd)(Footer|Header)|(book|score|toc)Title|tocItem)Markup|system-count|(short-)?indent)\\\\b\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&'()*+,-./0123456789:;<=>?[\\\\]^_{|}~\"}) (CaseSensitiveWords (fromList [\"barNumberAlignSymbol\",\"centralCPosition\",\"extraVerticalExtent\",\"fingerHorizontalDirection\",\"instr\",\"instrument\",\"keyAccidentalOrder\",\"minimumVerticalExtent\",\"rehearsalMarkAlignSymbol\",\"soloADue\",\"tupletNumberFormatFunction\",\"vocNam\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"LilyPond\",\"default\"), 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}),(\"set\",Context {cName = \"set\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&'()*+,-./0123456789:;<=>?[\\\\]^_{|}~\"}) (CaseSensitiveWords (fromList [\"ChoirStaff\",\"ChordNames\",\"CueVoice\",\"Devnull\",\"DrumStaff\",\"DrumVoice\",\"Dynamics\",\"FiguredBass\",\"FretBoards\",\"Global\",\"GrandStaff\",\"GregorianTranscriptionStaff\",\"GregorianTranscriptionVoice\",\"Lyrics\",\"MensuralStaff\",\"MensuralVoice\",\"NoteNames\",\"PianoStaff\",\"RhythmicStaff\",\"Score\",\"Staff\",\"StaffGroup\",\"TabStaff\",\"TabVoice\",\"Timing\",\"VaticanaStaff\",\"VaticanaVoice\",\"Voice\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&'()*+,-./0123456789:;<=>?[\\\\]^_{|}~\"}) (CaseSensitiveWords (fromList [\"InnerChoirStaff\",\"InnerStaffGroup\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '.', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&'()*+,-./0123456789:;<=>?[\\\\]^_{|}~\"}) (CaseSensitiveWords (fromList [\"aDueText\",\"alignAboveContext\",\"alignBassFigureAccidentals\",\"alignBelowContext\",\"allowBeamBreak\",\"associatedVoice\",\"autoAccidentals\",\"autoBeamCheck\",\"autoBeamSettings\",\"autoBeaming\",\"autoCautionaries\",\"automaticBars\",\"barAlways\",\"barCheckSynchronize\",\"barNumberVisibility\",\"baseMoment\",\"bassFigureFormatFunction\",\"bassStaffProperties\",\"beamExceptions\",\"beatGrouping\",\"beatLength\",\"beatStructure\",\"chordChanges\",\"chordNameExceptions\",\"chordNameExceptionsFull\",\"chordNameExceptionsPartial\",\"chordNameFunction\",\"chordNameSeparator\",\"chordNoteNamer\",\"chordPrefixSpacer\",\"chordRootNamer\",\"clefGlyph\",\"clefOctavation\",\"clefPosition\",\"connectArpeggios\",\"countPercentRepeats\",\"createKeyOnClefChange\",\"createSpacing\",\"crescendoSpanner\",\"crescendoText\",\"currentBarNumber\",\"decrescendoSpanner\",\"decrescendoText\",\"defaultBarType\",\"doubleRepeatType\",\"doubleSlurs\",\"drumPitchTable\",\"drumStyleTable\",\"dynamicAbsoluteVolumeFunction\",\"explicitClefVisibility\",\"explicitKeySignatureVisibility\",\"extendersOverRests\",\"extraNatural\",\"figuredBassAlterationDirection\",\"figuredBassCenterContinuations\",\"figuredBassFormatter\",\"figuredBassPlusDirection\",\"fingeringOrientations\",\"firstClef\",\"followVoice\",\"fontSize\",\"forbidBreak\",\"forceClef\",\"gridInterval\",\"hairpinToBarline\",\"harmonicAccidentals\",\"highStringOne\",\"ignoreBarChecks\",\"ignoreFiguredBassRest\",\"ignoreMelismata\",\"implicitBassFigures\",\"implicitTimeSignatureVisibility\",\"instrumentCueName\",\"instrumentEqualizer\",\"instrumentName\",\"instrumentTransposition\",\"internalBarNumber\",\"keepAliveInterfaces\",\"keyAlterationOrder\",\"keySignature\",\"lyricMelismaAlignment\",\"majorSevenSymbol\",\"markFormatter\",\"maximumFretStretch\",\"measureLength\",\"measurePosition\",\"melismaBusyProperties\",\"metronomeMarkFormatter\",\"middleCClefPosition\",\"middleCOffset\",\"middleCPosition\",\"midiInstrument\",\"midiMaximumVolume\",\"midiMinimumVolume\",\"minimumFret\",\"minimumPageTurnLength\",\"minimumRepeatLengthForPageTurn\",\"noteToFretFunction\",\"ottavation\",\"output\",\"pedalSostenutoStrings\",\"pedalSostenutoStyle\",\"pedalSustainStrings\",\"pedalSustainStyle\",\"pedalUnaCordaStrings\",\"pedalUnaCordaStyle\",\"printKeyCancellation\",\"printOctaveNames\",\"printPartCombineTexts\",\"proportionalNotationDuration\",\"recordEventSequence\",\"rehearsalMark\",\"repeatCommands\",\"restNumberThreshold\",\"scriptDefinitions\",\"shapeNoteStyles\",\"shortInstrumentName\",\"shortVocalName\",\"skipBars\",\"skipTypesetting\",\"soloIIText\",\"soloText\",\"squashedPosition\",\"staffLineLayoutFunction\",\"stanza\",\"stemLeftBeamCount\",\"stemRightBeamCount\",\"stringNumberOrientations\",\"stringOneTopmost\",\"stringTunings\",\"strokeFingerOrientations\",\"subdivideBeams\",\"suggestAccidentals\",\"systemStartDelimiter\",\"systemStartDelimiterHierarchy\",\"tablatureFormat\",\"tempoUnitCount\",\"tempoUnitDuration\",\"tempoWholesPerMinute\",\"tieWaitForNote\",\"timeSignatureFraction\",\"timing\",\"tonic\",\"topLevelAlignment\",\"trebleStaffProperties\",\"tremoloFlags\",\"tupletFullLength\",\"tupletFullLengthNote\",\"tupletSpannerDuration\",\"useBassFigureExtenders\",\"verticallySpacedContexts\",\"vocalName\",\"voltaOnThisStaff\",\"voltaSpannerDuration\",\"whichBar\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&'()*+,-./0123456789:;<=>?[\\\\]^_{|}~\"}) (CaseSensitiveWords (fromList [\"barNumberAlignSymbol\",\"centralCPosition\",\"extraVerticalExtent\",\"fingerHorizontalDirection\",\"instr\",\"instrument\",\"keyAccidentalOrder\",\"minimumVerticalExtent\",\"rehearsalMarkAlignSymbol\",\"soloADue\",\"tupletNumberFormatFunction\",\"vocNam\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[A-Za-z]+\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"string\",Context {cName = \"string\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\"', 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}),(\"tempo\",Context {cName = \"tempo\", cSyntax = \"LilyPond\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\markup(lines)?(?![A-Za-z])\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LilyPond\",\"markup\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\d+\\\\.*\\\\s*=\\\\s*\\\\d+\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"LilyPond\",\"basic\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False})], sAuthor = \"Wilbert Berendsen (info@wilbertberendsen.nl)\", sVersion = \"4\", sLicense = \"LGPL\", sExtensions = [\"*.ly\",\"*.LY\",\"*.ily\",\"*.ILY\",\"*.lyi\",\"*.LYI\"], sStartingContext = \"lilypond\"}"
diff --git a/src/Skylighting/Syntax/LiterateCurry.hs b/src/Skylighting/Syntax/LiterateCurry.hs
--- a/src/Skylighting/Syntax/LiterateCurry.hs
+++ b/src/Skylighting/Syntax/LiterateCurry.hs
@@ -2,272 +2,6 @@
 module Skylighting.Syntax.LiterateCurry (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Literate Curry"
-  , sFilename = "literate-curry.xml"
-  , sShortname = "LiterateCurry"
-  , sContexts =
-      fromList
-        [ ( "Code"
-          , Context
-              { cName = "Code"
-              , cSyntax = "Literate Curry"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\{-[^#]"
-                              , reCompiled = Just (compileRegex True "\\{-[^#]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Literate Curry" , "multiline" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Curry" , "" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Text"
-          , Context
-              { cName = "Text"
-              , cSyntax = "Literate Curry"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Literate Curry" , "Code" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Literate Curry" , "Code" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\\begin{code}"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Literate Curry" , "normals" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\\begin{spec}"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Literate Curry" , "normals" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "lineend"
-          , Context
-              { cName = "lineend"
-              , cSyntax = "Literate Curry"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Literate Curry" , "restart" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Literate Curry" , "restart" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "multiline"
-          , Context
-              { cName = "multiline"
-              , cSyntax = "Literate Curry"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '-' '}'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "Literate Curry" , "lineend" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "normals"
-          , Context
-              { cName = "normals"
-              , cSyntax = "Literate Curry"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "\\end{code}"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\\end{spec}"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Curry" , "" )
-                      , 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
-              }
-          )
-        , ( "restart"
-          , Context
-              { cName = "restart"
-              , cSyntax = "Literate Curry"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '-' '}'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Bj\246rn Peem\246ller (bjp@informatik.uni-kiel.de)"
-  , sVersion = "1"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.lcurry" ]
-  , sStartingContext = "Text"
-  }
+syntax = read $! "Syntax {sName = \"Literate Curry\", sFilename = \"literate-curry.xml\", sShortname = \"LiterateCurry\", sContexts = fromList [(\"Code\",Context {cName = \"Code\", cSyntax = \"Literate Curry\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\{-[^#]\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Literate Curry\",\"multiline\")]},Rule {rMatcher = IncludeRules (\"Curry\",\"\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Text\",Context {cName = \"Text\", cSyntax = \"Literate Curry\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Literate Curry\",\"Code\")]},Rule {rMatcher = DetectChar '<', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Literate Curry\",\"Code\")]},Rule {rMatcher = StringDetect \"\\\\begin{code}\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Literate Curry\",\"normals\")]},Rule {rMatcher = StringDetect \"\\\\begin{spec}\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Literate Curry\",\"normals\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"lineend\",Context {cName = \"lineend\", cSyntax = \"Literate Curry\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Literate Curry\",\"restart\")]},Rule {rMatcher = DetectChar '<', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Literate Curry\",\"restart\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"multiline\",Context {cName = \"multiline\", cSyntax = \"Literate Curry\", cRules = [Rule {rMatcher = Detect2Chars '-' '}', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Push (\"Literate Curry\",\"lineend\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"normals\",Context {cName = \"normals\", cSyntax = \"Literate Curry\", cRules = [Rule {rMatcher = StringDetect \"\\\\end{code}\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"\\\\end{spec}\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Curry\",\"\"), 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}),(\"restart\",Context {cName = \"restart\", cSyntax = \"Literate Curry\", cRules = [Rule {rMatcher = Detect2Chars '-' '}', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Bj\\246rn Peem\\246ller (bjp@informatik.uni-kiel.de)\", sVersion = \"1\", sLicense = \"LGPL\", sExtensions = [\"*.lcurry\"], sStartingContext = \"Text\"}"
diff --git a/src/Skylighting/Syntax/LiterateHaskell.hs b/src/Skylighting/Syntax/LiterateHaskell.hs
--- a/src/Skylighting/Syntax/LiterateHaskell.hs
+++ b/src/Skylighting/Syntax/LiterateHaskell.hs
@@ -2,272 +2,6 @@
 module Skylighting.Syntax.LiterateHaskell (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Literate Haskell"
-  , sFilename = "literate-haskell.xml"
-  , sShortname = "LiterateHaskell"
-  , sContexts =
-      fromList
-        [ ( "comments'"
-          , Context
-              { cName = "comments'"
-              , cSyntax = "Literate Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '-' '}'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "Literate Haskell" , "uncomments" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "normal"
-          , Context
-              { cName = "normal"
-              , cSyntax = "Literate Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\{-[^#]"
-                              , reCompiled = Just (compileRegex True "\\{-[^#]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Literate Haskell" , "comments'" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Haskell" , "" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "normals"
-          , Context
-              { cName = "normals"
-              , cSyntax = "Literate Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "\\end{code}"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\\end{spec}"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Haskell" , "" )
-                      , 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
-              }
-          )
-        , ( "recomments"
-          , Context
-              { cName = "recomments"
-              , cSyntax = "Literate Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '-' '}'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "text"
-          , Context
-              { cName = "text"
-              , cSyntax = "Literate Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Literate Haskell" , "normal" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Literate Haskell" , "normal" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\\begin{code}"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Literate Haskell" , "normals" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\\begin{spec}"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Literate Haskell" , "normals" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "uncomments"
-          , Context
-              { cName = "uncomments"
-              , cSyntax = "Literate Haskell"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Literate Haskell" , "recomments" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Literate Haskell" , "recomments" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Nicolas Wu (zenzike@gmail.com)"
-  , sVersion = "3"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.lhs" ]
-  , sStartingContext = "text"
-  }
+syntax = read $! "Syntax {sName = \"Literate Haskell\", sFilename = \"literate-haskell.xml\", sShortname = \"LiterateHaskell\", sContexts = fromList [(\"comments'\",Context {cName = \"comments'\", cSyntax = \"Literate Haskell\", cRules = [Rule {rMatcher = Detect2Chars '-' '}', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Push (\"Literate Haskell\",\"uncomments\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"normal\",Context {cName = \"normal\", cSyntax = \"Literate Haskell\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\{-[^#]\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Literate Haskell\",\"comments'\")]},Rule {rMatcher = IncludeRules (\"Haskell\",\"\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"normals\",Context {cName = \"normals\", cSyntax = \"Literate Haskell\", cRules = [Rule {rMatcher = StringDetect \"\\\\end{code}\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"\\\\end{spec}\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Haskell\",\"\"), 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}),(\"recomments\",Context {cName = \"recomments\", cSyntax = \"Literate Haskell\", cRules = [Rule {rMatcher = Detect2Chars '-' '}', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"text\",Context {cName = \"text\", cSyntax = \"Literate Haskell\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Literate Haskell\",\"normal\")]},Rule {rMatcher = DetectChar '<', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Literate Haskell\",\"normal\")]},Rule {rMatcher = StringDetect \"\\\\begin{code}\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Literate Haskell\",\"normals\")]},Rule {rMatcher = StringDetect \"\\\\begin{spec}\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Literate Haskell\",\"normals\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"uncomments\",Context {cName = \"uncomments\", cSyntax = \"Literate Haskell\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Literate Haskell\",\"recomments\")]},Rule {rMatcher = DetectChar '<', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Literate Haskell\",\"recomments\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Nicolas Wu (zenzike@gmail.com)\", sVersion = \"3\", sLicense = \"LGPL\", sExtensions = [\"*.lhs\"], sStartingContext = \"text\"}"
diff --git a/src/Skylighting/Syntax/Llvm.hs b/src/Skylighting/Syntax/Llvm.hs
--- a/src/Skylighting/Syntax/Llvm.hs
+++ b/src/Skylighting/Syntax/Llvm.hs
@@ -2,665 +2,6 @@
 module Skylighting.Syntax.Llvm (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "LLVM"
-  , sFilename = "llvm.xml"
-  , sShortname = "Llvm"
-  , sContexts =
-      fromList
-        [ ( "comment"
-          , Context
-              { cName = "comment"
-              , cSyntax = "LLVM"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "llvm"
-          , Context
-              { cName = "llvm"
-              , cSyntax = "LLVM"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "@%"
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LLVM" , "symbol" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ';'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LLVM" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LLVM" , "string" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "i[0-9]+"
-                              , reCompiled = Just (compileRegex True "i[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 = "[-a-zA-Z$._][-a-zA-Z$._0-9]*:"
-                              , reCompiled =
-                                  Just (compileRegex True "[-a-zA-Z$._][-a-zA-Z$._0-9]*:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "alias"
-                               , "align"
-                               , "alignstack"
-                               , "asm"
-                               , "begin"
-                               , "blockaddress"
-                               , "constant"
-                               , "datalayout"
-                               , "declare"
-                               , "define"
-                               , "end"
-                               , "false"
-                               , "gc"
-                               , "global"
-                               , "inbounds"
-                               , "module"
-                               , "nsw"
-                               , "null"
-                               , "nuw"
-                               , "sideeffect"
-                               , "tail"
-                               , "target"
-                               , "to"
-                               , "triple"
-                               , "true"
-                               , "type"
-                               , "undef"
-                               , "unwind"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "appending"
-                               , "available_externally"
-                               , "common"
-                               , "dllexport"
-                               , "dllimport"
-                               , "extern_weak"
-                               , "internal"
-                               , "linkonce"
-                               , "linkonce_odr"
-                               , "private"
-                               , "weak"
-                               , "weak_odr"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "cc" , "ccc" , "coldcc" , "fastcc" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "default" , "hidden" , "protected" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "byval"
-                               , "inreg"
-                               , "nest"
-                               , "noalias"
-                               , "nocapture"
-                               , "signext"
-                               , "sret"
-                               , "zeroext"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "alignstack"
-                               , "alwaysinline"
-                               , "inlinehint"
-                               , "naked"
-                               , "noimplicitfloat"
-                               , "noinline"
-                               , "noredzone"
-                               , "noreturn"
-                               , "nounwind"
-                               , "optnone"
-                               , "optsize"
-                               , "readnone"
-                               , "readonly"
-                               , "ssp"
-                               , "sspreq"
-                               , "sspstrong"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "double"
-                               , "float"
-                               , "fp128"
-                               , "label"
-                               , "metadata"
-                               , "opaque"
-                               , "ppc_fp128"
-                               , "void"
-                               , "x86_fp80"
-                               , "x86mmx"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "llvm.compiler.used"
-                               , "llvm.global_ctors"
-                               , "llvm.global_dtors"
-                               , "llvm.used"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "add"
-                               , "addrspacecast"
-                               , "alloca"
-                               , "and"
-                               , "ashr"
-                               , "bitcast"
-                               , "br"
-                               , "call"
-                               , "extractelement"
-                               , "extractvalue"
-                               , "fadd"
-                               , "fcmp"
-                               , "fdiv"
-                               , "fmul"
-                               , "fpext"
-                               , "fptosi"
-                               , "fptoui"
-                               , "fptrunc"
-                               , "frem"
-                               , "fsub"
-                               , "getelementptr"
-                               , "icmp"
-                               , "indirectbr"
-                               , "insertelement"
-                               , "insertvalue"
-                               , "inttoptr"
-                               , "invoke"
-                               , "load"
-                               , "lshr"
-                               , "mul"
-                               , "or"
-                               , "phi"
-                               , "ptrtoint"
-                               , "ret"
-                               , "sdiv"
-                               , "select"
-                               , "sext"
-                               , "shl"
-                               , "shufflevector"
-                               , "sitofp"
-                               , "srem"
-                               , "store"
-                               , "sub"
-                               , "switch"
-                               , "trunc"
-                               , "udiv"
-                               , "uitofp"
-                               , "unreachable"
-                               , "unwind"
-                               , "urem"
-                               , "va_arg"
-                               , "xor"
-                               , "zext"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "eq"
-                               , "ne"
-                               , "oeq"
-                               , "oge"
-                               , "ogt"
-                               , "ole"
-                               , "olt"
-                               , "one"
-                               , "ord"
-                               , "sge"
-                               , "sgt"
-                               , "sle"
-                               , "slt"
-                               , "ueq"
-                               , "uge"
-                               , "ugt"
-                               , "ule"
-                               , "ult"
-                               , "une"
-                               , "uno"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "string"
-          , Context
-              { cName = "string"
-              , cSyntax = "LLVM"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "symbol"
-          , Context
-              { cName = "symbol"
-              , cSyntax = "LLVM"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "LLVM" , "symbol-string" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([-a-zA-Z$._][-a-zA-Z$._0-9]*|[0-9]+)"
-                              , reCompiled =
-                                  Just (compileRegex True "([-a-zA-Z$._][-a-zA-Z$._0-9]*|[0-9]+)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "symbol-string"
-          , Context
-              { cName = "symbol-string"
-              , cSyntax = "LLVM"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "LLVM Team"
-  , sVersion = "1.00"
-  , sLicense = "LLVM Release License"
-  , sExtensions = [ "*.ll" ]
-  , sStartingContext = "llvm"
-  }
+syntax = read $! "Syntax {sName = \"LLVM\", sFilename = \"llvm.xml\", sShortname = \"Llvm\", sContexts = fromList [(\"comment\",Context {cName = \"comment\", cSyntax = \"LLVM\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},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 = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"llvm\",Context {cName = \"llvm\", cSyntax = \"LLVM\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"@%\", rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LLVM\",\"symbol\")]},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ';', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LLVM\",\"comment\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LLVM\",\"string\")]},Rule {rMatcher = RegExpr (RE {reString = \"i[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 = \"[-a-zA-Z$._][-a-zA-Z$._0-9]*:\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"alias\",\"align\",\"alignstack\",\"asm\",\"begin\",\"blockaddress\",\"constant\",\"datalayout\",\"declare\",\"define\",\"end\",\"false\",\"gc\",\"global\",\"inbounds\",\"module\",\"nsw\",\"null\",\"nuw\",\"sideeffect\",\"tail\",\"target\",\"to\",\"triple\",\"true\",\"type\",\"undef\",\"unwind\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"appending\",\"available_externally\",\"common\",\"dllexport\",\"dllimport\",\"extern_weak\",\"internal\",\"linkonce\",\"linkonce_odr\",\"private\",\"weak\",\"weak_odr\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"cc\",\"ccc\",\"coldcc\",\"fastcc\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"default\",\"hidden\",\"protected\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"byval\",\"inreg\",\"nest\",\"noalias\",\"nocapture\",\"signext\",\"sret\",\"zeroext\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"alignstack\",\"alwaysinline\",\"inlinehint\",\"naked\",\"noimplicitfloat\",\"noinline\",\"noredzone\",\"noreturn\",\"nounwind\",\"optnone\",\"optsize\",\"readnone\",\"readonly\",\"ssp\",\"sspreq\",\"sspstrong\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"double\",\"float\",\"fp128\",\"label\",\"metadata\",\"opaque\",\"ppc_fp128\",\"void\",\"x86_fp80\",\"x86mmx\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"llvm.compiler.used\",\"llvm.global_ctors\",\"llvm.global_dtors\",\"llvm.used\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"add\",\"addrspacecast\",\"alloca\",\"and\",\"ashr\",\"bitcast\",\"br\",\"call\",\"extractelement\",\"extractvalue\",\"fadd\",\"fcmp\",\"fdiv\",\"fmul\",\"fpext\",\"fptosi\",\"fptoui\",\"fptrunc\",\"frem\",\"fsub\",\"getelementptr\",\"icmp\",\"indirectbr\",\"insertelement\",\"insertvalue\",\"inttoptr\",\"invoke\",\"load\",\"lshr\",\"mul\",\"or\",\"phi\",\"ptrtoint\",\"ret\",\"sdiv\",\"select\",\"sext\",\"shl\",\"shufflevector\",\"sitofp\",\"srem\",\"store\",\"sub\",\"switch\",\"trunc\",\"udiv\",\"uitofp\",\"unreachable\",\"unwind\",\"urem\",\"va_arg\",\"xor\",\"zext\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"eq\",\"ne\",\"oeq\",\"oge\",\"ogt\",\"ole\",\"olt\",\"one\",\"ord\",\"sge\",\"sgt\",\"sle\",\"slt\",\"ueq\",\"uge\",\"ugt\",\"ule\",\"ult\",\"une\",\"uno\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"string\",Context {cName = \"string\", cSyntax = \"LLVM\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"symbol\",Context {cName = \"symbol\", cSyntax = \"LLVM\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"LLVM\",\"symbol-string\")]},Rule {rMatcher = RegExpr (RE {reString = \"([-a-zA-Z$._][-a-zA-Z$._0-9]*|[0-9]+)\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"symbol-string\",Context {cName = \"symbol-string\", cSyntax = \"LLVM\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"LLVM Team\", sVersion = \"1.00\", sLicense = \"LLVM Release License\", sExtensions = [\"*.ll\"], sStartingContext = \"llvm\"}"
diff --git a/src/Skylighting/Syntax/Lua.hs b/src/Skylighting/Syntax/Lua.hs
--- a/src/Skylighting/Syntax/Lua.hs
+++ b/src/Skylighting/Syntax/Lua.hs
@@ -2,1064 +2,6 @@
 module Skylighting.Syntax.Lua (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Lua"
-  , sFilename = "lua.xml"
-  , sShortname = "Lua"
-  , sContexts =
-      fromList
-        [ ( "Block Comment"
-          , Context
-              { cName = "Block Comment"
-              , cSyntax = "Lua"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\]%1\\]"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '-' '-'
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "FIXME" , "NOTE" , "TODO" ])
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "Lua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '-' '-'
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "FIXME" , "NOTE" , "TODO" ])
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Error"
-          , Context
-              { cName = "Error"
-              , cSyntax = "Lua"
-              , cRules = []
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Lua"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "DoxygenLua" , "" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "foreach" , "foreachi" , "table.foreach" , "table.foreachi" ])
-                      , rAttribute = ErrorTok
-                      , 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 =
-                          RegExpr
-                            RE
-                              { reString = "--\\[(=*)\\["
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Lua" , "Block Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '-' '-'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Lua" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[(=*)\\["
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Lua" , "String_block" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Lua" , "String_single" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Lua" , "String_double" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "LUA_PATH"
-                               , "_ALERT"
-                               , "_ERRORMESSAGE"
-                               , "_LOADED"
-                               , "_VERSION"
-                               , "abs"
-                               , "acos"
-                               , "appendto"
-                               , "ascii"
-                               , "asin"
-                               , "assert"
-                               , "atan"
-                               , "atan2"
-                               , "call"
-                               , "ceil"
-                               , "cgilua"
-                               , "cgilua.addclosefunction"
-                               , "cgilua.addopenfunction"
-                               , "cgilua.addscripthandler"
-                               , "cgilua.buildprocesshandler"
-                               , "cgilua.contentheader"
-                               , "cgilua.cookies"
-                               , "cgilua.cookies.delete"
-                               , "cgilua.cookies.get"
-                               , "cgilua.cookies.set"
-                               , "cgilua.cookies.sethtml"
-                               , "cgilua.doif"
-                               , "cgilua.doscript"
-                               , "cgilua.errorlog"
-                               , "cgilua.handlelp"
-                               , "cgilua.header"
-                               , "cgilua.htmlheader"
-                               , "cgilua.lp.compile"
-                               , "cgilua.lp.include"
-                               , "cgilua.lp.setcompatmode"
-                               , "cgilua.lp.setoutfunc"
-                               , "cgilua.lp.translate"
-                               , "cgilua.mkabsoluteurl"
-                               , "cgilua.mkurlpath"
-                               , "cgilua.pack"
-                               , "cgilua.put"
-                               , "cgilua.redirect"
-                               , "cgilua.script_file"
-                               , "cgilua.script_path"
-                               , "cgilua.script_pdir"
-                               , "cgilua.script_vdir"
-                               , "cgilua.script_vpath"
-                               , "cgilua.serialize"
-                               , "cgilua.servervariable"
-                               , "cgilua.session"
-                               , "cgilua.session.close"
-                               , "cgilua.session.data"
-                               , "cgilua.session.delete"
-                               , "cgilua.session.load"
-                               , "cgilua.session.new"
-                               , "cgilua.session.open"
-                               , "cgilua.session.save"
-                               , "cgilua.session.setsessiondir"
-                               , "cgilua.seterrorhandler"
-                               , "cgilua.seterroroutput"
-                               , "cgilua.setmaxfilesize"
-                               , "cgilua.setmaxinput"
-                               , "cgilua.setoutfunc"
-                               , "cgilua.splitpath"
-                               , "cgilua.urlcode.encodetable"
-                               , "cgilua.urlcode.escape"
-                               , "cgilua.urlcode.insertfield"
-                               , "cgilua.urlcode.parsequery"
-                               , "cgilua.urlcode.unescape"
-                               , "cgilua.urlpath"
-                               , "clock"
-                               , "close"
-                               , "closefile"
-                               , "collectgarbage"
-                               , "commit"
-                               , "connect"
-                               , "copytagmethods"
-                               , "cos"
-                               , "date"
-                               , "debug.gethook"
-                               , "debug.getinfo"
-                               , "debug.getlocal"
-                               , "debug.sethook"
-                               , "debug.setlocal"
-                               , "deg"
-                               , "dofile"
-                               , "dostring"
-                               , "error"
-                               , "execute"
-                               , "exit"
-                               , "exp"
-                               , "fetch"
-                               , "files"
-                               , "floor"
-                               , "flush"
-                               , "foreach"
-                               , "foreachi"
-                               , "format"
-                               , "frexp"
-                               , "gcinfo"
-                               , "getcolnames"
-                               , "getcoltypes"
-                               , "getenv"
-                               , "getglobal"
-                               , "getglobals"
-                               , "getinfo"
-                               , "getlocal"
-                               , "getmetatable"
-                               , "getn"
-                               , "gettagmethod"
-                               , "globals"
-                               , "gsub"
-                               , "io.close"
-                               , "io.flush"
-                               , "io.input"
-                               , "io.lines"
-                               , "io.open"
-                               , "io.output"
-                               , "io.read"
-                               , "io.stderr"
-                               , "io.stdin"
-                               , "io.stdout"
-                               , "io.tmpfile"
-                               , "io.write"
-                               , "ipairs"
-                               , "ldexp"
-                               , "lfs"
-                               , "lfs.attributes"
-                               , "lfs.chdir"
-                               , "lfs.currentdir"
-                               , "lfs.dir"
-                               , "lfs.lock"
-                               , "lfs.mkdir"
-                               , "lfs.rmdir"
-                               , "lfs.touch"
-                               , "lfs.unlock"
-                               , "lines"
-                               , "loadfile"
-                               , "loadstring"
-                               , "log"
-                               , "log10"
-                               , "math.abs"
-                               , "math.acos"
-                               , "math.asin"
-                               , "math.atan"
-                               , "math.atan2"
-                               , "math.ceil"
-                               , "math.cos"
-                               , "math.deg"
-                               , "math.exp"
-                               , "math.floor"
-                               , "math.frexp"
-                               , "math.ldexp"
-                               , "math.log"
-                               , "math.log10"
-                               , "math.max"
-                               , "math.min"
-                               , "math.mod"
-                               , "math.rad"
-                               , "math.random"
-                               , "math.randomseed"
-                               , "math.sin"
-                               , "math.squrt"
-                               , "math.tan"
-                               , "max"
-                               , "min"
-                               , "mod"
-                               , "newtag"
-                               , "next"
-                               , "numrows"
-                               , "openfile"
-                               , "os.clock"
-                               , "os.date"
-                               , "os.difftime"
-                               , "os.execute"
-                               , "os.exit"
-                               , "os.getenv"
-                               , "os.remove"
-                               , "os.rename"
-                               , "os.setlocale"
-                               , "os.time"
-                               , "os.tmpname"
-                               , "pairs"
-                               , "pcall"
-                               , "print"
-                               , "rad"
-                               , "random"
-                               , "randomseed"
-                               , "rawget"
-                               , "rawset"
-                               , "read"
-                               , "readfrom"
-                               , "remove"
-                               , "rename"
-                               , "require"
-                               , "rollback"
-                               , "seek"
-                               , "setautocommit"
-                               , "setcallhook"
-                               , "setglobal"
-                               , "setglobals"
-                               , "setlinehook"
-                               , "setlocal"
-                               , "setlocale"
-                               , "setmetatable"
-                               , "settag"
-                               , "settagmethod"
-                               , "sin"
-                               , "sort"
-                               , "squrt"
-                               , "strbyte"
-                               , "strchar"
-                               , "strfind"
-                               , "string.byte"
-                               , "string.char"
-                               , "string.find"
-                               , "string.format"
-                               , "string.gfind"
-                               , "string.gsub"
-                               , "string.len"
-                               , "string.lower"
-                               , "string.rep"
-                               , "string.sub"
-                               , "string.upper"
-                               , "strlen"
-                               , "strlower"
-                               , "strrep"
-                               , "strsub"
-                               , "strupper"
-                               , "table.concat"
-                               , "table.foreach"
-                               , "table.foreachi"
-                               , "table.getn"
-                               , "table.insert"
-                               , "table.remove"
-                               , "table.setn"
-                               , "table.sort"
-                               , "tag"
-                               , "tan"
-                               , "tinsert"
-                               , "tmpname"
-                               , "tonumber"
-                               , "tostring"
-                               , "tremove"
-                               , "type"
-                               , "unpack"
-                               , "write"
-                               , "writeto"
-                               , "zip"
-                               , "zip.open"
-                               , "zip.openfile"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bfunction\\b"
-                              , reCompiled = Just (compileRegex True "\\bfunction\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True [ "and" , "function" , "in" , "local" , "not" , "or" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "false" , "nil" , "true" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\belse\\b"
-                              , reCompiled = Just (compileRegex True "\\belse\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\belseif\\b"
-                              , reCompiled = Just (compileRegex True "\\belseif\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bdo\\b"
-                              , reCompiled = Just (compileRegex True "\\bdo\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bif\\b"
-                              , reCompiled = Just (compileRegex True "\\bif\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bend\\b"
-                              , reCompiled = Just (compileRegex True "\\bend\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "break"
-                               , "do"
-                               , "else"
-                               , "elseif"
-                               , "end"
-                               , "for"
-                               , "if"
-                               , "repeat"
-                               , "return"
-                               , "then"
-                               , "until"
-                               , "while"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b\\d*\\.?\\d*(e|e\\-|e\\+)?\\d+\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b\\d*\\.?\\d*(e|e\\-|e\\+)?\\d+\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b-?0[xX][0-9a-fA-F]+\\b"
-                              , reCompiled = Just (compileRegex True "\\b-?0[xX][0-9a-fA-F]+\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[a-zA-Z_][a-zA-Z0-9_]*(?=\\s*([({'\"]|\\[\\[))\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\b[a-zA-Z_][a-zA-Z0-9_]*(?=\\s*([({'\"]|\\[\\[))\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[A-Z_][A-Z0-9_]*\\b"
-                              , reCompiled = Just (compileRegex True "\\b[A-Z_][A-Z0-9_]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[a-zA-Z_][a-zA-Z0-9_]*\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b[a-zA-Z_][a-zA-Z0-9_]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '!' '='
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '-' '='
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '+' '='
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '+' '+'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '.' '='
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "[]().,=~+-*/^><#;"
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String_block"
-          , Context
-              { cName = "String_block"
-              , cSyntax = "Lua"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(a|b|f|n|r|t|v|\\\\|\"|\\'|[|])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\(a|b|f|n|r|t|v|\\\\|\"|\\'|[|])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\]%1\\]"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "String_double"
-          , Context
-              { cName = "String_double"
-              , cSyntax = "Lua"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[abfnrtv'\"\\\\\\[\\]]"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\[abfnrtv'\"\\\\\\[\\]]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "Lua" , "Error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String_single"
-          , Context
-              { cName = "String_single"
-              , cSyntax = "Lua"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(a|b|f|n|r|t|v|\\\\|\"|\\'|[|])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\(a|b|f|n|r|t|v|\\\\|\"|\\'|[|])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "Lua" , "Error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = ""
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.lua" ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Lua\", sFilename = \"lua.xml\", sShortname = \"Lua\", sContexts = fromList [(\"Block Comment\",Context {cName = \"Block Comment\", cSyntax = \"Lua\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\]%1\\\\]\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '-' '-', rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"FIXME\",\"NOTE\",\"TODO\"])), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"Comment\",Context {cName = \"Comment\", cSyntax = \"Lua\", cRules = [Rule {rMatcher = Detect2Chars '-' '-', rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"FIXME\",\"NOTE\",\"TODO\"])), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Error\",Context {cName = \"Error\", cSyntax = \"Lua\", cRules = [], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Lua\", cRules = [Rule {rMatcher = IncludeRules (\"DoxygenLua\",\"\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"foreach\",\"foreachi\",\"table.foreach\",\"table.foreachi\"])), rAttribute = ErrorTok, 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 = RegExpr (RE {reString = \"--\\\\[(=*)\\\\[\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Lua\",\"Block Comment\")]},Rule {rMatcher = Detect2Chars '-' '-', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Lua\",\"Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[(=*)\\\\[\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Lua\",\"String_block\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Lua\",\"String_single\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Lua\",\"String_double\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"LUA_PATH\",\"_ALERT\",\"_ERRORMESSAGE\",\"_LOADED\",\"_VERSION\",\"abs\",\"acos\",\"appendto\",\"ascii\",\"asin\",\"assert\",\"atan\",\"atan2\",\"call\",\"ceil\",\"cgilua\",\"cgilua.addclosefunction\",\"cgilua.addopenfunction\",\"cgilua.addscripthandler\",\"cgilua.buildprocesshandler\",\"cgilua.contentheader\",\"cgilua.cookies\",\"cgilua.cookies.delete\",\"cgilua.cookies.get\",\"cgilua.cookies.set\",\"cgilua.cookies.sethtml\",\"cgilua.doif\",\"cgilua.doscript\",\"cgilua.errorlog\",\"cgilua.handlelp\",\"cgilua.header\",\"cgilua.htmlheader\",\"cgilua.lp.compile\",\"cgilua.lp.include\",\"cgilua.lp.setcompatmode\",\"cgilua.lp.setoutfunc\",\"cgilua.lp.translate\",\"cgilua.mkabsoluteurl\",\"cgilua.mkurlpath\",\"cgilua.pack\",\"cgilua.put\",\"cgilua.redirect\",\"cgilua.script_file\",\"cgilua.script_path\",\"cgilua.script_pdir\",\"cgilua.script_vdir\",\"cgilua.script_vpath\",\"cgilua.serialize\",\"cgilua.servervariable\",\"cgilua.session\",\"cgilua.session.close\",\"cgilua.session.data\",\"cgilua.session.delete\",\"cgilua.session.load\",\"cgilua.session.new\",\"cgilua.session.open\",\"cgilua.session.save\",\"cgilua.session.setsessiondir\",\"cgilua.seterrorhandler\",\"cgilua.seterroroutput\",\"cgilua.setmaxfilesize\",\"cgilua.setmaxinput\",\"cgilua.setoutfunc\",\"cgilua.splitpath\",\"cgilua.urlcode.encodetable\",\"cgilua.urlcode.escape\",\"cgilua.urlcode.insertfield\",\"cgilua.urlcode.parsequery\",\"cgilua.urlcode.unescape\",\"cgilua.urlpath\",\"clock\",\"close\",\"closefile\",\"collectgarbage\",\"commit\",\"connect\",\"copytagmethods\",\"cos\",\"date\",\"debug.gethook\",\"debug.getinfo\",\"debug.getlocal\",\"debug.sethook\",\"debug.setlocal\",\"deg\",\"dofile\",\"dostring\",\"error\",\"execute\",\"exit\",\"exp\",\"fetch\",\"files\",\"floor\",\"flush\",\"foreach\",\"foreachi\",\"format\",\"frexp\",\"gcinfo\",\"getcolnames\",\"getcoltypes\",\"getenv\",\"getglobal\",\"getglobals\",\"getinfo\",\"getlocal\",\"getmetatable\",\"getn\",\"gettagmethod\",\"globals\",\"gsub\",\"io.close\",\"io.flush\",\"io.input\",\"io.lines\",\"io.open\",\"io.output\",\"io.read\",\"io.stderr\",\"io.stdin\",\"io.stdout\",\"io.tmpfile\",\"io.write\",\"ipairs\",\"ldexp\",\"lfs\",\"lfs.attributes\",\"lfs.chdir\",\"lfs.currentdir\",\"lfs.dir\",\"lfs.lock\",\"lfs.mkdir\",\"lfs.rmdir\",\"lfs.touch\",\"lfs.unlock\",\"lines\",\"loadfile\",\"loadstring\",\"log\",\"log10\",\"math.abs\",\"math.acos\",\"math.asin\",\"math.atan\",\"math.atan2\",\"math.ceil\",\"math.cos\",\"math.deg\",\"math.exp\",\"math.floor\",\"math.frexp\",\"math.ldexp\",\"math.log\",\"math.log10\",\"math.max\",\"math.min\",\"math.mod\",\"math.rad\",\"math.random\",\"math.randomseed\",\"math.sin\",\"math.squrt\",\"math.tan\",\"max\",\"min\",\"mod\",\"newtag\",\"next\",\"numrows\",\"openfile\",\"os.clock\",\"os.date\",\"os.difftime\",\"os.execute\",\"os.exit\",\"os.getenv\",\"os.remove\",\"os.rename\",\"os.setlocale\",\"os.time\",\"os.tmpname\",\"pairs\",\"pcall\",\"print\",\"rad\",\"random\",\"randomseed\",\"rawget\",\"rawset\",\"read\",\"readfrom\",\"remove\",\"rename\",\"require\",\"rollback\",\"seek\",\"setautocommit\",\"setcallhook\",\"setglobal\",\"setglobals\",\"setlinehook\",\"setlocal\",\"setlocale\",\"setmetatable\",\"settag\",\"settagmethod\",\"sin\",\"sort\",\"squrt\",\"strbyte\",\"strchar\",\"strfind\",\"string.byte\",\"string.char\",\"string.find\",\"string.format\",\"string.gfind\",\"string.gsub\",\"string.len\",\"string.lower\",\"string.rep\",\"string.sub\",\"string.upper\",\"strlen\",\"strlower\",\"strrep\",\"strsub\",\"strupper\",\"table.concat\",\"table.foreach\",\"table.foreachi\",\"table.getn\",\"table.insert\",\"table.remove\",\"table.setn\",\"table.sort\",\"tag\",\"tan\",\"tinsert\",\"tmpname\",\"tonumber\",\"tostring\",\"tremove\",\"type\",\"unpack\",\"write\",\"writeto\",\"zip\",\"zip.open\",\"zip.openfile\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bfunction\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"and\",\"function\",\"in\",\"local\",\"not\",\"or\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"false\",\"nil\",\"true\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\belse\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\belseif\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bdo\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bif\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bend\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"break\",\"do\",\"else\",\"elseif\",\"end\",\"for\",\"if\",\"repeat\",\"return\",\"then\",\"until\",\"while\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b\\\\d*\\\\.?\\\\d*(e|e\\\\-|e\\\\+)?\\\\d+\\\\b\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b-?0[xX][0-9a-fA-F]+\\\\b\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[a-zA-Z_][a-zA-Z0-9_]*(?=\\\\s*([({'\\\"]|\\\\[\\\\[))\\\\b\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[A-Z_][A-Z0-9_]*\\\\b\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[a-zA-Z_][a-zA-Z0-9_]*\\\\b\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '!' '=', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '-' '=', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '+' '=', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '+' '+', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '.' '=', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"[]().,=~+-*/^><#;\", rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String_block\",Context {cName = \"String_block\", cSyntax = \"Lua\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(a|b|f|n|r|t|v|\\\\\\\\|\\\"|\\\\'|[|])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\]%1\\\\]\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"String_double\",Context {cName = \"String_double\", cSyntax = \"Lua\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[abfnrtv'\\\"\\\\\\\\\\\\[\\\\]]\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Push (\"Lua\",\"Error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String_single\",Context {cName = \"String_single\", cSyntax = \"Lua\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(a|b|f|n|r|t|v|\\\\\\\\|\\\"|\\\\'|[|])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Push (\"Lua\",\"Error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.lua\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/M4.hs b/src/Skylighting/Syntax/M4.hs
--- a/src/Skylighting/Syntax/M4.hs
+++ b/src/Skylighting/Syntax/M4.hs
@@ -2,381 +2,6 @@
 module Skylighting.Syntax.M4 (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "GNU M4"
-  , sFilename = "m4.xml"
-  , sShortname = "M4"
-  , sContexts =
-      fromList
-        [ ( "Normal Text"
-          , Context
-              { cName = "Normal Text"
-              , cSyntax = "GNU M4"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "__file__"
-                               , "__line__"
-                               , "__program__"
-                               , "builtin"
-                               , "changecom"
-                               , "changequote"
-                               , "changeword"
-                               , "debugfile"
-                               , "debugmode"
-                               , "decr"
-                               , "define"
-                               , "defn"
-                               , "divert"
-                               , "divnum"
-                               , "dnl"
-                               , "dumpdef"
-                               , "errprint"
-                               , "esyscmd"
-                               , "eval"
-                               , "format"
-                               , "ifdef"
-                               , "ifelse"
-                               , "include"
-                               , "incr"
-                               , "index"
-                               , "indir"
-                               , "len"
-                               , "m4exit"
-                               , "m4wrap"
-                               , "maketemp"
-                               , "mkstemp"
-                               , "patsubst"
-                               , "popdef"
-                               , "pushdef"
-                               , "regexp"
-                               , "shift"
-                               , "sinclude"
-                               , "substr"
-                               , "syscmd"
-                               , "sysval"
-                               , "traceoff"
-                               , "traceon"
-                               , "translit"
-                               , "undefine"
-                               , "undivert"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "m4___file__"
-                               , "m4___line__"
-                               , "m4___program__"
-                               , "m4_builtin"
-                               , "m4_changecom"
-                               , "m4_changequote"
-                               , "m4_changeword"
-                               , "m4_debugfile"
-                               , "m4_debugmode"
-                               , "m4_decr"
-                               , "m4_define"
-                               , "m4_defn"
-                               , "m4_divert"
-                               , "m4_divnum"
-                               , "m4_dnl"
-                               , "m4_dumpdef"
-                               , "m4_errprint"
-                               , "m4_esyscmd"
-                               , "m4_eval"
-                               , "m4_format"
-                               , "m4_ifdef"
-                               , "m4_ifelse"
-                               , "m4_include"
-                               , "m4_incr"
-                               , "m4_index"
-                               , "m4_indir"
-                               , "m4_len"
-                               , "m4_m4exit"
-                               , "m4_m4wrap"
-                               , "m4_maketemp"
-                               , "m4_mkstemp"
-                               , "m4_patsubst"
-                               , "m4_popdef"
-                               , "m4_pushdef"
-                               , "m4_regexp"
-                               , "m4_shift"
-                               , "m4_sinclude"
-                               , "m4_substr"
-                               , "m4_syscmd"
-                               , "m4_sysval"
-                               , "m4_traceoff"
-                               , "m4_traceon"
-                               , "m4_translit"
-                               , "m4_undefine"
-                               , "m4_undivert"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "__gnu__"
-                               , "__os2__"
-                               , "__unix__"
-                               , "__windows__"
-                               , "os2"
-                               , "unix"
-                               , "windows"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "m4___gnu__"
-                               , "m4___os2__"
-                               , "m4___unix__"
-                               , "m4___windows__"
-                               , "m4_os2"
-                               , "m4_unix"
-                               , "m4_windows"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z_]\\w+"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z_]\\w+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$([1-9]\\d*|0|\\#|\\*|\\@|\\{([1-9]\\d*|0)\\})"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\$([1-9]\\d*|0|\\#|\\*|\\@|\\{([1-9]\\d*|0)\\})")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([1-9]\\d*|0|0x[0-9abcdefABCDEF]+)"
-                              , reCompiled =
-                                  Just (compileRegex True "([1-9]\\d*|0|0x[0-9abcdefABCDEF]+)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#.*$"
-                              , reCompiled = Just (compileRegex True "#.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ','
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "GNU M4" , "inparenthesis" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = CharTok
-                      , 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 = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "inparenthesis"
-          , Context
-              { cName = "inparenthesis"
-              , cSyntax = "GNU M4"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "GNU M4" , "Normal Text" )
-                      , 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
-              }
-          )
-        ]
-  , sAuthor = "Jaak Ristioja"
-  , sVersion = "2"
-  , sLicense = "New BSD License"
-  , sExtensions = [ "*.m4" ]
-  , sStartingContext = "Normal Text"
-  }
+syntax = read $! "Syntax {sName = \"GNU M4\", sFilename = \"m4.xml\", sShortname = \"M4\", sContexts = fromList [(\"Normal Text\",Context {cName = \"Normal Text\", cSyntax = \"GNU M4\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"__file__\",\"__line__\",\"__program__\",\"builtin\",\"changecom\",\"changequote\",\"changeword\",\"debugfile\",\"debugmode\",\"decr\",\"define\",\"defn\",\"divert\",\"divnum\",\"dnl\",\"dumpdef\",\"errprint\",\"esyscmd\",\"eval\",\"format\",\"ifdef\",\"ifelse\",\"include\",\"incr\",\"index\",\"indir\",\"len\",\"m4exit\",\"m4wrap\",\"maketemp\",\"mkstemp\",\"patsubst\",\"popdef\",\"pushdef\",\"regexp\",\"shift\",\"sinclude\",\"substr\",\"syscmd\",\"sysval\",\"traceoff\",\"traceon\",\"translit\",\"undefine\",\"undivert\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"m4___file__\",\"m4___line__\",\"m4___program__\",\"m4_builtin\",\"m4_changecom\",\"m4_changequote\",\"m4_changeword\",\"m4_debugfile\",\"m4_debugmode\",\"m4_decr\",\"m4_define\",\"m4_defn\",\"m4_divert\",\"m4_divnum\",\"m4_dnl\",\"m4_dumpdef\",\"m4_errprint\",\"m4_esyscmd\",\"m4_eval\",\"m4_format\",\"m4_ifdef\",\"m4_ifelse\",\"m4_include\",\"m4_incr\",\"m4_index\",\"m4_indir\",\"m4_len\",\"m4_m4exit\",\"m4_m4wrap\",\"m4_maketemp\",\"m4_mkstemp\",\"m4_patsubst\",\"m4_popdef\",\"m4_pushdef\",\"m4_regexp\",\"m4_shift\",\"m4_sinclude\",\"m4_substr\",\"m4_syscmd\",\"m4_sysval\",\"m4_traceoff\",\"m4_traceon\",\"m4_translit\",\"m4_undefine\",\"m4_undivert\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"__gnu__\",\"__os2__\",\"__unix__\",\"__windows__\",\"os2\",\"unix\",\"windows\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"m4___gnu__\",\"m4___os2__\",\"m4___unix__\",\"m4___windows__\",\"m4_os2\",\"m4_unix\",\"m4_windows\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z_]\\\\w+\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$([1-9]\\\\d*|0|\\\\#|\\\\*|\\\\@|\\\\{([1-9]\\\\d*|0)\\\\})\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([1-9]\\\\d*|0|0x[0-9abcdefABCDEF]+)\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#.*$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ',', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"GNU M4\",\"inparenthesis\")]},Rule {rMatcher = DetectChar ')', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[+*/%\\\\|=\\\\!<>!^&~-]\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"inparenthesis\",Context {cName = \"inparenthesis\", cSyntax = \"GNU M4\", cRules = [Rule {rMatcher = IncludeRules (\"GNU M4\",\"Normal Text\"), 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})], sAuthor = \"Jaak Ristioja\", sVersion = \"2\", sLicense = \"New BSD License\", sExtensions = [\"*.m4\"], sStartingContext = \"Normal Text\"}"
diff --git a/src/Skylighting/Syntax/Makefile.hs b/src/Skylighting/Syntax/Makefile.hs
--- a/src/Skylighting/Syntax/Makefile.hs
+++ b/src/Skylighting/Syntax/Makefile.hs
@@ -2,2653 +2,6 @@
 module Skylighting.Syntax.Makefile (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Makefile"
-  , sFilename = "makefile.xml"
-  , sShortname = "Makefile"
-  , sContexts =
-      fromList
-        [ ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Modelines" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "assign"
-          , Context
-              { cName = "assign"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "value" ) ]
-                      }
-                  ]
-              , cAttribute = CharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "bmake_conditional"
-          , Context
-              { cName = "bmake_conditional"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Makefile" , "strings_and_vars" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True [ "commands" , "defined" , "empty" , "exists" , "target" ])
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "bmake_expression" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '&' '&'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '|' '|'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '!' '='
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '=' '='
-                      , rAttribute = KeywordTok
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "bmake_expression"
-          , Context
-              { cName = "bmake_expression"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Makefile" , "strings_and_vars" )
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "bmake_for_loop"
-          , Context
-              { cName = "bmake_for_loop"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Makefile" , "strings_and_vars" )
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = WordDetect "in"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "bmake_include"
-          , Context
-              { cName = "bmake_include"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '<' '>'
-                      , rAttribute = ImportTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '"' '"'
-                      , rAttribute = ImportTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "bmake_message"
-          , Context
-              { cName = "bmake_message"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "dollar" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "bmake_other_stmts"
-          , Context
-              { cName = "bmake_other_stmts"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Makefile" , "strings_and_vars" )
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "bmake_special_target"
-          , Context
-              { cName = "bmake_special_target"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ':'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Makefile" , "prereq" ) ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "Makefile" , "rule" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "bmake_var_modifier"
-          , Context
-              { cName = "bmake_var_modifier"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "dollar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "EHOQRTuLP"
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Makefile" , "expect}" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars 's' 'h'
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Makefile" , "expect}" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars 'O' 'x'
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Makefile" , "expect}" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars 't' 'A'
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Makefile" , "expect}" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars 't' 'L'
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Makefile" , "expect}" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "gmtime"
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Makefile" , "expect}" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "hash"
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Makefile" , "expect}" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "localtime"
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Makefile" , "expect}" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "MNDU"
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Pop , Push ( "Makefile" , "bmake_var_modifier_arg" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "SC"
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Pop , Push ( "Makefile" , "bmake_var_modifier_arg" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars ':' '='
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Pop , Push ( "Makefile" , "bmake_var_modifier_arg" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ":?="
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Pop , Push ( "Makefile" , "bmake_var_modifier_arg" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ":+="
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Pop , Push ( "Makefile" , "bmake_var_modifier_arg" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ":!="
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Pop , Push ( "Makefile" , "bmake_var_modifier_arg" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars 't' 'u'
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Pop , Push ( "Makefile" , "bmake_var_modifier_arg" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars 't' 'W'
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Pop , Push ( "Makefile" , "bmake_var_modifier_arg" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars 't' 'w'
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Pop , Push ( "Makefile" , "bmake_var_modifier_arg" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars 't' 's'
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Pop , Push ( "Makefile" , "bmake_var_modifier_arg" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ""
-                              , reCompiled = Just (compileRegex True "")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Makefile" , "bmake_var_modifier_arg" )
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext =
-                  [ Pop , Push ( "Makefile" , "bmake_var_modifier_arg" ) ]
-              , cDynamic = False
-              }
-          )
-        , ( "bmake_var_modifier_arg"
-          , Context
-              { cName = "bmake_var_modifier_arg"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "dollar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '}'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ':'
-                      , rAttribute = SpecialStringTok
-                      , 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 =
-                          [ Pop , Push ( "Makefile" , "bmake_var_modifier" ) ]
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "call("
-          , Context
-              { cName = "call("
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "abspath"
-                               , "addprefix"
-                               , "addsuffix"
-                               , "and"
-                               , "basename"
-                               , "call"
-                               , "dir"
-                               , "error"
-                               , "eval"
-                               , "filter"
-                               , "filter-out"
-                               , "findstring"
-                               , "firstword"
-                               , "flavor"
-                               , "foreach"
-                               , "if"
-                               , "info"
-                               , "join"
-                               , "lastword"
-                               , "notdir"
-                               , "or"
-                               , "origin"
-                               , "patsubst"
-                               , "realpath"
-                               , "shell"
-                               , "sort"
-                               , "strip"
-                               , "subst"
-                               , "suffix"
-                               , "value"
-                               , "warning"
-                               , "wildcard"
-                               , "word"
-                               , "wordlist"
-                               , "words"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "callFunc(" ) ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Push ( "Makefile" , "callVar(" ) ]
-              , cDynamic = False
-              }
-          )
-        , ( "callFunc("
-          , Context
-              { cName = "callFunc("
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "dollar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ','
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "string'" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "callFunc{"
-          , Context
-              { cName = "callFunc{"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "dollar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ','
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "string'" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "callVar("
-          , Context
-              { cName = "callVar("
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "dollar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "=#:"
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "callVar{"
-          , Context
-              { cName = "callVar{"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "dollar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ':'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Makefile" , "expect}" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Pop , Push ( "Makefile" , "bmake_var_modifier_arg" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ':'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "bmake_var_modifier" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "=#"
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "call{"
-          , Context
-              { cName = "call{"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "abspath"
-                               , "addprefix"
-                               , "addsuffix"
-                               , "and"
-                               , "basename"
-                               , "call"
-                               , "dir"
-                               , "error"
-                               , "eval"
-                               , "filter"
-                               , "filter-out"
-                               , "findstring"
-                               , "firstword"
-                               , "flavor"
-                               , "foreach"
-                               , "if"
-                               , "info"
-                               , "join"
-                               , "lastword"
-                               , "notdir"
-                               , "or"
-                               , "origin"
-                               , "patsubst"
-                               , "realpath"
-                               , "shell"
-                               , "sort"
-                               , "strip"
-                               , "subst"
-                               , "suffix"
-                               , "value"
-                               , "warning"
-                               , "wildcard"
-                               , "word"
-                               , "wordlist"
-                               , "words"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "callFunc{" ) ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Push ( "Makefile" , "callVar{" ) ]
-              , cDynamic = False
-              }
-          )
-        , ( "dollar"
-          , Context
-              { cName = "dollar"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "call(" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "call{" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "."
-                              , reCompiled = Just (compileRegex True ".")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "expect}"
-          , Context
-              { cName = "expect}"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '}'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop , Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gmake_else"
-          , Context
-              { cName = "gmake_else"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "if" , "ifdef" , "ifeq" , "ifndef" , "ifneq" ])
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Makefile" , "strings_and_vars" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "normal"
-          , Context
-              { cName = "normal"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True [ ".if" , ".ifdef" , ".ifmake" , ".ifndef" , ".ifnmake" ])
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "bmake_conditional" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ ".elif"
-                               , ".elifdef"
-                               , ".elifmake"
-                               , ".elifndef"
-                               , ".elifnmake"
-                               , ".else"
-                               ])
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "bmake_conditional" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ ".endif" ])
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "if" , "ifdef" , "ifeq" , "ifndef" , "ifneq" ])
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "else" ])
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "gmake_else" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "endif" ])
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "-include" , "define" , "endef" , "include" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ ".export"
-                               , ".export-env"
-                               , ".undef"
-                               , ".unexport"
-                               , ".unexport-env"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "bmake_other_stmts" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^\\s:?]*\\s*(?=:=|=|\\+=|\\?=)"
-                              , reCompiled =
-                                  Just (compileRegex True "[^\\s:?]*\\s*(?=:=|=|\\+=|\\?=)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "assign" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ ".BEGIN"
-                               , ".DEFAULT"
-                               , ".END"
-                               , ".ERROR"
-                               , ".IGNORE"
-                               , ".INTERRUPT"
-                               , ".MAIN"
-                               , ".MAKEFLAGS"
-                               , ".NOPATH"
-                               , ".NOTPARALLEL"
-                               , ".NO_PARALLEL"
-                               , ".OBJDIR"
-                               , ".ORDER"
-                               , ".PATH"
-                               , ".PHONY"
-                               , ".PRECIOUS"
-                               , ".SHELL"
-                               , ".SILENT"
-                               , ".STALE"
-                               , ".SUFFIXES"
-                               ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "bmake_special_target" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.PATH\\.[^:]*:"
-                              , reCompiled = Just (compileRegex True "\\.PATH\\.[^:]*:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "prereq" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ ".-include" , ".include" , ".sinclude" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "bmake_include" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ ".error" , ".info" , ".warning" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "bmake_message" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ ".for" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "bmake_for_loop" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ ".endfor" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.[^.][^:]*:"
-                              , reCompiled = Just (compileRegex True "\\.[^.][^:]*:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Makefile" , "prereq" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^:]*:"
-                              , reCompiled = Just (compileRegex True "[^:]*:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Makefile" , "prereq" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "string\"" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "string'" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "dollar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '#'
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "@-"
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "silent" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "prereq"
-          , Context
-              { cName = "prereq"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ ".EXEC"
-                               , ".IGNORE"
-                               , ".MADE"
-                               , ".MAKE"
-                               , ".META"
-                               , ".NOMETA"
-                               , ".NOMETA_CMP"
-                               , ".NOPATH"
-                               , ".NOTMAIN"
-                               , ".OPTIONAL"
-                               , ".PHONY"
-                               , ".PRECIOUS"
-                               , ".RECURSIVE"
-                               , ".SILENT"
-                               , ".USE"
-                               , ".USEBEFORE"
-                               , ".WAIT"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "dollar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '#'
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "Comment" ) ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "Makefile" , "rule" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "rule"
-          , Context
-              { cName = "rule"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = " +"
-                              , reCompiled = Just (compileRegex True " +")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^\\t]"
-                              , reCompiled = Just (compileRegex True "[^\\t]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = True
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "string\"" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "string'" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "dollar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '#'
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "@-"
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "silent" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "Comment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "silent"
-          , Context
-              { cName = "silent"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "string\"" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "string'" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "dollar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '#'
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "Comment" ) ]
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "string\""
-          , Context
-              { cName = "string\""
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "dollar" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "string'"
-          , Context
-              { cName = "string'"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "dollar" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "strings_and_vars"
-          , Context
-              { cName = "strings_and_vars"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "dollar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "string\"" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "string'" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "Comment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "value"
-          , Context
-              { cName = "value"
-              , cSyntax = "Makefile"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Makefile" , "dollar" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@[-_\\d\\w]*@"
-                              , reCompiled = Just (compileRegex True "@[-_\\d\\w]*@")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ';'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Per Wigren (wigren@home.se)"
-  , sVersion = "4"
-  , sLicense = ""
-  , sExtensions =
-      [ "GNUmakefile"
-      , "Makefile"
-      , "makefile"
-      , "GNUmakefile.*"
-      , "Makefile.*"
-      , "makefile.*"
-      , "*.mk"
-      ]
-  , sStartingContext = "normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Makefile\", sFilename = \"makefile.xml\", sShortname = \"Makefile\", sContexts = fromList [(\"Comment\",Context {cName = \"Comment\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = LineContinue, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Modelines\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"assign\",Context {cName = \"assign\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = DetectChar '=', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"value\")]}], cAttribute = CharTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"bmake_conditional\",Context {cName = \"bmake_conditional\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Makefile\",\"strings_and_vars\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"commands\",\"defined\",\"empty\",\"exists\",\"target\"])), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"bmake_expression\")]},Rule {rMatcher = Detect2Chars '&' '&', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '|' '|', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '!' '=', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '=' '=', rAttribute = KeywordTok, 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 = []},Rule {rMatcher = HlCHex, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = LineContinue, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"bmake_expression\",Context {cName = \"bmake_expression\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Makefile\",\"strings_and_vars\"), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectIdentifier, rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"bmake_for_loop\",Context {cName = \"bmake_for_loop\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Makefile\",\"strings_and_vars\"), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = WordDetect \"in\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"bmake_include\",Context {cName = \"bmake_include\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RangeDetect '<' '>', rAttribute = ImportTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RangeDetect '\"' '\"', rAttribute = ImportTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"bmake_message\",Context {cName = \"bmake_message\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = DetectChar '$', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"dollar\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"bmake_other_stmts\",Context {cName = \"bmake_other_stmts\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Makefile\",\"strings_and_vars\"), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"bmake_special_target\",Context {cName = \"bmake_special_target\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ':', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Makefile\",\"prereq\")]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Push (\"Makefile\",\"rule\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"bmake_var_modifier\",Context {cName = \"bmake_var_modifier\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = DetectChar '$', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"dollar\")]},Rule {rMatcher = AnyChar \"EHOQRTuLP\", rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Makefile\",\"expect}\")]},Rule {rMatcher = Detect2Chars 's' 'h', rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Makefile\",\"expect}\")]},Rule {rMatcher = Detect2Chars 'O' 'x', rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Makefile\",\"expect}\")]},Rule {rMatcher = Detect2Chars 't' 'A', rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Makefile\",\"expect}\")]},Rule {rMatcher = Detect2Chars 't' 'L', rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Makefile\",\"expect}\")]},Rule {rMatcher = StringDetect \"gmtime\", rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Makefile\",\"expect}\")]},Rule {rMatcher = StringDetect \"hash\", rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Makefile\",\"expect}\")]},Rule {rMatcher = StringDetect \"localtime\", rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Makefile\",\"expect}\")]},Rule {rMatcher = AnyChar \"MNDU\", rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Makefile\",\"bmake_var_modifier_arg\")]},Rule {rMatcher = AnyChar \"SC\", rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Makefile\",\"bmake_var_modifier_arg\")]},Rule {rMatcher = Detect2Chars ':' '=', rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Makefile\",\"bmake_var_modifier_arg\")]},Rule {rMatcher = StringDetect \":?=\", rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Makefile\",\"bmake_var_modifier_arg\")]},Rule {rMatcher = StringDetect \":+=\", rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Makefile\",\"bmake_var_modifier_arg\")]},Rule {rMatcher = StringDetect \":!=\", rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Makefile\",\"bmake_var_modifier_arg\")]},Rule {rMatcher = Detect2Chars 't' 'u', rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Makefile\",\"bmake_var_modifier_arg\")]},Rule {rMatcher = Detect2Chars 't' 'W', rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Makefile\",\"bmake_var_modifier_arg\")]},Rule {rMatcher = Detect2Chars 't' 'w', rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Makefile\",\"bmake_var_modifier_arg\")]},Rule {rMatcher = Detect2Chars 't' 's', rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Makefile\",\"bmake_var_modifier_arg\")]},Rule {rMatcher = RegExpr (RE {reString = \"\", reCaseSensitive = True}), rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Makefile\",\"bmake_var_modifier_arg\"), rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop,Push (\"Makefile\",\"bmake_var_modifier_arg\")], cDynamic = False}),(\"bmake_var_modifier_arg\",Context {cName = \"bmake_var_modifier_arg\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = DetectChar '$', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"dollar\")]},Rule {rMatcher = Detect2Chars '\\\\' '}', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop,Pop]},Rule {rMatcher = Detect2Chars '\\\\' ':', rAttribute = SpecialStringTok, 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 = [Pop,Push (\"Makefile\",\"bmake_var_modifier\")]}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"call(\",Context {cName = \"call(\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"abspath\",\"addprefix\",\"addsuffix\",\"and\",\"basename\",\"call\",\"dir\",\"error\",\"eval\",\"filter\",\"filter-out\",\"findstring\",\"firstword\",\"flavor\",\"foreach\",\"if\",\"info\",\"join\",\"lastword\",\"notdir\",\"or\",\"origin\",\"patsubst\",\"realpath\",\"shell\",\"sort\",\"strip\",\"subst\",\"suffix\",\"value\",\"warning\",\"wildcard\",\"word\",\"wordlist\",\"words\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"callFunc(\")]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Push (\"Makefile\",\"callVar(\")], cDynamic = False}),(\"callFunc(\",Context {cName = \"callFunc(\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = DetectChar '$', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"dollar\")]},Rule {rMatcher = DetectChar ',', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"string'\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"callFunc{\",Context {cName = \"callFunc{\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = DetectChar '$', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"dollar\")]},Rule {rMatcher = DetectChar ',', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"string'\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"callVar(\",Context {cName = \"callVar(\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = DetectChar '$', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"dollar\")]},Rule {rMatcher = DetectSpaces, rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"=#:\", rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"callVar{\",Context {cName = \"callVar{\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = DetectChar '$', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"dollar\")]},Rule {rMatcher = DetectSpaces, rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ':', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Makefile\",\"expect}\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Makefile\",\"bmake_var_modifier_arg\")]},Rule {rMatcher = DetectChar ':', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"bmake_var_modifier\")]},Rule {rMatcher = AnyChar \"=#\", rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"call{\",Context {cName = \"call{\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"abspath\",\"addprefix\",\"addsuffix\",\"and\",\"basename\",\"call\",\"dir\",\"error\",\"eval\",\"filter\",\"filter-out\",\"findstring\",\"firstword\",\"flavor\",\"foreach\",\"if\",\"info\",\"join\",\"lastword\",\"notdir\",\"or\",\"origin\",\"patsubst\",\"realpath\",\"shell\",\"sort\",\"strip\",\"subst\",\"suffix\",\"value\",\"warning\",\"wildcard\",\"word\",\"wordlist\",\"words\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"callFunc{\")]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Push (\"Makefile\",\"callVar{\")], cDynamic = False}),(\"dollar\",Context {cName = \"dollar\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"call(\")]},Rule {rMatcher = DetectChar '{', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"call{\")]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CharTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"expect}\",Context {cName = \"expect}\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '}', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop,Pop]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop,Pop,Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gmake_else\",Context {cName = \"gmake_else\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"if\",\"ifdef\",\"ifeq\",\"ifndef\",\"ifneq\"])), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Makefile\",\"strings_and_vars\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"normal\",Context {cName = \"normal\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"Comment\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\".if\",\".ifdef\",\".ifmake\",\".ifndef\",\".ifnmake\"])), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"bmake_conditional\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\".elif\",\".elifdef\",\".elifmake\",\".elifndef\",\".elifnmake\",\".else\"])), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"bmake_conditional\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\".endif\"])), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"if\",\"ifdef\",\"ifeq\",\"ifndef\",\"ifneq\"])), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"else\"])), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"gmake_else\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"endif\"])), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"-include\",\"define\",\"endef\",\"include\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\".export\",\".export-env\",\".undef\",\".unexport\",\".unexport-env\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"bmake_other_stmts\")]},Rule {rMatcher = RegExpr (RE {reString = \"[^\\\\s:?]*\\\\s*(?=:=|=|\\\\+=|\\\\?=)\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"assign\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\".BEGIN\",\".DEFAULT\",\".END\",\".ERROR\",\".IGNORE\",\".INTERRUPT\",\".MAIN\",\".MAKEFLAGS\",\".NOPATH\",\".NOTPARALLEL\",\".NO_PARALLEL\",\".OBJDIR\",\".ORDER\",\".PATH\",\".PHONY\",\".PRECIOUS\",\".SHELL\",\".SILENT\",\".STALE\",\".SUFFIXES\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"bmake_special_target\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.PATH\\\\.[^:]*:\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"prereq\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\".-include\",\".include\",\".sinclude\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"bmake_include\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\".error\",\".info\",\".warning\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"bmake_message\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\".for\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"bmake_for_loop\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\".endfor\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.[^.][^:]*:\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Makefile\",\"prereq\")]},Rule {rMatcher = RegExpr (RE {reString = \"[^:]*:\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Makefile\",\"prereq\")]},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"string\\\"\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"string'\")]},Rule {rMatcher = DetectChar '$', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"dollar\")]},Rule {rMatcher = Detect2Chars '\\\\' '#', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"@-\", rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"silent\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"prereq\",Context {cName = \"prereq\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\".EXEC\",\".IGNORE\",\".MADE\",\".MAKE\",\".META\",\".NOMETA\",\".NOMETA_CMP\",\".NOPATH\",\".NOTMAIN\",\".OPTIONAL\",\".PHONY\",\".PRECIOUS\",\".RECURSIVE\",\".SILENT\",\".USE\",\".USEBEFORE\",\".WAIT\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = LineContinue, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '$', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"dollar\")]},Rule {rMatcher = Detect2Chars '\\\\' '#', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"Comment\")]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [Push (\"Makefile\",\"rule\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"rule\",Context {cName = \"rule\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = LineContinue, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \" +\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Just 0, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[^\\\\t]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = True, rColumn = Just 0, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"string\\\"\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"string'\")]},Rule {rMatcher = DetectChar '$', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"dollar\")]},Rule {rMatcher = Detect2Chars '\\\\' '#', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"@-\", rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"silent\")]},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"Comment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"silent\",Context {cName = \"silent\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = LineContinue, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectSpaces, rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"string\\\"\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"string'\")]},Rule {rMatcher = DetectChar '$', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"dollar\")]},Rule {rMatcher = Detect2Chars '\\\\' '#', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"Comment\")]}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"string\\\"\",Context {cName = \"string\\\"\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = LineContinue, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '$', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"dollar\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"string'\",Context {cName = \"string'\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '$', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"dollar\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"strings_and_vars\",Context {cName = \"strings_and_vars\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = DetectChar '$', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"dollar\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"string\\\"\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"string'\")]},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"Comment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"value\",Context {cName = \"value\", cSyntax = \"Makefile\", cRules = [Rule {rMatcher = LineContinue, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '$', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Makefile\",\"dollar\")]},Rule {rMatcher = RegExpr (RE {reString = \"@[-_\\\\d\\\\w]*@\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar ';', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Per Wigren (wigren@home.se)\", sVersion = \"4\", sLicense = \"\", sExtensions = [\"GNUmakefile\",\"Makefile\",\"makefile\",\"GNUmakefile.*\",\"Makefile.*\",\"makefile.*\",\"*.mk\"], sStartingContext = \"normal\"}"
diff --git a/src/Skylighting/Syntax/Mandoc.hs b/src/Skylighting/Syntax/Mandoc.hs
--- a/src/Skylighting/Syntax/Mandoc.hs
+++ b/src/Skylighting/Syntax/Mandoc.hs
@@ -2,227 +2,6 @@
 module Skylighting.Syntax.Mandoc (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Troff Mandoc"
-  , sFilename = "mandoc.xml"
-  , sShortname = "Mandoc"
-  , sContexts =
-      fromList
-        [ ( "DetectDirective"
-          , Context
-              { cName = "DetectDirective"
-              , cSyntax = "Troff Mandoc"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "SH" , "SS" , "TH" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Troff Mandoc" , "Directive" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "HP" , "IP" , "LP" , "P" , "PD" , "PP" , "RE" , "RS" , "TP" ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Troff Mandoc" , "Directive" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "B"
-                               , "BI"
-                               , "BR"
-                               , "I"
-                               , "IB"
-                               , "IR"
-                               , "RB"
-                               , "RI"
-                               , "SB"
-                               , "SM"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Troff Mandoc" , "Directive" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "DT" ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Troff Mandoc" , "Directive" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Roff" , "DetectDirective" )
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Directive"
-          , Context
-              { cName = "Directive"
-              , cSyntax = "Troff Mandoc"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Roff" , "Directive" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Troff Mandoc"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Roff" , "DetectComments" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '.'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Troff Mandoc" , "DetectDirective" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Roff" , "DetectOthers" )
-                      , 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
-              }
-          )
-        ]
-  , sAuthor = "Matthew Woehlke (mw_triad@users.sourceforge.net)"
-  , sVersion = "1"
-  , sLicense = "GPL"
-  , sExtensions =
-      [ "*.1"
-      , "*.2"
-      , "*.3"
-      , "*.4"
-      , "*.5"
-      , "*.6"
-      , "*.7"
-      , "*.8"
-      , "*.1m"
-      , "*.3x"
-      , "*.tmac"
-      ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"Troff Mandoc\", sFilename = \"mandoc.xml\", sShortname = \"Mandoc\", sContexts = fromList [(\"DetectDirective\",Context {cName = \"DetectDirective\", cSyntax = \"Troff Mandoc\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"SH\",\"SS\",\"TH\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Troff Mandoc\",\"Directive\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"HP\",\"IP\",\"LP\",\"P\",\"PD\",\"PP\",\"RE\",\"RS\",\"TP\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Troff Mandoc\",\"Directive\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"B\",\"BI\",\"BR\",\"I\",\"IB\",\"IR\",\"RB\",\"RI\",\"SB\",\"SM\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Troff Mandoc\",\"Directive\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"DT\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Troff Mandoc\",\"Directive\")]},Rule {rMatcher = IncludeRules (\"Roff\",\"DetectDirective\"), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Directive\",Context {cName = \"Directive\", cSyntax = \"Troff Mandoc\", cRules = [Rule {rMatcher = IncludeRules (\"Roff\",\"Directive\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Troff Mandoc\", cRules = [Rule {rMatcher = IncludeRules (\"Roff\",\"DetectComments\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '.', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Troff Mandoc\",\"DetectDirective\")]},Rule {rMatcher = IncludeRules (\"Roff\",\"DetectOthers\"), 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})], sAuthor = \"Matthew Woehlke (mw_triad@users.sourceforge.net)\", sVersion = \"1\", sLicense = \"GPL\", sExtensions = [\"*.1\",\"*.2\",\"*.3\",\"*.4\",\"*.5\",\"*.6\",\"*.7\",\"*.8\",\"*.1m\",\"*.3x\",\"*.tmac\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Markdown.hs b/src/Skylighting/Syntax/Markdown.hs
--- a/src/Skylighting/Syntax/Markdown.hs
+++ b/src/Skylighting/Syntax/Markdown.hs
@@ -2,834 +2,6 @@
 module Skylighting.Syntax.Markdown (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Markdown"
-  , sFilename = "markdown.xml"
-  , sShortname = "Markdown"
-  , sContexts =
-      fromList
-        [ ( "Normal Text"
-          , Context
-              { cName = "Normal Text"
-              , cSyntax = "Markdown"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Markdown" , "blockquote" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s.*[#]?$"
-                              , reCompiled = Just (compileRegex True "#\\s.*[#]?$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "##\\s.*[#]?$"
-                              , reCompiled = Just (compileRegex True "##\\s.*[#]?$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "###\\s.*[#]?$"
-                              , reCompiled = Just (compileRegex True "###\\s.*[#]?$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "####\\s.*[#]?$"
-                              , reCompiled = Just (compileRegex True "####\\s.*[#]?$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#####\\s.*[#]?$"
-                              , reCompiled = Just (compileRegex True "#####\\s.*[#]?$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "######\\s.*[#]?$"
-                              , reCompiled = Just (compileRegex True "######\\s.*[#]?$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*([\\*\\-_]\\s?){3,}\\s*"
-                              , reCompiled =
-                                  Just (compileRegex True "\\s*([\\*\\-_]\\s?){3,}\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\s|^)[\\*_]{2}[^\\s]{1}[^\\*_]+[\\*_]{2}(\\s|\\.|,|;|:|\\-|\\?|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(\\s|^)[\\*_]{2}[^\\s]{1}[^\\*_]+[\\*_]{2}(\\s|\\.|,|;|:|\\-|\\?|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\s|^)[\\*_]{1}[^\\s]{1}[^\\*_]+[\\*_]{1}(\\s|\\.|,|;|:|\\-|\\?|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(\\s|^)[\\*_]{1}[^\\s]{1}[^\\*_]+[\\*_]{1}(\\s|\\.|,|;|:|\\-|\\?|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\s|^)[\\*_]{3}[^\\*_]+[\\*_]{3}(\\s|\\.|,|;|:|\\-|\\?|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(\\s|^)[\\*_]{3}[^\\*_]+[\\*_]{3}(\\s|\\.|,|;|:|\\-|\\?|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([\\s]{4,}|\\t+).*$"
-                              , reCompiled = Just (compileRegex True "([\\s]{4,}|\\t+).*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\*\\+\\-]\\s"
-                              , reCompiled = Just (compileRegex True "[\\*\\+\\-]\\s")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Markdown" , "bullet" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\d]+\\.\\s"
-                              , reCompiled = Just (compileRegex True "[\\d]+\\.\\s")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Markdown" , "numlist" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(Title|Author|Date|Copyright|Revision|CSS|LaTeX\\ XSLT|Categories|Tags|BaseName|Excerpt):(.*)+$"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(Title|Author|Date|Copyright|Revision|CSS|LaTeX\\ XSLT|Categories|Tags|BaseName|Excerpt):(.*)+$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Markdown" , "inc" )
-                      , 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
-              }
-          )
-        , ( "blockquote"
-          , Context
-              { cName = "blockquote"
-              , cSyntax = "Markdown"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\s|^)[\\*_]{2}[^\\s]{1}[^\\*_]+[\\*_]{2}(\\s|\\.|,|;|:|\\-|\\?|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(\\s|^)[\\*_]{2}[^\\s]{1}[^\\*_]+[\\*_]{2}(\\s|\\.|,|;|:|\\-|\\?|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\s|^)[\\*_]{1}[^\\s]{1}[^\\*_]+[\\*_]{1}(\\s|\\.|,|;|:|\\-|\\?|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(\\s|^)[\\*_]{1}[^\\s]{1}[^\\*_]+[\\*_]{1}(\\s|\\.|,|;|:|\\-|\\?|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Markdown" , "inc" )
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = [ Pop ]
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "bullet"
-          , Context
-              { cName = "bullet"
-              , cSyntax = "Markdown"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\s|^)[\\*_]{2}[^\\s]{1}[^\\*_]+[\\*_]{2}(\\s|\\.|,|;|:|\\-|\\?|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(\\s|^)[\\*_]{2}[^\\s]{1}[^\\*_]+[\\*_]{2}(\\s|\\.|,|;|:|\\-|\\?|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\s|^)[\\*_]{1}[^\\s]{1}[^\\*_]+[\\*_]{1}(\\s|\\.|,|;|:|\\-|\\?|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(\\s|^)[\\*_]{1}[^\\s]{1}[^\\*_]+[\\*_]{1}(\\s|\\.|,|;|:|\\-|\\?|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Markdown" , "inc" )
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = FloatTok
-              , cLineEmptyContext = [ Pop ]
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "comment"
-          , Context
-              { cName = "comment"
-              , cSyntax = "Markdown"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-->"
-                              , reCompiled = Just (compileRegex True "-->")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "inc"
-          , Context
-              { cName = "inc"
-              , cSyntax = "Markdown"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "`[^`]+`"
-                              , reCompiled = Just (compileRegex True "`[^`]+`")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<!--"
-                              , reCompiled = Just (compileRegex True "<!--")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Markdown" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\[[^\\]\\^]+\\]\\s*\\[[^\\]]*\\]\\s*(\\s+\\\"[^\\\"]*\\\"){0,1}"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\[[^\\]\\^]+\\]\\s*\\[[^\\]]*\\]\\s*(\\s+\\\"[^\\\"]*\\\"){0,1}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[\\^[^\\]]+\\]"
-                              , reCompiled = Just (compileRegex True "\\[\\^[^\\]]+\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , 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 = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\[[^\\]\\^]+\\]\\:\\s+[^\\s]+(\\s+\\\"[^\\\"]*\\\"){0,1}"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\[[^\\]\\^]+\\]\\:\\s+[^\\s]+(\\s+\\\"[^\\\"]*\\\"){0,1}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\!\\[[^\\]\\^]+\\]\\([^\\(]*\\)"
-                              , reCompiled =
-                                  Just (compileRegex True "\\!\\[[^\\]\\^]+\\]\\([^\\(]*\\)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\!\\[[^\\]\\^]+\\]\\[[^\\[]*\\]"
-                              , reCompiled =
-                                  Just (compileRegex True "\\!\\[[^\\]\\^]+\\]\\[[^\\[]*\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<(https?|ftp):[^\\\">\\s]+>"
-                              , reCompiled =
-                                  Just (compileRegex True "<(https?|ftp):[^\\\">\\s]+>")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "<(?:mailto:)?([-.\\w]+\\@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)>"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "<(?:mailto:)?([-.\\w]+\\@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)>")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[~]{2}[^~].*[^~][~]{2}"
-                              , reCompiled = Just (compileRegex True "[~]{2}[^~].*[^~][~]{2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "  $"
-                              , reCompiled = Just (compileRegex True "  $")
-                              , 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
-              }
-          )
-        , ( "numlist"
-          , Context
-              { cName = "numlist"
-              , cSyntax = "Markdown"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\s|^)[\\*_]{2}[^\\s]{1}[^\\*_]+[\\*_]{2}(\\s|\\.|,|;|:|\\-|\\?|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(\\s|^)[\\*_]{2}[^\\s]{1}[^\\*_]+[\\*_]{2}(\\s|\\.|,|;|:|\\-|\\?|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\s|^)[\\*_]{1}[^\\s]{1}[^\\*_]+[\\*_]{1}(\\s|\\.|,|;|:|\\-|\\?|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(\\s|^)[\\*_]{1}[^\\s]{1}[^\\*_]+[\\*_]{1}(\\s|\\.|,|;|:|\\-|\\?|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Markdown" , "inc" )
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = FloatTok
-              , cLineEmptyContext = [ Pop ]
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Darrin Yeager, Claes Holmerson"
-  , sVersion = "2"
-  , sLicense = "GPL,BSD"
-  , sExtensions = [ "*.md" , "*.mmd" , "*.markdown" ]
-  , sStartingContext = "Normal Text"
-  }
+syntax = read $! "Syntax {sName = \"Markdown\", sFilename = \"markdown.xml\", sShortname = \"Markdown\", sContexts = fromList [(\"Normal Text\",Context {cName = \"Normal Text\", cSyntax = \"Markdown\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Markdown\",\"blockquote\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s.*[#]?$\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"##\\\\s.*[#]?$\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"###\\\\s.*[#]?$\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"####\\\\s.*[#]?$\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#####\\\\s.*[#]?$\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"######\\\\s.*[#]?$\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*([\\\\*\\\\-_]\\\\s?){3,}\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\s|^)[\\\\*_]{2}[^\\\\s]{1}[^\\\\*_]+[\\\\*_]{2}(\\\\s|\\\\.|,|;|:|\\\\-|\\\\?|$)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\s|^)[\\\\*_]{1}[^\\\\s]{1}[^\\\\*_]+[\\\\*_]{1}(\\\\s|\\\\.|,|;|:|\\\\-|\\\\?|$)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\s|^)[\\\\*_]{3}[^\\\\*_]+[\\\\*_]{3}(\\\\s|\\\\.|,|;|:|\\\\-|\\\\?|$)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([\\\\s]{4,}|\\\\t+).*$\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\*\\\\+\\\\-]\\\\s\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Markdown\",\"bullet\")]},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\d]+\\\\.\\\\s\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Markdown\",\"numlist\")]},Rule {rMatcher = RegExpr (RE {reString = \"(Title|Author|Date|Copyright|Revision|CSS|LaTeX\\\\ XSLT|Categories|Tags|BaseName|Excerpt):(.*)+$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Markdown\",\"inc\"), 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}),(\"blockquote\",Context {cName = \"blockquote\", cSyntax = \"Markdown\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(\\\\s|^)[\\\\*_]{2}[^\\\\s]{1}[^\\\\*_]+[\\\\*_]{2}(\\\\s|\\\\.|,|;|:|\\\\-|\\\\?|$)\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\s|^)[\\\\*_]{1}[^\\\\s]{1}[^\\\\*_]+[\\\\*_]{1}(\\\\s|\\\\.|,|;|:|\\\\-|\\\\?|$)\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Markdown\",\"inc\"), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = DataTypeTok, cLineEmptyContext = [Pop], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"bullet\",Context {cName = \"bullet\", cSyntax = \"Markdown\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(\\\\s|^)[\\\\*_]{2}[^\\\\s]{1}[^\\\\*_]+[\\\\*_]{2}(\\\\s|\\\\.|,|;|:|\\\\-|\\\\?|$)\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\s|^)[\\\\*_]{1}[^\\\\s]{1}[^\\\\*_]+[\\\\*_]{1}(\\\\s|\\\\.|,|;|:|\\\\-|\\\\?|$)\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Markdown\",\"inc\"), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = FloatTok, cLineEmptyContext = [Pop], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"comment\",Context {cName = \"comment\", cSyntax = \"Markdown\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"-->\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"inc\",Context {cName = \"inc\", cSyntax = \"Markdown\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"`[^`]+`\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"<!--\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Markdown\",\"comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[[^\\\\]\\\\^]+\\\\]\\\\s*\\\\[[^\\\\]]*\\\\]\\\\s*(\\\\s+\\\\\\\"[^\\\\\\\"]*\\\\\\\"){0,1}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[\\\\^[^\\\\]]+\\\\]\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[[^\\\\]\\\\^]+\\\\]\\\\s*\\\\([^\\\\(]*\\\\)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[[^\\\\]\\\\^]+\\\\]\\\\:\\\\s+[^\\\\s]+(\\\\s+\\\\\\\"[^\\\\\\\"]*\\\\\\\"){0,1}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\!\\\\[[^\\\\]\\\\^]+\\\\]\\\\([^\\\\(]*\\\\)\", reCaseSensitive = True}), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\!\\\\[[^\\\\]\\\\^]+\\\\]\\\\[[^\\\\[]*\\\\]\", reCaseSensitive = True}), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"<(https?|ftp):[^\\\\\\\">\\\\s]+>\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"<(?:mailto:)?([-.\\\\w]+\\\\@[-a-z0-9]+(\\\\.[-a-z0-9]+)*\\\\.[a-z]+)>\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[~]{2}[^~].*[^~][~]{2}\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"  $\", 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}),(\"numlist\",Context {cName = \"numlist\", cSyntax = \"Markdown\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(\\\\s|^)[\\\\*_]{2}[^\\\\s]{1}[^\\\\*_]+[\\\\*_]{2}(\\\\s|\\\\.|,|;|:|\\\\-|\\\\?|$)\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\s|^)[\\\\*_]{1}[^\\\\s]{1}[^\\\\*_]+[\\\\*_]{1}(\\\\s|\\\\.|,|;|:|\\\\-|\\\\?|$)\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Markdown\",\"inc\"), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = FloatTok, cLineEmptyContext = [Pop], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Darrin Yeager, Claes Holmerson\", sVersion = \"2\", sLicense = \"GPL,BSD\", sExtensions = [\"*.md\",\"*.mmd\",\"*.markdown\"], sStartingContext = \"Normal Text\"}"
diff --git a/src/Skylighting/Syntax/Mathematica.hs b/src/Skylighting/Syntax/Mathematica.hs
--- a/src/Skylighting/Syntax/Mathematica.hs
+++ b/src/Skylighting/Syntax/Mathematica.hs
@@ -2,3333 +2,6 @@
 module Skylighting.Syntax.Mathematica (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Mathematica"
-  , sFilename = "mathematica.xml"
-  , sShortname = "Mathematica"
-  , sContexts =
-      fromList
-        [ ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Mathematica"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "$"
-                               , "$Aborted"
-                               , "$AssertFunction"
-                               , "$Assumptions"
-                               , "$BaseDirectory"
-                               , "$BatchInput"
-                               , "$BatchOutput"
-                               , "$ByteOrdering"
-                               , "$Canceled"
-                               , "$CharacterEncoding"
-                               , "$CharacterEncodings"
-                               , "$CommandLine"
-                               , "$CompilationTarget"
-                               , "$ConfiguredKernels"
-                               , "$Context"
-                               , "$ContextPath"
-                               , "$ControlActiveSetting"
-                               , "$CreationDate"
-                               , "$CurrentLink"
-                               , "$DateStringFormat"
-                               , "$DefaultImagingDevice"
-                               , "$Display"
-                               , "$DisplayFunction"
-                               , "$DistributedContexts"
-                               , "$DynamicEvaluation"
-                               , "$Echo"
-                               , "$Epilog"
-                               , "$ExportFormats"
-                               , "$Failed"
-                               , "$FrontEnd"
-                               , "$FrontEndSession"
-                               , "$GeoLocation"
-                               , "$HistoryLength"
-                               , "$HomeDirectory"
-                               , "$IgnoreEOF"
-                               , "$ImagingDevices"
-                               , "$ImportFormats"
-                               , "$InitialDirectory"
-                               , "$Input"
-                               , "$InputFileName"
-                               , "$Inspector"
-                               , "$InstallationDirectory"
-                               , "$IterationLimit"
-                               , "$KernelCount"
-                               , "$KernelID"
-                               , "$Language"
-                               , "$LibraryPath"
-                               , "$LicenseExpirationDate"
-                               , "$LicenseID"
-                               , "$LicenseServer"
-                               , "$Line"
-                               , "$Linked"
-                               , "$MachineAddresses"
-                               , "$MachineDomains"
-                               , "$MachineEpsilon"
-                               , "$MachineID"
-                               , "$MachineName"
-                               , "$MachinePrecision"
-                               , "$MachineType"
-                               , "$MaxExtraPrecision"
-                               , "$MaxMachineNumber"
-                               , "$MaxNumber"
-                               , "$MaxPiecewiseCases"
-                               , "$MaxPrecision"
-                               , "$MaxRootDegree"
-                               , "$MessageGroups"
-                               , "$MessageList"
-                               , "$MessagePrePrint"
-                               , "$Messages"
-                               , "$MinMachineNumber"
-                               , "$MinNumber"
-                               , "$MinPrecision"
-                               , "$ModuleNumber"
-                               , "$NewMessage"
-                               , "$NewSymbol"
-                               , "$Notebooks"
-                               , "$NumberMarks"
-                               , "$OperatingSystem"
-                               , "$Output"
-                               , "$OutputSizeLimit"
-                               , "$Packages"
-                               , "$ParentLink"
-                               , "$ParentProcessID"
-                               , "$Path"
-                               , "$PathnameSeparator"
-                               , "$PerformanceGoal"
-                               , "$Post"
-                               , "$Pre"
-                               , "$PrePrint"
-                               , "$PreRead"
-                               , "$ProcessID"
-                               , "$ProcessorCount"
-                               , "$ProcessorType"
-                               , "$RecursionLimit"
-                               , "$ReleaseNumber"
-                               , "$RootDirectory"
-                               , "$ScheduledTask"
-                               , "$ScriptCommandLine"
-                               , "$SessionID"
-                               , "$SharedFunctions"
-                               , "$SharedVariables"
-                               , "$SoundDisplayFunction"
-                               , "$SyntaxHandler"
-                               , "$System"
-                               , "$SystemCharacterEncoding"
-                               , "$SystemID"
-                               , "$SystemWordLength"
-                               , "$TemporaryDirectory"
-                               , "$TimedOut"
-                               , "$TimeUnit"
-                               , "$TimeZone"
-                               , "$Urgent"
-                               , "$UserBaseDirectory"
-                               , "$UserDocumentsDirectory"
-                               , "$UserName"
-                               , "$Version"
-                               , "$VersionNumber"
-                               , "A"
-                               , "AbelianGroup"
-                               , "Abort"
-                               , "AbortKernels"
-                               , "AbortProtect"
-                               , "Abs"
-                               , "AbsoluteCurrentValue"
-                               , "AbsoluteDashing"
-                               , "AbsoluteFileName"
-                               , "AbsoluteOptions"
-                               , "AbsolutePointSize"
-                               , "AbsoluteThickness"
-                               , "AbsoluteTime"
-                               , "AbsoluteTiming"
-                               , "AccountingForm"
-                               , "Accumulate"
-                               , "Accuracy"
-                               , "AccuracyGoal"
-                               , "ActionMenu"
-                               , "ActiveStyle"
-                               , "AcyclicGraphQ"
-                               , "AddTo"
-                               , "AdjacencyGraph"
-                               , "AdjacencyMatrix"
-                               , "AdjustmentBox"
-                               , "AffineTransform"
-                               , "AiryAi"
-                               , "AiryAiPrime"
-                               , "AiryAiZero"
-                               , "AiryBi"
-                               , "AiryBiPrime"
-                               , "AiryBiZero"
-                               , "AlgebraicIntegerQ"
-                               , "AlgebraicNumber"
-                               , "AlgebraicNumberDenominator"
-                               , "AlgebraicNumberNorm"
-                               , "AlgebraicNumberPolynomial"
-                               , "AlgebraicNumberTrace"
-                               , "Algebraics"
-                               , "AlgebraicUnitQ"
-                               , "Alignment"
-                               , "AlignmentPoint"
-                               , "All"
-                               , "AllowGroupClose"
-                               , "AllowReverseGroupClose"
-                               , "AlphaChannel"
-                               , "AlternatingGroup"
-                               , "AlternativeHypothesis"
-                               , "Alternatives"
-                               , "AnchoredSearch"
-                               , "And"
-                               , "AndersonDarlingTest"
-                               , "AngerJ"
-                               , "AngleBracket"
-                               , "Animate"
-                               , "AnimationDirection"
-                               , "AnimationDisplayTime"
-                               , "AnimationRate"
-                               , "AnimationRepetitions"
-                               , "AnimationRunning"
-                               , "Animator"
-                               , "Annotation"
-                               , "Annuity"
-                               , "AnnuityDue"
-                               , "Antialiasing"
-                               , "Apart"
-                               , "ApartSquareFree"
-                               , "Appearance"
-                               , "AppearanceElements"
-                               , "AppellF1"
-                               , "Append"
-                               , "AppendTo"
-                               , "Apply"
-                               , "ArcCos"
-                               , "ArcCosh"
-                               , "ArcCot"
-                               , "ArcCoth"
-                               , "ArcCsc"
-                               , "ArcCsch"
-                               , "ArcSec"
-                               , "ArcSech"
-                               , "ArcSin"
-                               , "ArcSinDistribution"
-                               , "ArcSinh"
-                               , "ArcTan"
-                               , "ArcTanh"
-                               , "Arg"
-                               , "ArgMax"
-                               , "ArgMin"
-                               , "ArithmeticGeometricMean"
-                               , "Array"
-                               , "ArrayComponents"
-                               , "ArrayDepth"
-                               , "ArrayFlatten"
-                               , "ArrayPad"
-                               , "ArrayPlot"
-                               , "ArrayQ"
-                               , "ArrayRules"
-                               , "Arrow"
-                               , "Arrowheads"
-                               , "AspectRatio"
-                               , "Assert"
-                               , "Assuming"
-                               , "Assumptions"
-                               , "AstronomicalData"
-                               , "Asynchronous"
-                               , "AtomQ"
-                               , "Attributes"
-                               , "AugmentedSymmetricPolynomial"
-                               , "AutoAction"
-                               , "AutoIndent"
-                               , "AutoItalicWords"
-                               , "Automatic"
-                               , "AutoMultiplicationSymbol"
-                               , "AutorunSequencing"
-                               , "AutoScroll"
-                               , "AutoSpacing"
-                               , "Axes"
-                               , "AxesEdge"
-                               , "AxesLabel"
-                               , "AxesOrigin"
-                               , "AxesStyle"
-                               , "Axis"
-                               , "B"
-                               , "BabyMonsterGroupB"
-                               , "Back"
-                               , "Background"
-                               , "Backslash"
-                               , "Backward"
-                               , "Band"
-                               , "BarabasiAlbertGraphDistribution"
-                               , "BarChart"
-                               , "BarChart3D"
-                               , "BarnesG"
-                               , "BarOrigin"
-                               , "BarSpacing"
-                               , "BaseForm"
-                               , "Baseline"
-                               , "BaselinePosition"
-                               , "BaseStyle"
-                               , "BatesDistribution"
-                               , "BattleLemarieWavelet"
-                               , "Because"
-                               , "BeckmannDistribution"
-                               , "Beep"
-                               , "Begin"
-                               , "BeginDialogPacket"
-                               , "BeginPackage"
-                               , "BellB"
-                               , "BellY"
-                               , "BenfordDistribution"
-                               , "BeniniDistribution"
-                               , "BenktanderGibratDistribution"
-                               , "BenktanderWeibullDistribution"
-                               , "BernoulliB"
-                               , "BernoulliDistribution"
-                               , "BernoulliGraphDistribution"
-                               , "BernsteinBasis"
-                               , "BesselI"
-                               , "BesselJ"
-                               , "BesselJZero"
-                               , "BesselK"
-                               , "BesselY"
-                               , "BesselYZero"
-                               , "Beta"
-                               , "BetaBinomialDistribution"
-                               , "BetaDistribution"
-                               , "BetaNegativeBinomialDistribution"
-                               , "BetaPrimeDistribution"
-                               , "BetaRegularized"
-                               , "BetweennessCentrality"
-                               , "BezierCurve"
-                               , "BezierFunction"
-                               , "BilateralFilter"
-                               , "Binarize"
-                               , "BinaryFormat"
-                               , "BinaryImageQ"
-                               , "BinaryRead"
-                               , "BinaryReadList"
-                               , "BinaryWrite"
-                               , "BinCounts"
-                               , "BinLists"
-                               , "Binomial"
-                               , "BinomialDistribution"
-                               , "BinormalDistribution"
-                               , "BiorthogonalSplineWavelet"
-                               , "BipartiteGraphQ"
-                               , "BirnbaumSaundersDistribution"
-                               , "BitAnd"
-                               , "BitClear"
-                               , "BitGet"
-                               , "BitLength"
-                               , "BitNot"
-                               , "BitOr"
-                               , "BitSet"
-                               , "BitShiftLeft"
-                               , "BitShiftRight"
-                               , "BitXor"
-                               , "Black"
-                               , "Blank"
-                               , "BlankNullSequence"
-                               , "BlankSequence"
-                               , "Blend"
-                               , "Block"
-                               , "BlockRandom"
-                               , "Blue"
-                               , "Blur"
-                               , "BodePlot"
-                               , "Bold"
-                               , "Bookmarks"
-                               , "Boole"
-                               , "BooleanConvert"
-                               , "BooleanCountingFunction"
-                               , "BooleanFunction"
-                               , "BooleanGraph"
-                               , "BooleanMaxterms"
-                               , "BooleanMinimize"
-                               , "BooleanMinterms"
-                               , "Booleans"
-                               , "BooleanTable"
-                               , "BooleanVariables"
-                               , "BorderDimensions"
-                               , "BorelTannerDistribution"
-                               , "Bottom"
-                               , "BottomHatTransform"
-                               , "BoundaryStyle"
-                               , "BoxData"
-                               , "Boxed"
-                               , "BoxMatrix"
-                               , "BoxRatios"
-                               , "BoxStyle"
-                               , "BoxWhiskerChart"
-                               , "BracketingBar"
-                               , "BrayCurtisDistance"
-                               , "BreadthFirstScan"
-                               , "Break"
-                               , "Brown"
-                               , "BrownForsytheTest"
-                               , "BSplineBasis"
-                               , "BSplineCurve"
-                               , "BSplineFunction"
-                               , "BSplineSurface"
-                               , "BubbleChart"
-                               , "BubbleChart3D"
-                               , "BubbleScale"
-                               , "BubbleSizes"
-                               , "ButterflyGraph"
-                               , "Button"
-                               , "ButtonBar"
-                               , "ButtonBox"
-                               , "ButtonData"
-                               , "ButtonFrame"
-                               , "ButtonFunction"
-                               , "ButtonMinHeight"
-                               , "ButtonNotebook"
-                               , "ButtonSource"
-                               , "Byte"
-                               , "ByteCount"
-                               , "ByteOrdering"
-                               , "C"
-                               , "CallPacket"
-                               , "CanberraDistance"
-                               , "Cancel"
-                               , "CancelButton"
-                               , "CandlestickChart"
-                               , "Cap"
-                               , "CapForm"
-                               , "CapitalDifferentialD"
-                               , "CarmichaelLambda"
-                               , "Cases"
-                               , "Cashflow"
-                               , "Casoratian"
-                               , "Catalan"
-                               , "CatalanNumber"
-                               , "Catch"
-                               , "CauchyDistribution"
-                               , "CayleyGraph"
-                               , "CDF"
-                               , "CDFWavelet"
-                               , "Ceiling"
-                               , "Cell"
-                               , "CellAutoOverwrite"
-                               , "CellBaseline"
-                               , "CellChangeTimes"
-                               , "CellContext"
-                               , "CellDingbat"
-                               , "CellDynamicExpression"
-                               , "CellEditDuplicate"
-                               , "CellEpilog"
-                               , "CellEvaluationDuplicate"
-                               , "CellEvaluationFunction"
-                               , "CellEventActions"
-                               , "CellFrame"
-                               , "CellFrameMargins"
-                               , "CellGroup"
-                               , "CellGroupData"
-                               , "CellGrouping"
-                               , "CellLabel"
-                               , "CellLabelAutoDelete"
-                               , "CellMargins"
-                               , "CellOpen"
-                               , "CellPrint"
-                               , "CellProlog"
-                               , "CellTags"
-                               , "CellularAutomaton"
-                               , "CensoredDistribution"
-                               , "Censoring"
-                               , "Center"
-                               , "CenterDot"
-                               , "CentralMoment"
-                               , "CentralMomentGeneratingFunction"
-                               , "CForm"
-                               , "ChampernowneNumber"
-                               , "ChanVeseBinarize"
-                               , "Character"
-                               , "CharacterEncoding"
-                               , "CharacteristicFunction"
-                               , "CharacteristicPolynomial"
-                               , "CharacterRange"
-                               , "Characters"
-                               , "ChartBaseStyle"
-                               , "ChartElementFunction"
-                               , "ChartElements"
-                               , "ChartLabels"
-                               , "ChartLayout"
-                               , "ChartLegends"
-                               , "ChartStyle"
-                               , "ChebyshevT"
-                               , "ChebyshevU"
-                               , "Check"
-                               , "CheckAbort"
-                               , "Checkbox"
-                               , "CheckboxBar"
-                               , "ChemicalData"
-                               , "ChessboardDistance"
-                               , "ChiDistribution"
-                               , "ChineseRemainder"
-                               , "ChiSquareDistribution"
-                               , "ChoiceButtons"
-                               , "ChoiceDialog"
-                               , "CholeskyDecomposition"
-                               , "Chop"
-                               , "Circle"
-                               , "CircleDot"
-                               , "CircleMinus"
-                               , "CirclePlus"
-                               , "CircleTimes"
-                               , "CirculantGraph"
-                               , "CityData"
-                               , "Clear"
-                               , "ClearAll"
-                               , "ClearAttributes"
-                               , "ClearSystemCache"
-                               , "ClebschGordan"
-                               , "ClickPane"
-                               , "Clip"
-                               , "ClippingStyle"
-                               , "Clock"
-                               , "Close"
-                               , "CloseKernels"
-                               , "ClosenessCentrality"
-                               , "Closing"
-                               , "ClusteringComponents"
-                               , "CMYKColor"
-                               , "Coefficient"
-                               , "CoefficientArrays"
-                               , "CoefficientList"
-                               , "CoefficientRules"
-                               , "CoifletWavelet"
-                               , "Collect"
-                               , "Colon"
-                               , "ColorCombine"
-                               , "ColorConvert"
-                               , "ColorData"
-                               , "ColorDataFunction"
-                               , "ColorFunction"
-                               , "ColorFunctionScaling"
-                               , "Colorize"
-                               , "ColorNegate"
-                               , "ColorQuantize"
-                               , "ColorRules"
-                               , "ColorSeparate"
-                               , "ColorSetter"
-                               , "ColorSlider"
-                               , "ColorSpace"
-                               , "Column"
-                               , "ColumnAlignments"
-                               , "ColumnLines"
-                               , "ColumnsEqual"
-                               , "ColumnSpacings"
-                               , "ColumnWidths"
-                               , "Commonest"
-                               , "CommonestFilter"
-                               , "CompilationOptions"
-                               , "CompilationTarget"
-                               , "Compile"
-                               , "Compiled"
-                               , "CompiledFunction"
-                               , "Complement"
-                               , "CompleteGraph"
-                               , "CompleteGraphQ"
-                               , "CompleteKaryTree"
-                               , "Complex"
-                               , "Complexes"
-                               , "ComplexExpand"
-                               , "ComplexInfinity"
-                               , "ComplexityFunction"
-                               , "ComponentMeasurements"
-                               , "ComposeList"
-                               , "ComposeSeries"
-                               , "Composition"
-                               , "CompoundExpression"
-                               , "Compress"
-                               , "Condition"
-                               , "ConditionalExpression"
-                               , "Conditioned"
-                               , "Cone"
-                               , "ConfidenceLevel"
-                               , "Congruent"
-                               , "Conjugate"
-                               , "ConjugateTranspose"
-                               , "Conjunction"
-                               , "ConnectedComponents"
-                               , "ConnectedGraphQ"
-                               , "ConoverTest"
-                               , "Constant"
-                               , "ConstantArray"
-                               , "Constants"
-                               , "ContentPadding"
-                               , "ContentSelectable"
-                               , "ContentSize"
-                               , "Context"
-                               , "Contexts"
-                               , "ContextToFileName"
-                               , "Continue"
-                               , "ContinuedFraction"
-                               , "ContinuedFractionK"
-                               , "ContinuousAction"
-                               , "ContinuousTimeModelQ"
-                               , "ContinuousWaveletData"
-                               , "ContinuousWaveletTransform"
-                               , "ContourDetect"
-                               , "ContourLabels"
-                               , "ContourPlot"
-                               , "ContourPlot3D"
-                               , "Contours"
-                               , "ContourShading"
-                               , "ContourStyle"
-                               , "ContraharmonicMean"
-                               , "Control"
-                               , "ControlActive"
-                               , "ControllabilityGramian"
-                               , "ControllabilityMatrix"
-                               , "ControllableDecomposition"
-                               , "ControllableModelQ"
-                               , "ControllerInformation"
-                               , "ControllerLinking"
-                               , "ControllerManipulate"
-                               , "ControllerMethod"
-                               , "ControllerPath"
-                               , "ControllerState"
-                               , "ControlPlacement"
-                               , "ControlsRendering"
-                               , "ControlType"
-                               , "Convergents"
-                               , "ConversionRules"
-                               , "Convolve"
-                               , "ConwayGroupCo1"
-                               , "ConwayGroupCo2"
-                               , "ConwayGroupCo3"
-                               , "CoordinatesToolOptions"
-                               , "CoprimeQ"
-                               , "Coproduct"
-                               , "CopulaDistribution"
-                               , "Copyable"
-                               , "CopyDirectory"
-                               , "CopyFile"
-                               , "CopyToClipboard"
-                               , "CornerFilter"
-                               , "CornerNeighbors"
-                               , "Correlation"
-                               , "CorrelationDistance"
-                               , "Cos"
-                               , "Cosh"
-                               , "CoshIntegral"
-                               , "CosineDistance"
-                               , "CosIntegral"
-                               , "Cot"
-                               , "Coth"
-                               , "Count"
-                               , "CountRoots"
-                               , "CountryData"
-                               , "Covariance"
-                               , "CovarianceEstimatorFunction"
-                               , "CramerVonMisesTest"
-                               , "CreateArchive"
-                               , "CreateDialog"
-                               , "CreateDirectory"
-                               , "CreateDocument"
-                               , "CreateIntermediateDirectories"
-                               , "CreatePalette"
-                               , "CreateScheduledTask"
-                               , "CreateWindow"
-                               , "CriticalSection"
-                               , "Cross"
-                               , "CrossingDetect"
-                               , "CrossMatrix"
-                               , "Csc"
-                               , "Csch"
-                               , "Cubics"
-                               , "Cuboid"
-                               , "Cumulant"
-                               , "CumulantGeneratingFunction"
-                               , "Cup"
-                               , "CupCap"
-                               , "CurrentImage"
-                               , "CurrentValue"
-                               , "CurvatureFlowFilter"
-                               , "CurveClosed"
-                               , "Cyan"
-                               , "CycleGraph"
-                               , "Cycles"
-                               , "CyclicGroup"
-                               , "Cyclotomic"
-                               , "Cylinder"
-                               , "CylindricalDecomposition"
-                               , "D"
-                               , "DagumDistribution"
-                               , "DamerauLevenshteinDistance"
-                               , "Darker"
-                               , "Dashed"
-                               , "Dashing"
-                               , "DataDistribution"
-                               , "DataRange"
-                               , "DataReversed"
-                               , "DateDifference"
-                               , "DateFunction"
-                               , "DateList"
-                               , "DateListLogPlot"
-                               , "DateListPlot"
-                               , "DatePattern"
-                               , "DatePlus"
-                               , "DateString"
-                               , "DateTicksFormat"
-                               , "DaubechiesWavelet"
-                               , "DavisDistribution"
-                               , "DawsonF"
-                               , "DeBruijnGraph"
-                               , "DeclarePackage"
-                               , "Decompose"
-                               , "Decrement"
-                               , "DedekindEta"
-                               , "Default"
-                               , "DefaultAxesStyle"
-                               , "DefaultBaseStyle"
-                               , "DefaultBoxStyle"
-                               , "DefaultButton"
-                               , "DefaultDuplicateCellStyle"
-                               , "DefaultDuration"
-                               , "DefaultElement"
-                               , "DefaultFaceGridsStyle"
-                               , "DefaultFieldHintStyle"
-                               , "DefaultFrameStyle"
-                               , "DefaultFrameTicksStyle"
-                               , "DefaultGridLinesStyle"
-                               , "DefaultLabelStyle"
-                               , "DefaultMenuStyle"
-                               , "DefaultNewCellStyle"
-                               , "DefaultOptions"
-                               , "DefaultTicksStyle"
-                               , "Defer"
-                               , "Definition"
-                               , "Degree"
-                               , "DegreeCentrality"
-                               , "DegreeGraphDistribution"
-                               , "Deinitialization"
-                               , "Del"
-                               , "Deletable"
-                               , "Delete"
-                               , "DeleteBorderComponents"
-                               , "DeleteCases"
-                               , "DeleteContents"
-                               , "DeleteDirectory"
-                               , "DeleteDuplicates"
-                               , "DeleteFile"
-                               , "DeleteSmallComponents"
-                               , "Delimiter"
-                               , "DelimiterFlashTime"
-                               , "Denominator"
-                               , "DensityHistogram"
-                               , "DensityPlot"
-                               , "DependentVariables"
-                               , "Deploy"
-                               , "Deployed"
-                               , "Depth"
-                               , "DepthFirstScan"
-                               , "Derivative"
-                               , "DerivativeFilter"
-                               , "DesignMatrix"
-                               , "Det"
-                               , "DGaussianWavelet"
-                               , "Diagonal"
-                               , "DiagonalMatrix"
-                               , "Dialog"
-                               , "DialogInput"
-                               , "DialogNotebook"
-                               , "DialogProlog"
-                               , "DialogReturn"
-                               , "DialogSymbols"
-                               , "Diamond"
-                               , "DiamondMatrix"
-                               , "DiceDissimilarity"
-                               , "DictionaryLookup"
-                               , "DifferenceDelta"
-                               , "DifferenceRoot"
-                               , "DifferenceRootReduce"
-                               , "Differences"
-                               , "DifferentialD"
-                               , "DifferentialRoot"
-                               , "DifferentialRootReduce"
-                               , "DigitBlock"
-                               , "DigitCharacter"
-                               , "DigitCount"
-                               , "DigitQ"
-                               , "DihedralGroup"
-                               , "Dilation"
-                               , "Dimensions"
-                               , "DiracComb"
-                               , "DiracDelta"
-                               , "DirectedEdge"
-                               , "DirectedEdges"
-                               , "DirectedGraph"
-                               , "DirectedGraphQ"
-                               , "DirectedInfinity"
-                               , "Direction"
-                               , "Directive"
-                               , "Directory"
-                               , "DirectoryName"
-                               , "DirectoryQ"
-                               , "DirectoryStack"
-                               , "DirichletCharacter"
-                               , "DirichletConvolve"
-                               , "DirichletDistribution"
-                               , "DirichletL"
-                               , "DirichletTransform"
-                               , "DiscreteConvolve"
-                               , "DiscreteDelta"
-                               , "DiscreteIndicator"
-                               , "DiscreteLQEstimatorGains"
-                               , "DiscreteLQRegulatorGains"
-                               , "DiscreteLyapunovSolve"
-                               , "DiscretePlot"
-                               , "DiscretePlot3D"
-                               , "DiscreteRatio"
-                               , "DiscreteRiccatiSolve"
-                               , "DiscreteShift"
-                               , "DiscreteTimeModelQ"
-                               , "DiscreteUniformDistribution"
-                               , "DiscreteWaveletData"
-                               , "DiscreteWaveletPacketTransform"
-                               , "DiscreteWaveletTransform"
-                               , "Discriminant"
-                               , "Disjunction"
-                               , "Disk"
-                               , "DiskMatrix"
-                               , "Dispatch"
-                               , "DispersionEstimatorFunction"
-                               , "DisplayAllSteps"
-                               , "DisplayEndPacket"
-                               , "DisplayForm"
-                               , "DisplayFunction"
-                               , "DisplayPacket"
-                               , "DistanceFunction"
-                               , "DistanceTransform"
-                               , "Distribute"
-                               , "Distributed"
-                               , "DistributedContexts"
-                               , "DistributeDefinitions"
-                               , "DistributionChart"
-                               , "DistributionFitTest"
-                               , "DistributionParameterAssumptions"
-                               , "DistributionParameterQ"
-                               , "Divide"
-                               , "DivideBy"
-                               , "Dividers"
-                               , "Divisible"
-                               , "Divisors"
-                               , "DivisorSigma"
-                               , "DivisorSum"
-                               , "DMSList"
-                               , "DMSString"
-                               , "Do"
-                               , "DockedCells"
-                               , "DocumentNotebook"
-                               , "Dot"
-                               , "DotDashed"
-                               , "DotEqual"
-                               , "Dotted"
-                               , "DoubleBracketingBar"
-                               , "DoubleDownArrow"
-                               , "DoubleLeftArrow"
-                               , "DoubleLeftRightArrow"
-                               , "DoubleLongLeftArrow"
-                               , "DoubleLongLeftRightArrow"
-                               , "DoubleLongRightArrow"
-                               , "DoubleRightArrow"
-                               , "DoubleUpArrow"
-                               , "DoubleUpDownArrow"
-                               , "DoubleVerticalBar"
-                               , "DownArrow"
-                               , "DownArrowBar"
-                               , "DownArrowUpArrow"
-                               , "DownLeftRightVector"
-                               , "DownLeftTeeVector"
-                               , "DownLeftVector"
-                               , "DownLeftVectorBar"
-                               , "DownRightTeeVector"
-                               , "DownRightVector"
-                               , "DownRightVectorBar"
-                               , "DownTeeArrow"
-                               , "DownValues"
-                               , "DragAndDrop"
-                               , "Drop"
-                               , "DSolve"
-                               , "Dt"
-                               , "DualSystemsModel"
-                               , "DumpSave"
-                               , "Dynamic"
-                               , "DynamicEvaluationTimeout"
-                               , "DynamicModule"
-                               , "DynamicModuleValues"
-                               , "DynamicSetting"
-                               , "DynamicWrapper"
-                               , "E"
-                               , "EdgeAdd"
-                               , "EdgeCount"
-                               , "EdgeCoverQ"
-                               , "EdgeDelete"
-                               , "EdgeDetect"
-                               , "EdgeForm"
-                               , "EdgeIndex"
-                               , "EdgeLabeling"
-                               , "EdgeLabels"
-                               , "EdgeList"
-                               , "EdgeQ"
-                               , "EdgeRenderingFunction"
-                               , "EdgeRules"
-                               , "EdgeShapeFunction"
-                               , "EdgeStyle"
-                               , "EdgeWeight"
-                               , "Editable"
-                               , "EditDistance"
-                               , "EffectiveInterest"
-                               , "Eigensystem"
-                               , "Eigenvalues"
-                               , "EigenvectorCentrality"
-                               , "Eigenvectors"
-                               , "Element"
-                               , "ElementData"
-                               , "Eliminate"
-                               , "EllipticE"
-                               , "EllipticExp"
-                               , "EllipticExpPrime"
-                               , "EllipticF"
-                               , "EllipticK"
-                               , "EllipticLog"
-                               , "EllipticNomeQ"
-                               , "EllipticPi"
-                               , "EllipticTheta"
-                               , "EllipticThetaPrime"
-                               , "EmitSound"
-                               , "EmpiricalDistribution"
-                               , "EmptyGraphQ"
-                               , "Enabled"
-                               , "Encode"
-                               , "End"
-                               , "EndDialogPacket"
-                               , "EndOfFile"
-                               , "EndOfLine"
-                               , "EndOfString"
-                               , "EndPackage"
-                               , "EngineeringForm"
-                               , "EnterExpressionPacket"
-                               , "EnterTextPacket"
-                               , "Entropy"
-                               , "EntropyFilter"
-                               , "Environment"
-                               , "Epilog"
-                               , "Equal"
-                               , "EqualTilde"
-                               , "Equilibrium"
-                               , "Equivalent"
-                               , "Erf"
-                               , "Erfc"
-                               , "Erfi"
-                               , "ErlangDistribution"
-                               , "Erosion"
-                               , "ErrorBox"
-                               , "EstimatedDistribution"
-                               , "EstimatorGains"
-                               , "EstimatorRegulator"
-                               , "EuclideanDistance"
-                               , "EulerE"
-                               , "EulerGamma"
-                               , "EulerianGraphQ"
-                               , "EulerPhi"
-                               , "Evaluatable"
-                               , "Evaluate"
-                               , "EvaluatePacket"
-                               , "EvaluationElements"
-                               , "EvaluationMonitor"
-                               , "EvaluationNotebook"
-                               , "EvaluationObject"
-                               , "Evaluator"
-                               , "EvenQ"
-                               , "EventHandler"
-                               , "EventLabels"
-                               , "ExactNumberQ"
-                               , "ExampleData"
-                               , "Except"
-                               , "ExcludedForms"
-                               , "ExcludePods"
-                               , "Exclusions"
-                               , "ExclusionsStyle"
-                               , "Exists"
-                               , "Exit"
-                               , "Exp"
-                               , "Expand"
-                               , "ExpandAll"
-                               , "ExpandDenominator"
-                               , "ExpandFileName"
-                               , "ExpandNumerator"
-                               , "Expectation"
-                               , "ExpGammaDistribution"
-                               , "ExpIntegralE"
-                               , "ExpIntegralEi"
-                               , "Exponent"
-                               , "ExponentFunction"
-                               , "ExponentialDistribution"
-                               , "ExponentialFamily"
-                               , "ExponentialGeneratingFunction"
-                               , "ExponentialMovingAverage"
-                               , "ExponentialPowerDistribution"
-                               , "ExponentStep"
-                               , "Export"
-                               , "ExportString"
-                               , "Expression"
-                               , "ExpressionCell"
-                               , "ExpToTrig"
-                               , "ExtendedGCD"
-                               , "Extension"
-                               , "ExtentElementFunction"
-                               , "ExtentMarkers"
-                               , "ExtentSize"
-                               , "Extract"
-                               , "ExtractArchive"
-                               , "ExtremeValueDistribution"
-                               , "F"
-                               , "FaceForm"
-                               , "FaceGrids"
-                               , "FaceGridsStyle"
-                               , "Factor"
-                               , "Factorial"
-                               , "Factorial2"
-                               , "FactorialMoment"
-                               , "FactorialMomentGeneratingFunction"
-                               , "FactorialPower"
-                               , "FactorInteger"
-                               , "FactorList"
-                               , "FactorSquareFree"
-                               , "FactorSquareFreeList"
-                               , "FactorTerms"
-                               , "FactorTermsList"
-                               , "False"
-                               , "FeedbackType"
-                               , "Fibonacci"
-                               , "FieldHint"
-                               , "FieldHintStyle"
-                               , "FieldMasked"
-                               , "FieldSize"
-                               , "FileBaseName"
-                               , "FileByteCount"
-                               , "FileDate"
-                               , "FileExistsQ"
-                               , "FileExtension"
-                               , "FileFormat"
-                               , "FileHash"
-                               , "FileNameDepth"
-                               , "FileNameDrop"
-                               , "FileNameJoin"
-                               , "FileNames"
-                               , "FileNameSetter"
-                               , "FileNameSplit"
-                               , "FileNameTake"
-                               , "FilePrint"
-                               , "FileType"
-                               , "FilledCurve"
-                               , "Filling"
-                               , "FillingStyle"
-                               , "FillingTransform"
-                               , "FilterRules"
-                               , "FinancialBond"
-                               , "FinancialData"
-                               , "FinancialDerivative"
-                               , "FinancialIndicator"
-                               , "Find"
-                               , "FindArgMax"
-                               , "FindArgMin"
-                               , "FindClique"
-                               , "FindClusters"
-                               , "FindCurvePath"
-                               , "FindDistributionParameters"
-                               , "FindDivisions"
-                               , "FindEdgeCover"
-                               , "FindEulerianCycle"
-                               , "FindFile"
-                               , "FindFit"
-                               , "FindGeneratingFunction"
-                               , "FindGeoLocation"
-                               , "FindGeometricTransform"
-                               , "FindGraphIsomorphism"
-                               , "FindHamiltonianCycle"
-                               , "FindIndependentEdgeSet"
-                               , "FindIndependentVertexSet"
-                               , "FindInstance"
-                               , "FindIntegerNullVector"
-                               , "FindLibrary"
-                               , "FindLinearRecurrence"
-                               , "FindList"
-                               , "FindMaximum"
-                               , "FindMaxValue"
-                               , "FindMinimum"
-                               , "FindMinValue"
-                               , "FindPermutation"
-                               , "FindRoot"
-                               , "FindSequenceFunction"
-                               , "FindShortestPath"
-                               , "FindShortestTour"
-                               , "FindThreshold"
-                               , "FindVertexCover"
-                               , "FinishDynamic"
-                               , "FiniteAbelianGroupCount"
-                               , "FiniteGroupCount"
-                               , "FiniteGroupData"
-                               , "First"
-                               , "FischerGroupFi22"
-                               , "FischerGroupFi23"
-                               , "FischerGroupFi24Prime"
-                               , "FisherHypergeometricDistribution"
-                               , "FisherRatioTest"
-                               , "FisherZDistribution"
-                               , "Fit"
-                               , "FittedModel"
-                               , "FixedPoint"
-                               , "FixedPointList"
-                               , "Flat"
-                               , "Flatten"
-                               , "FlattenAt"
-                               , "FlipView"
-                               , "Floor"
-                               , "Fold"
-                               , "FoldList"
-                               , "FontColor"
-                               , "FontFamily"
-                               , "FontSize"
-                               , "FontSlant"
-                               , "FontSubstitutions"
-                               , "FontTracking"
-                               , "FontVariations"
-                               , "FontWeight"
-                               , "For"
-                               , "ForAll"
-                               , "Format"
-                               , "FormatType"
-                               , "FormBox"
-                               , "FortranForm"
-                               , "Forward"
-                               , "ForwardBackward"
-                               , "Fourier"
-                               , "FourierCoefficient"
-                               , "FourierCosCoefficient"
-                               , "FourierCosSeries"
-                               , "FourierCosTransform"
-                               , "FourierDCT"
-                               , "FourierDST"
-                               , "FourierParameters"
-                               , "FourierSequenceTransform"
-                               , "FourierSeries"
-                               , "FourierSinCoefficient"
-                               , "FourierSinSeries"
-                               , "FourierSinTransform"
-                               , "FourierTransform"
-                               , "FourierTrigSeries"
-                               , "FractionalPart"
-                               , "FractionBox"
-                               , "Frame"
-                               , "FrameBox"
-                               , "Framed"
-                               , "FrameLabel"
-                               , "FrameMargins"
-                               , "FrameStyle"
-                               , "FrameTicks"
-                               , "FrameTicksStyle"
-                               , "FRatioDistribution"
-                               , "FrechetDistribution"
-                               , "FreeQ"
-                               , "FresnelC"
-                               , "FresnelS"
-                               , "FrobeniusNumber"
-                               , "FrobeniusSolve"
-                               , "FromCharacterCode"
-                               , "FromCoefficientRules"
-                               , "FromContinuedFraction"
-                               , "FromDigits"
-                               , "FromDMS"
-                               , "Front"
-                               , "FrontEndDynamicExpression"
-                               , "FrontEndEventActions"
-                               , "FrontEndExecute"
-                               , "FrontEndToken"
-                               , "FrontEndTokenExecute"
-                               , "Full"
-                               , "FullDefinition"
-                               , "FullForm"
-                               , "FullGraphics"
-                               , "FullSimplify"
-                               , "Function"
-                               , "FunctionExpand"
-                               , "FunctionInterpolation"
-                               , "FunctionSpace"
-                               , "G"
-                               , "GaborWavelet"
-                               , "GainMargins"
-                               , "GainPhaseMargins"
-                               , "Gamma"
-                               , "GammaDistribution"
-                               , "GammaRegularized"
-                               , "GapPenalty"
-                               , "Gather"
-                               , "GatherBy"
-                               , "GaussianFilter"
-                               , "GaussianIntegers"
-                               , "GaussianMatrix"
-                               , "GCD"
-                               , "GegenbauerC"
-                               , "General"
-                               , "GeneralizedLinearModelFit"
-                               , "GenerateConditions"
-                               , "GeneratedCell"
-                               , "GeneratedParameters"
-                               , "GeneratingFunction"
-                               , "GenericCylindricalDecomposition"
-                               , "GenomeData"
-                               , "GenomeLookup"
-                               , "GeodesicDilation"
-                               , "GeodesicErosion"
-                               , "GeoDestination"
-                               , "GeodesyData"
-                               , "GeoDirection"
-                               , "GeoDistance"
-                               , "GeoGridPosition"
-                               , "GeometricDistribution"
-                               , "GeometricMean"
-                               , "GeometricMeanFilter"
-                               , "GeometricTransformation"
-                               , "GeoPosition"
-                               , "GeoPositionENU"
-                               , "GeoPositionXYZ"
-                               , "GeoProjectionData"
-                               , "Get"
-                               , "Glaisher"
-                               , "Glow"
-                               , "GoldenRatio"
-                               , "GompertzMakehamDistribution"
-                               , "Goto"
-                               , "Gradient"
-                               , "GradientFilter"
-                               , "Graph"
-                               , "GraphCenter"
-                               , "GraphComplement"
-                               , "GraphData"
-                               , "GraphDiameter"
-                               , "GraphDifference"
-                               , "GraphDisjointUnion"
-                               , "GraphDistance"
-                               , "GraphDistanceMatrix"
-                               , "GraphHighlight"
-                               , "GraphHighlightStyle"
-                               , "Graphics"
-                               , "Graphics3D"
-                               , "GraphicsColumn"
-                               , "GraphicsComplex"
-                               , "GraphicsGrid"
-                               , "GraphicsGroup"
-                               , "GraphicsRow"
-                               , "GraphIntersection"
-                               , "GraphLayout"
-                               , "GraphPeriphery"
-                               , "GraphPlot"
-                               , "GraphPlot3D"
-                               , "GraphPower"
-                               , "GraphQ"
-                               , "GraphRadius"
-                               , "GraphStyle"
-                               , "GraphUnion"
-                               , "Gray"
-                               , "GrayLevel"
-                               , "Greater"
-                               , "GreaterEqual"
-                               , "GreaterEqualLess"
-                               , "GreaterFullEqual"
-                               , "GreaterGreater"
-                               , "GreaterLess"
-                               , "GreaterSlantEqual"
-                               , "GreaterTilde"
-                               , "Green"
-                               , "Grid"
-                               , "GridBox"
-                               , "GridDefaultElement"
-                               , "GridGraph"
-                               , "GridLines"
-                               , "GridLinesStyle"
-                               , "GroebnerBasis"
-                               , "GroupActionBase"
-                               , "GroupCentralizer"
-                               , "GroupElementPosition"
-                               , "GroupElementQ"
-                               , "GroupElements"
-                               , "GroupGenerators"
-                               , "GroupMultiplicationTable"
-                               , "GroupOrbits"
-                               , "GroupOrder"
-                               , "GroupPageBreakWithin"
-                               , "GroupSetwiseStabilizer"
-                               , "GroupStabilizer"
-                               , "GroupStabilizerChain"
-                               , "Gudermannian"
-                               , "GumbelDistribution"
-                               , "H"
-                               , "HaarWavelet"
-                               , "HalfNormalDistribution"
-                               , "HamiltonianGraphQ"
-                               , "HammingDistance"
-                               , "HankelH1"
-                               , "HankelH2"
-                               , "HankelMatrix"
-                               , "HaradaNortonGroupHN"
-                               , "HararyGraph"
-                               , "HarmonicMean"
-                               , "HarmonicMeanFilter"
-                               , "HarmonicNumber"
-                               , "Hash"
-                               , "Haversine"
-                               , "HazardFunction"
-                               , "Head"
-                               , "Heads"
-                               , "HeavisideLambda"
-                               , "HeavisidePi"
-                               , "HeavisideTheta"
-                               , "HeldGroupHe"
-                               , "HermiteDecomposition"
-                               , "HermiteH"
-                               , "HermitianMatrixQ"
-                               , "HessenbergDecomposition"
-                               , "HexadecimalCharacter"
-                               , "HighlightGraph"
-                               , "HigmanSimsGroupHS"
-                               , "HilbertMatrix"
-                               , "Histogram"
-                               , "Histogram3D"
-                               , "HistogramDistribution"
-                               , "HistogramList"
-                               , "HitMissTransform"
-                               , "HITSCentrality"
-                               , "Hold"
-                               , "HoldAll"
-                               , "HoldAllComplete"
-                               , "HoldComplete"
-                               , "HoldFirst"
-                               , "HoldForm"
-                               , "HoldPattern"
-                               , "HoldRest"
-                               , "HornerForm"
-                               , "HotellingTSquareDistribution"
-                               , "HoytDistribution"
-                               , "Hue"
-                               , "HumpDownHump"
-                               , "HumpEqual"
-                               , "HurwitzLerchPhi"
-                               , "HurwitzZeta"
-                               , "HyperbolicDistribution"
-                               , "HypercubeGraph"
-                               , "Hyperfactorial"
-                               , "Hypergeometric0F1"
-                               , "Hypergeometric0F1Regularized"
-                               , "Hypergeometric1F1"
-                               , "Hypergeometric1F1Regularized"
-                               , "Hypergeometric2F1"
-                               , "Hypergeometric2F1Regularized"
-                               , "HypergeometricDistribution"
-                               , "HypergeometricPFQ"
-                               , "HypergeometricPFQRegularized"
-                               , "HypergeometricU"
-                               , "Hyperlink"
-                               , "Hyphenation"
-                               , "HypothesisTestData"
-                               , "I"
-                               , "Identity"
-                               , "IdentityMatrix"
-                               , "If"
-                               , "IgnoreCase"
-                               , "Im"
-                               , "Image"
-                               , "ImageAdd"
-                               , "ImageAdjust"
-                               , "ImageAlign"
-                               , "ImageApply"
-                               , "ImageAspectRatio"
-                               , "ImageAssemble"
-                               , "ImageCapture"
-                               , "ImageChannels"
-                               , "ImageClip"
-                               , "ImageColorSpace"
-                               , "ImageCompose"
-                               , "ImageConvolve"
-                               , "ImageCooccurrence"
-                               , "ImageCorrelate"
-                               , "ImageCorrespondingPoints"
-                               , "ImageCrop"
-                               , "ImageData"
-                               , "ImageDeconvolve"
-                               , "ImageDifference"
-                               , "ImageDimensions"
-                               , "ImageEffect"
-                               , "ImageFilter"
-                               , "ImageForestingComponents"
-                               , "ImageForwardTransformation"
-                               , "ImageHistogram"
-                               , "ImageKeypoints"
-                               , "ImageLevels"
-                               , "ImageLines"
-                               , "ImageMargins"
-                               , "ImageMultiply"
-                               , "ImagePad"
-                               , "ImagePadding"
-                               , "ImagePartition"
-                               , "ImagePerspectiveTransformation"
-                               , "ImageQ"
-                               , "ImageReflect"
-                               , "ImageResize"
-                               , "ImageResolution"
-                               , "ImageRotate"
-                               , "ImageScaled"
-                               , "ImageSize"
-                               , "ImageSizeAction"
-                               , "ImageSizeMultipliers"
-                               , "ImageSubtract"
-                               , "ImageTake"
-                               , "ImageTransformation"
-                               , "ImageTrim"
-                               , "ImageType"
-                               , "ImageValue"
-                               , "Implies"
-                               , "Import"
-                               , "ImportString"
-                               , "In"
-                               , "IncidenceGraph"
-                               , "IncidenceMatrix"
-                               , "IncludeConstantBasis"
-                               , "IncludePods"
-                               , "Increment"
-                               , "IndependentEdgeSetQ"
-                               , "IndependentVertexSetQ"
-                               , "Indeterminate"
-                               , "IndexGraph"
-                               , "InexactNumberQ"
-                               , "Infinity"
-                               , "Infix"
-                               , "Information"
-                               , "Inherited"
-                               , "Initialization"
-                               , "InitializationCell"
-                               , "Inner"
-                               , "Inpaint"
-                               , "Input"
-                               , "InputAliases"
-                               , "InputAssumptions"
-                               , "InputAutoReplacements"
-                               , "InputField"
-                               , "InputForm"
-                               , "InputNamePacket"
-                               , "InputNotebook"
-                               , "InputPacket"
-                               , "InputStream"
-                               , "InputString"
-                               , "InputStringPacket"
-                               , "Insert"
-                               , "InsertResults"
-                               , "Inset"
-                               , "Install"
-                               , "InstallService"
-                               , "InString"
-                               , "Integer"
-                               , "IntegerDigits"
-                               , "IntegerExponent"
-                               , "IntegerLength"
-                               , "IntegerPart"
-                               , "IntegerPartitions"
-                               , "IntegerQ"
-                               , "Integers"
-                               , "IntegerString"
-                               , "Integrate"
-                               , "InteractiveTradingChart"
-                               , "Interleaving"
-                               , "InternallyBalancedDecomposition"
-                               , "InterpolatingFunction"
-                               , "InterpolatingPolynomial"
-                               , "Interpolation"
-                               , "InterpolationOrder"
-                               , "Interpretation"
-                               , "InterpretationBox"
-                               , "InterquartileRange"
-                               , "Interrupt"
-                               , "Intersection"
-                               , "Interval"
-                               , "IntervalIntersection"
-                               , "IntervalMemberQ"
-                               , "IntervalUnion"
-                               , "Inverse"
-                               , "InverseBetaRegularized"
-                               , "InverseCDF"
-                               , "InverseChiSquareDistribution"
-                               , "InverseContinuousWaveletTransform"
-                               , "InverseDistanceTransform"
-                               , "InverseEllipticNomeQ"
-                               , "InverseErf"
-                               , "InverseErfc"
-                               , "InverseFourier"
-                               , "InverseFourierCosTransform"
-                               , "InverseFourierSequenceTransform"
-                               , "InverseFourierSinTransform"
-                               , "InverseFourierTransform"
-                               , "InverseFunction"
-                               , "InverseFunctions"
-                               , "InverseGammaDistribution"
-                               , "InverseGammaRegularized"
-                               , "InverseGaussianDistribution"
-                               , "InverseGudermannian"
-                               , "InverseHaversine"
-                               , "InverseJacobiCD"
-                               , "InverseJacobiCN"
-                               , "InverseJacobiCS"
-                               , "InverseJacobiDC"
-                               , "InverseJacobiDN"
-                               , "InverseJacobiDS"
-                               , "InverseJacobiNC"
-                               , "InverseJacobiND"
-                               , "InverseJacobiNS"
-                               , "InverseJacobiSC"
-                               , "InverseJacobiSD"
-                               , "InverseJacobiSN"
-                               , "InverseLaplaceTransform"
-                               , "InversePermutation"
-                               , "InverseRadon"
-                               , "InverseSeries"
-                               , "InverseSurvivalFunction"
-                               , "InverseWaveletTransform"
-                               , "InverseWeierstrassP"
-                               , "InverseZTransform"
-                               , "Invisible"
-                               , "IrreduciblePolynomialQ"
-                               , "IsolatingInterval"
-                               , "IsomorphicGraphQ"
-                               , "IsotopeData"
-                               , "Italic"
-                               , "Item"
-                               , "ItemAspectRatio"
-                               , "ItemSize"
-                               , "ItemStyle"
-                               , "J"
-                               , "JaccardDissimilarity"
-                               , "JacobiAmplitude"
-                               , "JacobiCD"
-                               , "JacobiCN"
-                               , "JacobiCS"
-                               , "JacobiDC"
-                               , "JacobiDN"
-                               , "JacobiDS"
-                               , "JacobiNC"
-                               , "JacobiND"
-                               , "JacobiNS"
-                               , "JacobiP"
-                               , "JacobiSC"
-                               , "JacobiSD"
-                               , "JacobiSN"
-                               , "JacobiSymbol"
-                               , "JacobiZeta"
-                               , "JankoGroupJ1"
-                               , "JankoGroupJ2"
-                               , "JankoGroupJ3"
-                               , "JankoGroupJ4"
-                               , "JarqueBeraALMTest"
-                               , "JohnsonDistribution"
-                               , "Join"
-                               , "Joined"
-                               , "JoinedCurve"
-                               , "JoinForm"
-                               , "JordanDecomposition"
-                               , "JordanModelDecomposition"
-                               , "K"
-                               , "KagiChart"
-                               , "KalmanEstimator"
-                               , "KarhunenLoeveDecomposition"
-                               , "KaryTree"
-                               , "KatzCentrality"
-                               , "KCoreComponents"
-                               , "KDistribution"
-                               , "KelvinBei"
-                               , "KelvinBer"
-                               , "KelvinKei"
-                               , "KelvinKer"
-                               , "KernelMixtureDistribution"
-                               , "KernelObject"
-                               , "Kernels"
-                               , "Khinchin"
-                               , "KirchhoffGraph"
-                               , "KirchhoffMatrix"
-                               , "KleinInvariantJ"
-                               , "KnightTourGraph"
-                               , "KnotData"
-                               , "KolmogorovSmirnovTest"
-                               , "KroneckerDelta"
-                               , "KroneckerProduct"
-                               , "KroneckerSymbol"
-                               , "KuiperTest"
-                               , "KumaraswamyDistribution"
-                               , "Kurtosis"
-                               , "KuwaharaFilter"
-                               , "L"
-                               , "Label"
-                               , "Labeled"
-                               , "LabelingFunction"
-                               , "LabelStyle"
-                               , "LaguerreL"
-                               , "LandauDistribution"
-                               , "LanguageCategory"
-                               , "LaplaceDistribution"
-                               , "LaplaceTransform"
-                               , "LaplacianFilter"
-                               , "LaplacianGaussianFilter"
-                               , "Large"
-                               , "Larger"
-                               , "Last"
-                               , "Latitude"
-                               , "LatitudeLongitude"
-                               , "LatticeData"
-                               , "LatticeReduce"
-                               , "LaunchKernels"
-                               , "LayeredGraphPlot"
-                               , "LayerSizeFunction"
-                               , "LCM"
-                               , "LeafCount"
-                               , "LeastSquares"
-                               , "Left"
-                               , "LeftArrow"
-                               , "LeftArrowBar"
-                               , "LeftArrowRightArrow"
-                               , "LeftDownTeeVector"
-                               , "LeftDownVector"
-                               , "LeftDownVectorBar"
-                               , "LeftRightArrow"
-                               , "LeftRightVector"
-                               , "LeftTeeArrow"
-                               , "LeftTeeVector"
-                               , "LeftTriangle"
-                               , "LeftTriangleBar"
-                               , "LeftTriangleEqual"
-                               , "LeftUpDownVector"
-                               , "LeftUpTeeVector"
-                               , "LeftUpVector"
-                               , "LeftUpVectorBar"
-                               , "LeftVector"
-                               , "LeftVectorBar"
-                               , "LegendAppearance"
-                               , "Legended"
-                               , "LegendreP"
-                               , "LegendreQ"
-                               , "Length"
-                               , "LengthWhile"
-                               , "LerchPhi"
-                               , "Less"
-                               , "LessEqual"
-                               , "LessEqualGreater"
-                               , "LessFullEqual"
-                               , "LessGreater"
-                               , "LessLess"
-                               , "LessSlantEqual"
-                               , "LessTilde"
-                               , "LetterCharacter"
-                               , "LetterQ"
-                               , "Level"
-                               , "LeveneTest"
-                               , "LeviCivitaTensor"
-                               , "LevyDistribution"
-                               , "LibraryFunction"
-                               , "LibraryFunctionError"
-                               , "LibraryFunctionInformation"
-                               , "LibraryFunctionLoad"
-                               , "LibraryFunctionUnload"
-                               , "LibraryLoad"
-                               , "LibraryUnload"
-                               , "LiftingFilterData"
-                               , "LiftingWaveletTransform"
-                               , "LightBlue"
-                               , "LightBrown"
-                               , "LightCyan"
-                               , "Lighter"
-                               , "LightGray"
-                               , "LightGreen"
-                               , "Lighting"
-                               , "LightingAngle"
-                               , "LightMagenta"
-                               , "LightOrange"
-                               , "LightPink"
-                               , "LightPurple"
-                               , "LightRed"
-                               , "LightYellow"
-                               , "Likelihood"
-                               , "Limit"
-                               , "LimitsPositioning"
-                               , "LindleyDistribution"
-                               , "Line"
-                               , "LinearFractionalTransform"
-                               , "LinearModelFit"
-                               , "LinearOffsetFunction"
-                               , "LinearProgramming"
-                               , "LinearRecurrence"
-                               , "LinearSolve"
-                               , "LinearSolveFunction"
-                               , "LineBreakChart"
-                               , "LineGraph"
-                               , "LineIndent"
-                               , "LineIndentMaxFraction"
-                               , "LineIntegralConvolutionPlot"
-                               , "LineIntegralConvolutionScale"
-                               , "LineSpacing"
-                               , "LinkClose"
-                               , "LinkConnect"
-                               , "LinkCreate"
-                               , "LinkFunction"
-                               , "LinkInterrupt"
-                               , "LinkLaunch"
-                               , "LinkObject"
-                               , "LinkPatterns"
-                               , "LinkProtocol"
-                               , "LinkRead"
-                               , "LinkReadyQ"
-                               , "Links"
-                               , "LinkWrite"
-                               , "LiouvilleLambda"
-                               , "List"
-                               , "Listable"
-                               , "ListAnimate"
-                               , "ListContourPlot"
-                               , "ListContourPlot3D"
-                               , "ListConvolve"
-                               , "ListCorrelate"
-                               , "ListCurvePathPlot"
-                               , "ListDeconvolve"
-                               , "ListDensityPlot"
-                               , "ListInterpolation"
-                               , "ListLineIntegralConvolutionPlot"
-                               , "ListLinePlot"
-                               , "ListLogLinearPlot"
-                               , "ListLogLogPlot"
-                               , "ListLogPlot"
-                               , "ListPlay"
-                               , "ListPlot"
-                               , "ListPlot3D"
-                               , "ListPointPlot3D"
-                               , "ListPolarPlot"
-                               , "ListStreamDensityPlot"
-                               , "ListStreamPlot"
-                               , "ListSurfacePlot3D"
-                               , "ListVectorDensityPlot"
-                               , "ListVectorPlot"
-                               , "ListVectorPlot3D"
-                               , "LocalizeVariables"
-                               , "LocationEquivalenceTest"
-                               , "LocationTest"
-                               , "Locator"
-                               , "LocatorAutoCreate"
-                               , "LocatorPane"
-                               , "LocatorRegion"
-                               , "Locked"
-                               , "Log"
-                               , "Log10"
-                               , "Log2"
-                               , "LogBarnesG"
-                               , "LogGamma"
-                               , "LogGammaDistribution"
-                               , "LogicalExpand"
-                               , "LogIntegral"
-                               , "LogisticDistribution"
-                               , "LogitModelFit"
-                               , "LogLikelihood"
-                               , "LogLinearPlot"
-                               , "LogLogisticDistribution"
-                               , "LogLogPlot"
-                               , "LogNormalDistribution"
-                               , "LogPlot"
-                               , "LogSeriesDistribution"
-                               , "Longest"
-                               , "LongestCommonSequence"
-                               , "LongestCommonSubsequence"
-                               , "Longitude"
-                               , "LongLeftArrow"
-                               , "LongLeftRightArrow"
-                               , "LongRightArrow"
-                               , "LoopFreeGraphQ"
-                               , "LowerCaseQ"
-                               , "LowerLeftArrow"
-                               , "LowerRightArrow"
-                               , "LowerTriangularize"
-                               , "LQEstimatorGains"
-                               , "LQGRegulator"
-                               , "LQOutputRegulatorGains"
-                               , "LQRegulatorGains"
-                               , "LucasL"
-                               , "LUDecomposition"
-                               , "LyapunovSolve"
-                               , "LyonsGroupLy"
-                               , "M"
-                               , "MachineNumberQ"
-                               , "MachinePrecision"
-                               , "Magenta"
-                               , "Magnification"
-                               , "Magnify"
-                               , "Majority"
-                               , "MakeBoxes"
-                               , "MakeExpression"
-                               , "MangoldtLambda"
-                               , "ManhattanDistance"
-                               , "Manipulate"
-                               , "Manipulator"
-                               , "MannWhitneyTest"
-                               , "MantissaExponent"
-                               , "Manual"
-                               , "Map"
-                               , "MapAll"
-                               , "MapAt"
-                               , "MapIndexed"
-                               , "MapThread"
-                               , "MarcumQ"
-                               , "MardiaCombinedTest"
-                               , "MardiaKurtosisTest"
-                               , "MardiaSkewnessTest"
-                               , "MarginalDistribution"
-                               , "Masking"
-                               , "MatchingDissimilarity"
-                               , "MatchLocalNames"
-                               , "MatchQ"
-                               , "MathieuC"
-                               , "MathieuCharacteristicA"
-                               , "MathieuCharacteristicB"
-                               , "MathieuCharacteristicExponent"
-                               , "MathieuCPrime"
-                               , "MathieuGroupM11"
-                               , "MathieuGroupM12"
-                               , "MathieuGroupM22"
-                               , "MathieuGroupM23"
-                               , "MathieuGroupM24"
-                               , "MathieuS"
-                               , "MathieuSPrime"
-                               , "MathMLForm"
-                               , "MatrixExp"
-                               , "MatrixForm"
-                               , "MatrixPlot"
-                               , "MatrixPower"
-                               , "MatrixQ"
-                               , "MatrixRank"
-                               , "Max"
-                               , "MaxDetect"
-                               , "MaxExtraBandwidths"
-                               , "MaxExtraConditions"
-                               , "MaxFilter"
-                               , "Maximize"
-                               , "MaxIterations"
-                               , "MaxMemoryUsed"
-                               , "MaxMixtureKernels"
-                               , "MaxPlotPoints"
-                               , "MaxRecursion"
-                               , "MaxStableDistribution"
-                               , "MaxStepFraction"
-                               , "MaxSteps"
-                               , "MaxStepSize"
-                               , "MaxValue"
-                               , "MaxwellDistribution"
-                               , "McLaughlinGroupMcL"
-                               , "Mean"
-                               , "MeanDeviation"
-                               , "MeanFilter"
-                               , "MeanShift"
-                               , "MeanShiftFilter"
-                               , "Median"
-                               , "MedianDeviation"
-                               , "MedianFilter"
-                               , "Medium"
-                               , "MeijerG"
-                               , "MemberQ"
-                               , "MemoryConstrained"
-                               , "MemoryInUse"
-                               , "MenuCommandKey"
-                               , "MenuPacket"
-                               , "MenuSortingValue"
-                               , "MenuStyle"
-                               , "MenuView"
-                               , "Mesh"
-                               , "MeshFunctions"
-                               , "MeshShading"
-                               , "MeshStyle"
-                               , "Message"
-                               , "MessageDialog"
-                               , "MessageList"
-                               , "MessageName"
-                               , "MessagePacket"
-                               , "Messages"
-                               , "Method"
-                               , "MexicanHatWavelet"
-                               , "MeyerWavelet"
-                               , "Min"
-                               , "MinDetect"
-                               , "MinFilter"
-                               , "MinimalPolynomial"
-                               , "MinimalStateSpaceModel"
-                               , "Minimize"
-                               , "Minors"
-                               , "MinStableDistribution"
-                               , "Minus"
-                               , "MinusPlus"
-                               , "MinValue"
-                               , "Missing"
-                               , "MixtureDistribution"
-                               , "Mod"
-                               , "Modal"
-                               , "ModularLambda"
-                               , "Module"
-                               , "Modulus"
-                               , "MoebiusMu"
-                               , "Moment"
-                               , "MomentConvert"
-                               , "MomentEvaluate"
-                               , "MomentGeneratingFunction"
-                               , "Monitor"
-                               , "MonomialList"
-                               , "MonsterGroupM"
-                               , "MorletWavelet"
-                               , "MorphologicalBinarize"
-                               , "MorphologicalBranchPoints"
-                               , "MorphologicalComponents"
-                               , "MorphologicalEulerNumber"
-                               , "MorphologicalGraph"
-                               , "MorphologicalPerimeter"
-                               , "MorphologicalTransform"
-                               , "Most"
-                               , "MouseAnnotation"
-                               , "MouseAppearance"
-                               , "Mouseover"
-                               , "MousePosition"
-                               , "MovingAverage"
-                               , "MovingMedian"
-                               , "MoyalDistribution"
-                               , "MultiedgeStyle"
-                               , "Multinomial"
-                               , "MultinomialDistribution"
-                               , "MultinormalDistribution"
-                               , "MultiplicativeOrder"
-                               , "MultivariateHypergeometricDistribution"
-                               , "MultivariatePoissonDistribution"
-                               , "MultivariateTDistribution"
-                               , "N"
-                               , "NakagamiDistribution"
-                               , "NameQ"
-                               , "Names"
-                               , "Nand"
-                               , "NArgMax"
-                               , "NArgMin"
-                               , "NCache"
-                               , "NDSolve"
-                               , "Nearest"
-                               , "NearestFunction"
-                               , "NeedlemanWunschSimilarity"
-                               , "Needs"
-                               , "Negative"
-                               , "NegativeBinomialDistribution"
-                               , "NegativeMultinomialDistribution"
-                               , "NeighborhoodGraph"
-                               , "Nest"
-                               , "NestedGreaterGreater"
-                               , "NestedLessLess"
-                               , "NestList"
-                               , "NestWhile"
-                               , "NestWhileList"
-                               , "NevilleThetaC"
-                               , "NevilleThetaD"
-                               , "NevilleThetaN"
-                               , "NevilleThetaS"
-                               , "NExpectation"
-                               , "NextPrime"
-                               , "NHoldAll"
-                               , "NHoldFirst"
-                               , "NHoldRest"
-                               , "NicholsGridLines"
-                               , "NicholsPlot"
-                               , "NIntegrate"
-                               , "NMaximize"
-                               , "NMaxValue"
-                               , "NMinimize"
-                               , "NMinValue"
-                               , "NominalVariables"
-                               , "NoncentralBetaDistribution"
-                               , "NoncentralChiSquareDistribution"
-                               , "NoncentralFRatioDistribution"
-                               , "NoncentralStudentTDistribution"
-                               , "NonCommutativeMultiply"
-                               , "NonConstants"
-                               , "None"
-                               , "NonlinearModelFit"
-                               , "NonNegative"
-                               , "NonPositive"
-                               , "Nor"
-                               , "NorlundB"
-                               , "Norm"
-                               , "Normal"
-                               , "NormalDistribution"
-                               , "Normalize"
-                               , "NormalizedSquaredEuclideanDistance"
-                               , "NormalsFunction"
-                               , "NormFunction"
-                               , "Not"
-                               , "NotCongruent"
-                               , "NotCupCap"
-                               , "NotDoubleVerticalBar"
-                               , "Notebook"
-                               , "NotebookApply"
-                               , "NotebookAutoSave"
-                               , "NotebookClose"
-                               , "NotebookDelete"
-                               , "NotebookDirectory"
-                               , "NotebookDynamicExpression"
-                               , "NotebookEvaluate"
-                               , "NotebookEventActions"
-                               , "NotebookFileName"
-                               , "NotebookFind"
-                               , "NotebookGet"
-                               , "NotebookInformation"
-                               , "NotebookLocate"
-                               , "NotebookObject"
-                               , "NotebookOpen"
-                               , "NotebookPrint"
-                               , "NotebookPut"
-                               , "NotebookRead"
-                               , "Notebooks"
-                               , "NotebookSave"
-                               , "NotebookSelection"
-                               , "NotebookWrite"
-                               , "NotElement"
-                               , "NotEqualTilde"
-                               , "NotExists"
-                               , "NotGreater"
-                               , "NotGreaterEqual"
-                               , "NotGreaterFullEqual"
-                               , "NotGreaterGreater"
-                               , "NotGreaterLess"
-                               , "NotGreaterSlantEqual"
-                               , "NotGreaterTilde"
-                               , "NotHumpDownHump"
-                               , "NotHumpEqual"
-                               , "NotLeftTriangle"
-                               , "NotLeftTriangleBar"
-                               , "NotLeftTriangleEqual"
-                               , "NotLess"
-                               , "NotLessEqual"
-                               , "NotLessFullEqual"
-                               , "NotLessGreater"
-                               , "NotLessLess"
-                               , "NotLessSlantEqual"
-                               , "NotLessTilde"
-                               , "NotNestedGreaterGreater"
-                               , "NotNestedLessLess"
-                               , "NotPrecedes"
-                               , "NotPrecedesEqual"
-                               , "NotPrecedesSlantEqual"
-                               , "NotPrecedesTilde"
-                               , "NotReverseElement"
-                               , "NotRightTriangle"
-                               , "NotRightTriangleBar"
-                               , "NotRightTriangleEqual"
-                               , "NotSquareSubset"
-                               , "NotSquareSubsetEqual"
-                               , "NotSquareSuperset"
-                               , "NotSquareSupersetEqual"
-                               , "NotSubset"
-                               , "NotSubsetEqual"
-                               , "NotSucceeds"
-                               , "NotSucceedsEqual"
-                               , "NotSucceedsSlantEqual"
-                               , "NotSucceedsTilde"
-                               , "NotSuperset"
-                               , "NotSupersetEqual"
-                               , "NotTilde"
-                               , "NotTildeEqual"
-                               , "NotTildeFullEqual"
-                               , "NotTildeTilde"
-                               , "NotVerticalBar"
-                               , "NProbability"
-                               , "NProduct"
-                               , "NRoots"
-                               , "NSolve"
-                               , "NSum"
-                               , "Null"
-                               , "NullRecords"
-                               , "NullSpace"
-                               , "NullWords"
-                               , "Number"
-                               , "NumberFieldClassNumber"
-                               , "NumberFieldDiscriminant"
-                               , "NumberFieldFundamentalUnits"
-                               , "NumberFieldIntegralBasis"
-                               , "NumberFieldNormRepresentatives"
-                               , "NumberFieldRegulator"
-                               , "NumberFieldRootsOfUnity"
-                               , "NumberFieldSignature"
-                               , "NumberForm"
-                               , "NumberFormat"
-                               , "NumberMarks"
-                               , "NumberMultiplier"
-                               , "NumberPadding"
-                               , "NumberPoint"
-                               , "NumberQ"
-                               , "NumberSeparator"
-                               , "NumberSigns"
-                               , "NumberString"
-                               , "Numerator"
-                               , "NumericFunction"
-                               , "NumericQ"
-                               , "NyquistGridLines"
-                               , "NyquistPlot"
-                               , "O"
-                               , "ObservabilityGramian"
-                               , "ObservabilityMatrix"
-                               , "ObservableDecomposition"
-                               , "ObservableModelQ"
-                               , "OddQ"
-                               , "Off"
-                               , "Offset"
-                               , "On"
-                               , "ONanGroupON"
-                               , "OneIdentity"
-                               , "Opacity"
-                               , "OpenAppend"
-                               , "Opener"
-                               , "OpenerView"
-                               , "Opening"
-                               , "OpenRead"
-                               , "OpenWrite"
-                               , "Operate"
-                               , "OperatingSystem"
-                               , "Optional"
-                               , "Options"
-                               , "OptionsPattern"
-                               , "OptionValue"
-                               , "Or"
-                               , "Orange"
-                               , "Order"
-                               , "OrderDistribution"
-                               , "OrderedQ"
-                               , "Ordering"
-                               , "Orderless"
-                               , "Orthogonalize"
-                               , "Out"
-                               , "Outer"
-                               , "OutputControllabilityMatrix"
-                               , "OutputControllableModelQ"
-                               , "OutputForm"
-                               , "OutputNamePacket"
-                               , "OutputResponse"
-                               , "OutputSizeLimit"
-                               , "OutputStream"
-                               , "OverBar"
-                               , "OverDot"
-                               , "Overflow"
-                               , "OverHat"
-                               , "Overlaps"
-                               , "Overlay"
-                               , "Overscript"
-                               , "OverscriptBox"
-                               , "OverTilde"
-                               , "OverVector"
-                               , "OwenT"
-                               , "OwnValues"
-                               , "P"
-                               , "PackingMethod"
-                               , "PaddedForm"
-                               , "Padding"
-                               , "PadeApproximant"
-                               , "PadLeft"
-                               , "PadRight"
-                               , "PageBreakAbove"
-                               , "PageBreakBelow"
-                               , "PageBreakWithin"
-                               , "PageFooters"
-                               , "PageHeaders"
-                               , "PageRankCentrality"
-                               , "PageWidth"
-                               , "PairedBarChart"
-                               , "PairedHistogram"
-                               , "PairedTTest"
-                               , "PairedZTest"
-                               , "PaletteNotebook"
-                               , "Pane"
-                               , "Panel"
-                               , "Paneled"
-                               , "PaneSelector"
-                               , "ParabolicCylinderD"
-                               , "ParagraphIndent"
-                               , "ParagraphSpacing"
-                               , "ParallelArray"
-                               , "ParallelCombine"
-                               , "ParallelDo"
-                               , "ParallelEvaluate"
-                               , "Parallelization"
-                               , "Parallelize"
-                               , "ParallelMap"
-                               , "ParallelNeeds"
-                               , "ParallelProduct"
-                               , "ParallelSubmit"
-                               , "ParallelSum"
-                               , "ParallelTable"
-                               , "ParallelTry"
-                               , "ParameterEstimator"
-                               , "ParameterMixtureDistribution"
-                               , "ParametricPlot"
-                               , "ParametricPlot3D"
-                               , "ParentDirectory"
-                               , "ParetoDistribution"
-                               , "Part"
-                               , "ParticleData"
-                               , "Partition"
-                               , "PartitionsP"
-                               , "PartitionsQ"
-                               , "PascalDistribution"
-                               , "PassEventsDown"
-                               , "PassEventsUp"
-                               , "Paste"
-                               , "PasteButton"
-                               , "Path"
-                               , "PathGraph"
-                               , "PathGraphQ"
-                               , "Pattern"
-                               , "PatternSequence"
-                               , "PatternTest"
-                               , "PauliMatrix"
-                               , "PaulWavelet"
-                               , "Pause"
-                               , "PDF"
-                               , "PearsonChiSquareTest"
-                               , "PearsonDistribution"
-                               , "PerformanceGoal"
-                               , "PermutationCycles"
-                               , "PermutationCyclesQ"
-                               , "PermutationGroup"
-                               , "PermutationLength"
-                               , "PermutationList"
-                               , "PermutationListQ"
-                               , "PermutationMax"
-                               , "PermutationMin"
-                               , "PermutationOrder"
-                               , "PermutationPower"
-                               , "PermutationProduct"
-                               , "PermutationReplace"
-                               , "Permutations"
-                               , "PermutationSupport"
-                               , "Permute"
-                               , "PeronaMalikFilter"
-                               , "PERTDistribution"
-                               , "PetersenGraph"
-                               , "PhaseMargins"
-                               , "Pi"
-                               , "Pick"
-                               , "Piecewise"
-                               , "PiecewiseExpand"
-                               , "PieChart"
-                               , "PieChart3D"
-                               , "Pink"
-                               , "PixelConstrained"
-                               , "PixelValue"
-                               , "Placed"
-                               , "Placeholder"
-                               , "PlaceholderReplace"
-                               , "Plain"
-                               , "Play"
-                               , "PlayRange"
-                               , "Plot"
-                               , "Plot3D"
-                               , "PlotLabel"
-                               , "PlotLayout"
-                               , "PlotMarkers"
-                               , "PlotPoints"
-                               , "PlotRange"
-                               , "PlotRangeClipping"
-                               , "PlotRangePadding"
-                               , "PlotRegion"
-                               , "PlotStyle"
-                               , "Plus"
-                               , "PlusMinus"
-                               , "Pochhammer"
-                               , "PodStates"
-                               , "PodWidth"
-                               , "Point"
-                               , "PointFigureChart"
-                               , "PointSize"
-                               , "PoissonConsulDistribution"
-                               , "PoissonDistribution"
-                               , "PolarAxes"
-                               , "PolarAxesOrigin"
-                               , "PolarGridLines"
-                               , "PolarPlot"
-                               , "PolarTicks"
-                               , "PoleZeroMarkers"
-                               , "PolyaAeppliDistribution"
-                               , "PolyGamma"
-                               , "Polygon"
-                               , "PolyhedronData"
-                               , "PolyLog"
-                               , "PolynomialExtendedGCD"
-                               , "PolynomialGCD"
-                               , "PolynomialLCM"
-                               , "PolynomialMod"
-                               , "PolynomialQ"
-                               , "PolynomialQuotient"
-                               , "PolynomialQuotientRemainder"
-                               , "PolynomialReduce"
-                               , "PolynomialRemainder"
-                               , "PopupMenu"
-                               , "PopupView"
-                               , "PopupWindow"
-                               , "Position"
-                               , "Positive"
-                               , "PositiveDefiniteMatrixQ"
-                               , "PossibleZeroQ"
-                               , "Postfix"
-                               , "Power"
-                               , "PowerDistribution"
-                               , "PowerExpand"
-                               , "PowerMod"
-                               , "PowerModList"
-                               , "PowersRepresentations"
-                               , "PowerSymmetricPolynomial"
-                               , "PrecedenceForm"
-                               , "Precedes"
-                               , "PrecedesEqual"
-                               , "PrecedesSlantEqual"
-                               , "PrecedesTilde"
-                               , "Precision"
-                               , "PrecisionGoal"
-                               , "PreDecrement"
-                               , "PreemptProtect"
-                               , "Prefix"
-                               , "PreIncrement"
-                               , "Prepend"
-                               , "PrependTo"
-                               , "PreserveImageOptions"
-                               , "PriceGraphDistribution"
-                               , "Prime"
-                               , "PrimeNu"
-                               , "PrimeOmega"
-                               , "PrimePi"
-                               , "PrimePowerQ"
-                               , "PrimeQ"
-                               , "Primes"
-                               , "PrimeZetaP"
-                               , "PrimitiveRoot"
-                               , "PrincipalComponents"
-                               , "PrincipalValue"
-                               , "Print"
-                               , "PrintingStyleEnvironment"
-                               , "PrintTemporary"
-                               , "Probability"
-                               , "ProbabilityDistribution"
-                               , "ProbabilityPlot"
-                               , "ProbabilityScalePlot"
-                               , "ProbitModelFit"
-                               , "Product"
-                               , "ProductDistribution"
-                               , "ProductLog"
-                               , "ProgressIndicator"
-                               , "Projection"
-                               , "Prolog"
-                               , "Properties"
-                               , "Property"
-                               , "PropertyList"
-                               , "PropertyValue"
-                               , "Proportion"
-                               , "Proportional"
-                               , "Protect"
-                               , "Protected"
-                               , "ProteinData"
-                               , "Pruning"
-                               , "PseudoInverse"
-                               , "Purple"
-                               , "Put"
-                               , "PutAppend"
-                               , "Q"
-                               , "QBinomial"
-                               , "QFactorial"
-                               , "QGamma"
-                               , "QHypergeometricPFQ"
-                               , "QPochhammer"
-                               , "QPolyGamma"
-                               , "QRDecomposition"
-                               , "QuadraticIrrationalQ"
-                               , "Quantile"
-                               , "QuantilePlot"
-                               , "Quartics"
-                               , "QuartileDeviation"
-                               , "Quartiles"
-                               , "QuartileSkewness"
-                               , "Quiet"
-                               , "Quit"
-                               , "Quotient"
-                               , "QuotientRemainder"
-                               , "R"
-                               , "RadicalBox"
-                               , "RadioButton"
-                               , "RadioButtonBar"
-                               , "Radon"
-                               , "RamanujanTau"
-                               , "RamanujanTauL"
-                               , "RamanujanTauTheta"
-                               , "RamanujanTauZ"
-                               , "RandomChoice"
-                               , "RandomComplex"
-                               , "RandomGraph"
-                               , "RandomImage"
-                               , "RandomInteger"
-                               , "RandomPermutation"
-                               , "RandomPrime"
-                               , "RandomReal"
-                               , "RandomSample"
-                               , "RandomVariate"
-                               , "Range"
-                               , "RangeFilter"
-                               , "RankedMax"
-                               , "RankedMin"
-                               , "Raster"
-                               , "Rasterize"
-                               , "RasterSize"
-                               , "Rational"
-                               , "Rationalize"
-                               , "Rationals"
-                               , "Ratios"
-                               , "RawBoxes"
-                               , "RawData"
-                               , "RayleighDistribution"
-                               , "Re"
-                               , "Read"
-                               , "ReadList"
-                               , "ReadProtected"
-                               , "Real"
-                               , "RealBlockDiagonalForm"
-                               , "RealDigits"
-                               , "RealExponent"
-                               , "Reals"
-                               , "Reap"
-                               , "Record"
-                               , "RecordLists"
-                               , "RecordSeparators"
-                               , "Rectangle"
-                               , "RectangleChart"
-                               , "RectangleChart3D"
-                               , "RecurrenceTable"
-                               , "Red"
-                               , "Reduce"
-                               , "ReferenceLineStyle"
-                               , "Refine"
-                               , "ReflectionMatrix"
-                               , "ReflectionTransform"
-                               , "Refresh"
-                               , "RefreshRate"
-                               , "RegionBinarize"
-                               , "RegionFunction"
-                               , "RegionPlot"
-                               , "RegionPlot3D"
-                               , "RegularExpression"
-                               , "Regularization"
-                               , "ReleaseHold"
-                               , "ReliefImage"
-                               , "ReliefPlot"
-                               , "Remove"
-                               , "RemoveAlphaChannel"
-                               , "RemoveProperty"
-                               , "RemoveScheduledTask"
-                               , "RenameDirectory"
-                               , "RenameFile"
-                               , "RenkoChart"
-                               , "Repeated"
-                               , "RepeatedNull"
-                               , "Replace"
-                               , "ReplaceAll"
-                               , "ReplaceList"
-                               , "ReplacePart"
-                               , "ReplaceRepeated"
-                               , "Resampling"
-                               , "Rescale"
-                               , "RescalingTransform"
-                               , "ResetDirectory"
-                               , "ResetScheduledTask"
-                               , "Residue"
-                               , "Resolve"
-                               , "Rest"
-                               , "Resultant"
-                               , "ResumePacket"
-                               , "Return"
-                               , "ReturnExpressionPacket"
-                               , "ReturnPacket"
-                               , "ReturnTextPacket"
-                               , "Reverse"
-                               , "ReverseBiorthogonalSplineWavelet"
-                               , "ReverseElement"
-                               , "ReverseEquilibrium"
-                               , "ReverseGraph"
-                               , "ReverseUpEquilibrium"
-                               , "RevolutionAxis"
-                               , "RevolutionPlot3D"
-                               , "RGBColor"
-                               , "RiccatiSolve"
-                               , "RiceDistribution"
-                               , "RidgeFilter"
-                               , "RiemannR"
-                               , "RiemannSiegelTheta"
-                               , "RiemannSiegelZ"
-                               , "Riffle"
-                               , "Right"
-                               , "RightArrow"
-                               , "RightArrowBar"
-                               , "RightArrowLeftArrow"
-                               , "RightCosetRepresentative"
-                               , "RightDownTeeVector"
-                               , "RightDownVector"
-                               , "RightDownVectorBar"
-                               , "RightTeeArrow"
-                               , "RightTeeVector"
-                               , "RightTriangle"
-                               , "RightTriangleBar"
-                               , "RightTriangleEqual"
-                               , "RightUpDownVector"
-                               , "RightUpTeeVector"
-                               , "RightUpVector"
-                               , "RightUpVectorBar"
-                               , "RightVector"
-                               , "RightVectorBar"
-                               , "RogersTanimotoDissimilarity"
-                               , "Root"
-                               , "RootApproximant"
-                               , "RootIntervals"
-                               , "RootLocusPlot"
-                               , "RootMeanSquare"
-                               , "RootOfUnityQ"
-                               , "RootReduce"
-                               , "Roots"
-                               , "RootSum"
-                               , "Rotate"
-                               , "RotateLabel"
-                               , "RotateLeft"
-                               , "RotateRight"
-                               , "RotationAction"
-                               , "RotationMatrix"
-                               , "RotationTransform"
-                               , "Round"
-                               , "RoundingRadius"
-                               , "Row"
-                               , "RowAlignments"
-                               , "RowBox"
-                               , "RowLines"
-                               , "RowMinHeight"
-                               , "RowReduce"
-                               , "RowsEqual"
-                               , "RowSpacings"
-                               , "RSolve"
-                               , "RudvalisGroupRu"
-                               , "Rule"
-                               , "RuleDelayed"
-                               , "Run"
-                               , "RunScheduledTask"
-                               , "RunThrough"
-                               , "RuntimeAttributes"
-                               , "RuntimeOptions"
-                               , "RussellRaoDissimilarity"
-                               , "S"
-                               , "SameQ"
-                               , "SameTest"
-                               , "SampleDepth"
-                               , "SampledSoundFunction"
-                               , "SampledSoundList"
-                               , "SampleRate"
-                               , "SamplingPeriod"
-                               , "SatisfiabilityCount"
-                               , "SatisfiabilityInstances"
-                               , "SatisfiableQ"
-                               , "Save"
-                               , "SaveDefinitions"
-                               , "SawtoothWave"
-                               , "Scale"
-                               , "Scaled"
-                               , "ScalingFunctions"
-                               , "ScalingMatrix"
-                               , "ScalingTransform"
-                               , "Scan"
-                               , "ScheduledTaskObject"
-                               , "ScheduledTasks"
-                               , "SchurDecomposition"
-                               , "ScientificForm"
-                               , "ScreenStyleEnvironment"
-                               , "ScriptBaselineShifts"
-                               , "ScriptMinSize"
-                               , "ScriptSizeMultipliers"
-                               , "Scrollbars"
-                               , "ScrollPosition"
-                               , "Sec"
-                               , "Sech"
-                               , "SechDistribution"
-                               , "SectorChart"
-                               , "SectorChart3D"
-                               , "SectorOrigin"
-                               , "SectorSpacing"
-                               , "SeedRandom"
-                               , "Select"
-                               , "Selectable"
-                               , "SelectComponents"
-                               , "SelectedNotebook"
-                               , "SelectionAnimate"
-                               , "SelectionCreateCell"
-                               , "SelectionEvaluate"
-                               , "SelectionEvaluateCreateCell"
-                               , "SelectionMove"
-                               , "SelfLoopStyle"
-                               , "SemialgebraicComponentInstances"
-                               , "SendMail"
-                               , "Sequence"
-                               , "SequenceAlignment"
-                               , "SequenceHold"
-                               , "Series"
-                               , "SeriesCoefficient"
-                               , "SeriesData"
-                               , "SessionTime"
-                               , "Set"
-                               , "SetAccuracy"
-                               , "SetAlphaChannel"
-                               , "SetAttributes"
-                               , "SetDelayed"
-                               , "SetDirectory"
-                               , "SetFileDate"
-                               , "SetOptions"
-                               , "SetPrecision"
-                               , "SetProperty"
-                               , "SetSelectedNotebook"
-                               , "SetSharedFunction"
-                               , "SetSharedVariable"
-                               , "SetStreamPosition"
-                               , "SetSystemOptions"
-                               , "Setter"
-                               , "SetterBar"
-                               , "Setting"
-                               , "Shallow"
-                               , "ShannonWavelet"
-                               , "ShapiroWilkTest"
-                               , "Share"
-                               , "Sharpen"
-                               , "ShearingMatrix"
-                               , "ShearingTransform"
-                               , "Short"
-                               , "ShortDownArrow"
-                               , "Shortest"
-                               , "ShortestPathFunction"
-                               , "ShortLeftArrow"
-                               , "ShortRightArrow"
-                               , "ShortUpArrow"
-                               , "Show"
-                               , "ShowAutoStyles"
-                               , "ShowCellBracket"
-                               , "ShowCellLabel"
-                               , "ShowCellTags"
-                               , "ShowCursorTracker"
-                               , "ShowGroupOpener"
-                               , "ShowPageBreaks"
-                               , "ShowSelection"
-                               , "ShowSpecialCharacters"
-                               , "ShowStringCharacters"
-                               , "ShrinkingDelay"
-                               , "SiegelTheta"
-                               , "SiegelTukeyTest"
-                               , "Sign"
-                               , "Signature"
-                               , "SignedRankTest"
-                               , "SignificanceLevel"
-                               , "SignPadding"
-                               , "SignTest"
-                               , "SimilarityRules"
-                               , "SimpleGraph"
-                               , "SimpleGraphQ"
-                               , "Simplify"
-                               , "Sin"
-                               , "Sinc"
-                               , "SinghMaddalaDistribution"
-                               , "SingleLetterItalics"
-                               , "SingularValueDecomposition"
-                               , "SingularValueList"
-                               , "SingularValuePlot"
-                               , "Sinh"
-                               , "SinhIntegral"
-                               , "SinIntegral"
-                               , "SixJSymbol"
-                               , "Skeleton"
-                               , "SkeletonTransform"
-                               , "SkellamDistribution"
-                               , "Skewness"
-                               , "SkewNormalDistribution"
-                               , "Skip"
-                               , "Slider"
-                               , "Slider2D"
-                               , "SlideView"
-                               , "Slot"
-                               , "SlotSequence"
-                               , "Small"
-                               , "SmallCircle"
-                               , "Smaller"
-                               , "SmithWatermanSimilarity"
-                               , "SmoothDensityHistogram"
-                               , "SmoothHistogram"
-                               , "SmoothHistogram3D"
-                               , "SmoothKernelDistribution"
-                               , "SokalSneathDissimilarity"
-                               , "Solve"
-                               , "SolveAlways"
-                               , "Sort"
-                               , "SortBy"
-                               , "Sound"
-                               , "SoundNote"
-                               , "SoundVolume"
-                               , "Sow"
-                               , "Spacer"
-                               , "Spacings"
-                               , "Span"
-                               , "SpanFromAbove"
-                               , "SpanFromBoth"
-                               , "SpanFromLeft"
-                               , "SparseArray"
-                               , "Speak"
-                               , "Specularity"
-                               , "SpellingCorrection"
-                               , "Sphere"
-                               , "SphericalBesselJ"
-                               , "SphericalBesselY"
-                               , "SphericalHankelH1"
-                               , "SphericalHankelH2"
-                               , "SphericalHarmonicY"
-                               , "SphericalPlot3D"
-                               , "SphericalRegion"
-                               , "SpheroidalEigenvalue"
-                               , "SpheroidalJoiningFactor"
-                               , "SpheroidalPS"
-                               , "SpheroidalPSPrime"
-                               , "SpheroidalQS"
-                               , "SpheroidalQSPrime"
-                               , "SpheroidalRadialFactor"
-                               , "SpheroidalS1"
-                               , "SpheroidalS1Prime"
-                               , "SpheroidalS2"
-                               , "SpheroidalS2Prime"
-                               , "Splice"
-                               , "SplineClosed"
-                               , "SplineDegree"
-                               , "SplineKnots"
-                               , "SplineWeights"
-                               , "Split"
-                               , "SplitBy"
-                               , "SpokenString"
-                               , "Sqrt"
-                               , "SqrtBox"
-                               , "Square"
-                               , "SquaredEuclideanDistance"
-                               , "SquareFreeQ"
-                               , "SquareIntersection"
-                               , "SquaresR"
-                               , "SquareSubset"
-                               , "SquareSubsetEqual"
-                               , "SquareSuperset"
-                               , "SquareSupersetEqual"
-                               , "SquareUnion"
-                               , "SquareWave"
-                               , "StabilityMargins"
-                               , "StabilityMarginsStyle"
-                               , "StableDistribution"
-                               , "Stack"
-                               , "StackBegin"
-                               , "StackComplete"
-                               , "StackInhibit"
-                               , "StandardDeviation"
-                               , "StandardDeviationFilter"
-                               , "StandardForm"
-                               , "Standardize"
-                               , "Star"
-                               , "StarGraph"
-                               , "StartingStepSize"
-                               , "StartOfLine"
-                               , "StartOfString"
-                               , "StartScheduledTask"
-                               , "StateFeedbackGains"
-                               , "StateOutputEstimator"
-                               , "StateResponse"
-                               , "StateSpaceModel"
-                               , "StateSpaceRealization"
-                               , "StateSpaceTransform"
-                               , "StationaryWaveletPacketTransform"
-                               , "StationaryWaveletTransform"
-                               , "StatusArea"
-                               , "StepMonitor"
-                               , "StieltjesGamma"
-                               , "StirlingS1"
-                               , "StirlingS2"
-                               , "StopScheduledTask"
-                               , "StreamColorFunction"
-                               , "StreamColorFunctionScaling"
-                               , "StreamDensityPlot"
-                               , "StreamPlot"
-                               , "StreamPoints"
-                               , "StreamPosition"
-                               , "Streams"
-                               , "StreamScale"
-                               , "StreamStyle"
-                               , "String"
-                               , "StringCases"
-                               , "StringCount"
-                               , "StringDrop"
-                               , "StringExpression"
-                               , "StringForm"
-                               , "StringFormat"
-                               , "StringFreeQ"
-                               , "StringInsert"
-                               , "StringJoin"
-                               , "StringLength"
-                               , "StringMatchQ"
-                               , "StringPosition"
-                               , "StringQ"
-                               , "StringReplace"
-                               , "StringReplaceList"
-                               , "StringReplacePart"
-                               , "StringReverse"
-                               , "StringSkeleton"
-                               , "StringSplit"
-                               , "StringTake"
-                               , "StringToStream"
-                               , "StringTrim"
-                               , "StructuredSelection"
-                               , "StruveH"
-                               , "StruveL"
-                               , "Stub"
-                               , "StudentTDistribution"
-                               , "Style"
-                               , "StyleBox"
-                               , "StyleData"
-                               , "StyleDefinitions"
-                               , "Subfactorial"
-                               , "Subgraph"
-                               , "SubMinus"
-                               , "SubPlus"
-                               , "Subresultants"
-                               , "Subscript"
-                               , "SubscriptBox"
-                               , "Subset"
-                               , "SubsetEqual"
-                               , "Subsets"
-                               , "SubStar"
-                               , "Subsuperscript"
-                               , "SubsuperscriptBox"
-                               , "Subtract"
-                               , "SubtractFrom"
-                               , "Succeeds"
-                               , "SucceedsEqual"
-                               , "SucceedsSlantEqual"
-                               , "SucceedsTilde"
-                               , "SuchThat"
-                               , "Sum"
-                               , "SumConvergence"
-                               , "SuperDagger"
-                               , "SuperMinus"
-                               , "SuperPlus"
-                               , "Superscript"
-                               , "SuperscriptBox"
-                               , "Superset"
-                               , "SupersetEqual"
-                               , "SuperStar"
-                               , "SurvivalDistribution"
-                               , "SurvivalFunction"
-                               , "SuspendPacket"
-                               , "SuzukiDistribution"
-                               , "SuzukiGroupSuz"
-                               , "Switch"
-                               , "Symbol"
-                               , "SymbolName"
-                               , "SymletWavelet"
-                               , "SymmetricGroup"
-                               , "SymmetricMatrixQ"
-                               , "SymmetricPolynomial"
-                               , "SymmetricReduction"
-                               , "SynchronousInitialization"
-                               , "SynchronousUpdating"
-                               , "SyntaxInformation"
-                               , "SyntaxLength"
-                               , "SyntaxPacket"
-                               , "SyntaxQ"
-                               , "SystemDialogInput"
-                               , "SystemInformation"
-                               , "SystemOpen"
-                               , "SystemOptions"
-                               , "SystemsModelDelete"
-                               , "SystemsModelDimensions"
-                               , "SystemsModelExtract"
-                               , "SystemsModelFeedbackConnect"
-                               , "SystemsModelLabels"
-                               , "SystemsModelOrder"
-                               , "SystemsModelParallelConnect"
-                               , "SystemsModelSeriesConnect"
-                               , "SystemsModelStateFeedbackConnect"
-                               , "T"
-                               , "Table"
-                               , "TableAlignments"
-                               , "TableDepth"
-                               , "TableDirections"
-                               , "TableForm"
-                               , "TableHeadings"
-                               , "TableSpacing"
-                               , "TabView"
-                               , "TagBox"
-                               , "TaggingRules"
-                               , "TagSet"
-                               , "TagSetDelayed"
-                               , "TagUnset"
-                               , "Take"
-                               , "TakeWhile"
-                               , "Tally"
-                               , "Tan"
-                               , "Tanh"
-                               , "TargetFunctions"
-                               , "TautologyQ"
-                               , "Temporary"
-                               , "TeXForm"
-                               , "Text"
-                               , "TextAlignment"
-                               , "TextCell"
-                               , "TextClipboardType"
-                               , "TextData"
-                               , "TextJustification"
-                               , "TextPacket"
-                               , "TextRecognize"
-                               , "Texture"
-                               , "TextureCoordinateFunction"
-                               , "TextureCoordinateScaling"
-                               , "Therefore"
-                               , "Thick"
-                               , "Thickness"
-                               , "Thin"
-                               , "Thinning"
-                               , "ThompsonGroupTh"
-                               , "Thread"
-                               , "ThreeJSymbol"
-                               , "Threshold"
-                               , "Through"
-                               , "Throw"
-                               , "Thumbnail"
-                               , "Ticks"
-                               , "TicksStyle"
-                               , "Tilde"
-                               , "TildeEqual"
-                               , "TildeFullEqual"
-                               , "TildeTilde"
-                               , "TimeConstrained"
-                               , "TimeConstraint"
-                               , "Times"
-                               , "TimesBy"
-                               , "TimeUsed"
-                               , "TimeValue"
-                               , "TimeZone"
-                               , "Timing"
-                               , "Tiny"
-                               , "TitsGroupT"
-                               , "ToBoxes"
-                               , "ToCharacterCode"
-                               , "ToContinuousTimeModel"
-                               , "ToDiscreteTimeModel"
-                               , "ToeplitzMatrix"
-                               , "ToExpression"
-                               , "Together"
-                               , "Toggler"
-                               , "TogglerBar"
-                               , "TokenWords"
-                               , "Tolerance"
-                               , "ToLowerCase"
-                               , "ToNumberField"
-                               , "Tooltip"
-                               , "TooltipDelay"
-                               , "Top"
-                               , "TopHatTransform"
-                               , "TopologicalSort"
-                               , "ToRadicals"
-                               , "ToRules"
-                               , "ToString"
-                               , "Total"
-                               , "TotalVariationFilter"
-                               , "TotalWidth"
-                               , "ToUpperCase"
-                               , "Tr"
-                               , "Trace"
-                               , "TraceAbove"
-                               , "TraceBackward"
-                               , "TraceDepth"
-                               , "TraceDialog"
-                               , "TraceForward"
-                               , "TraceOff"
-                               , "TraceOn"
-                               , "TraceOriginal"
-                               , "TracePrint"
-                               , "TraceScan"
-                               , "TrackedSymbols"
-                               , "TradingChart"
-                               , "TraditionalForm"
-                               , "TransferFunctionCancel"
-                               , "TransferFunctionExpand"
-                               , "TransferFunctionFactor"
-                               , "TransferFunctionModel"
-                               , "TransferFunctionPoles"
-                               , "TransferFunctionZeros"
-                               , "TransformationFunction"
-                               , "TransformationFunctions"
-                               , "TransformationMatrix"
-                               , "TransformedDistribution"
-                               , "Translate"
-                               , "TranslationTransform"
-                               , "Transparent"
-                               , "Transpose"
-                               , "TreeForm"
-                               , "TreeGraph"
-                               , "TreeGraphQ"
-                               , "TreePlot"
-                               , "TrendStyle"
-                               , "TriangleWave"
-                               , "TriangularDistribution"
-                               , "Trig"
-                               , "TrigExpand"
-                               , "TrigFactor"
-                               , "TrigFactorList"
-                               , "Trigger"
-                               , "TrigReduce"
-                               , "TrigToExp"
-                               , "TrimmedMean"
-                               , "True"
-                               , "TrueQ"
-                               , "TruncatedDistribution"
-                               , "TTest"
-                               , "Tube"
-                               , "TukeyLambdaDistribution"
-                               , "Tuples"
-                               , "TuranGraph"
-                               , "TuringMachine"
-                               , "U"
-                               , "Uncompress"
-                               , "Undefined"
-                               , "UnderBar"
-                               , "Underflow"
-                               , "Underlined"
-                               , "Underoverscript"
-                               , "UnderoverscriptBox"
-                               , "Underscript"
-                               , "UnderscriptBox"
-                               , "UndirectedEdge"
-                               , "UndirectedGraph"
-                               , "UndirectedGraphQ"
-                               , "Unequal"
-                               , "Unevaluated"
-                               , "UniformDistribution"
-                               , "UniformGraphDistribution"
-                               , "UniformSumDistribution"
-                               , "Uninstall"
-                               , "Union"
-                               , "UnionPlus"
-                               , "Unique"
-                               , "UnitBox"
-                               , "Unitize"
-                               , "UnitStep"
-                               , "UnitTriangle"
-                               , "UnitVector"
-                               , "Unprotect"
-                               , "UnsameQ"
-                               , "UnsavedVariables"
-                               , "Unset"
-                               , "UnsetShared"
-                               , "UpArrow"
-                               , "UpArrowBar"
-                               , "UpArrowDownArrow"
-                               , "Update"
-                               , "UpdateInterval"
-                               , "UpDownArrow"
-                               , "UpEquilibrium"
-                               , "UpperCaseQ"
-                               , "UpperLeftArrow"
-                               , "UpperRightArrow"
-                               , "UpperTriangularize"
-                               , "UpSet"
-                               , "UpSetDelayed"
-                               , "UpTeeArrow"
-                               , "UpValues"
-                               , "UsingFrontEnd"
-                               , "V"
-                               , "ValidationLength"
-                               , "ValueQ"
-                               , "Variables"
-                               , "Variance"
-                               , "VarianceEquivalenceTest"
-                               , "VarianceEstimatorFunction"
-                               , "VarianceTest"
-                               , "VectorAngle"
-                               , "VectorColorFunction"
-                               , "VectorColorFunctionScaling"
-                               , "VectorDensityPlot"
-                               , "VectorPlot"
-                               , "VectorPlot3D"
-                               , "VectorPoints"
-                               , "VectorQ"
-                               , "VectorScale"
-                               , "VectorStyle"
-                               , "Vee"
-                               , "Verbatim"
-                               , "VerifyConvergence"
-                               , "VerifyTestAssumptions"
-                               , "VertexAdd"
-                               , "VertexColors"
-                               , "VertexComponent"
-                               , "VertexCoordinateRules"
-                               , "VertexCoordinates"
-                               , "VertexCount"
-                               , "VertexCoverQ"
-                               , "VertexDegree"
-                               , "VertexDelete"
-                               , "VertexEccentricity"
-                               , "VertexInComponent"
-                               , "VertexInDegree"
-                               , "VertexIndex"
-                               , "VertexLabeling"
-                               , "VertexLabels"
-                               , "VertexList"
-                               , "VertexNormals"
-                               , "VertexOutComponent"
-                               , "VertexOutDegree"
-                               , "VertexQ"
-                               , "VertexRenderingFunction"
-                               , "VertexReplace"
-                               , "VertexShape"
-                               , "VertexShapeFunction"
-                               , "VertexSize"
-                               , "VertexStyle"
-                               , "VertexTextureCoordinates"
-                               , "VertexWeight"
-                               , "VerticalBar"
-                               , "VerticalSeparator"
-                               , "VerticalSlider"
-                               , "VerticalTilde"
-                               , "ViewAngle"
-                               , "ViewCenter"
-                               , "ViewMatrix"
-                               , "ViewPoint"
-                               , "ViewRange"
-                               , "ViewVector"
-                               , "ViewVertical"
-                               , "Visible"
-                               , "VonMisesDistribution"
-                               , "W"
-                               , "WaitAll"
-                               , "WaitNext"
-                               , "WakebyDistribution"
-                               , "WalleniusHypergeometricDistribution"
-                               , "WaringYuleDistribution"
-                               , "WatershedComponents"
-                               , "WatsonUSquareTest"
-                               , "WattsStrogatzGraphDistribution"
-                               , "WaveletBestBasis"
-                               , "WaveletFilterCoefficients"
-                               , "WaveletImagePlot"
-                               , "WaveletListPlot"
-                               , "WaveletMapIndexed"
-                               , "WaveletMatrixPlot"
-                               , "WaveletPhi"
-                               , "WaveletPsi"
-                               , "WaveletScale"
-                               , "WaveletScalogram"
-                               , "WaveletThreshold"
-                               , "WeatherData"
-                               , "WeberE"
-                               , "Wedge"
-                               , "WeibullDistribution"
-                               , "WeierstrassHalfPeriods"
-                               , "WeierstrassInvariants"
-                               , "WeierstrassP"
-                               , "WeierstrassPPrime"
-                               , "WeierstrassSigma"
-                               , "WeierstrassZeta"
-                               , "WeightedAdjacencyGraph"
-                               , "WeightedAdjacencyMatrix"
-                               , "WeightedGraphQ"
-                               , "Weights"
-                               , "WheelGraph"
-                               , "Which"
-                               , "While"
-                               , "White"
-                               , "Whitespace"
-                               , "WhitespaceCharacter"
-                               , "WhittakerM"
-                               , "WhittakerW"
-                               , "WienerFilter"
-                               , "WignerD"
-                               , "WignerSemicircleDistribution"
-                               , "WindowClickSelect"
-                               , "WindowElements"
-                               , "WindowFloating"
-                               , "WindowFrame"
-                               , "WindowMargins"
-                               , "WindowMovable"
-                               , "WindowOpacity"
-                               , "WindowSize"
-                               , "WindowStatusArea"
-                               , "WindowTitle"
-                               , "WindowToolbars"
-                               , "With"
-                               , "WolframAlpha"
-                               , "Word"
-                               , "WordBoundary"
-                               , "WordCharacter"
-                               , "WordData"
-                               , "WordSearch"
-                               , "WordSeparators"
-                               , "WorkingPrecision"
-                               , "Write"
-                               , "WriteString"
-                               , "Wronskian"
-                               , "X"
-                               , "XMLElement"
-                               , "XMLObject"
-                               , "Xnor"
-                               , "Xor"
-                               , "Y"
-                               , "Yellow"
-                               , "YuleDissimilarity"
-                               , "Z"
-                               , "ZernikeR"
-                               , "ZeroTest"
-                               , "Zeta"
-                               , "ZetaZero"
-                               , "ZipfDistribution"
-                               , "ZTest"
-                               , "ZTransform"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z_0-9]+\\_"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z_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 = "(\\-\\>|\\/\\.)"
-                              , reCompiled = Just (compileRegex True "(\\-\\>|\\/\\.)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "+*/%\\|-^"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(:=|=)"
-                              , reCompiled = Just (compileRegex True "(:=|=)")
-                              , 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
-              }
-          )
-        ]
-  , sAuthor = "Sven Brauch (svenbrauch@gmail.com)"
-  , sVersion = "9"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.nb" ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Mathematica\", sFilename = \"mathematica.xml\", sShortname = \"Mathematica\", sContexts = fromList [(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Mathematica\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !&()*+,./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"$\",\"$Aborted\",\"$AssertFunction\",\"$Assumptions\",\"$BaseDirectory\",\"$BatchInput\",\"$BatchOutput\",\"$ByteOrdering\",\"$Canceled\",\"$CharacterEncoding\",\"$CharacterEncodings\",\"$CommandLine\",\"$CompilationTarget\",\"$ConfiguredKernels\",\"$Context\",\"$ContextPath\",\"$ControlActiveSetting\",\"$CreationDate\",\"$CurrentLink\",\"$DateStringFormat\",\"$DefaultImagingDevice\",\"$Display\",\"$DisplayFunction\",\"$DistributedContexts\",\"$DynamicEvaluation\",\"$Echo\",\"$Epilog\",\"$ExportFormats\",\"$Failed\",\"$FrontEnd\",\"$FrontEndSession\",\"$GeoLocation\",\"$HistoryLength\",\"$HomeDirectory\",\"$IgnoreEOF\",\"$ImagingDevices\",\"$ImportFormats\",\"$InitialDirectory\",\"$Input\",\"$InputFileName\",\"$Inspector\",\"$InstallationDirectory\",\"$IterationLimit\",\"$KernelCount\",\"$KernelID\",\"$Language\",\"$LibraryPath\",\"$LicenseExpirationDate\",\"$LicenseID\",\"$LicenseServer\",\"$Line\",\"$Linked\",\"$MachineAddresses\",\"$MachineDomains\",\"$MachineEpsilon\",\"$MachineID\",\"$MachineName\",\"$MachinePrecision\",\"$MachineType\",\"$MaxExtraPrecision\",\"$MaxMachineNumber\",\"$MaxNumber\",\"$MaxPiecewiseCases\",\"$MaxPrecision\",\"$MaxRootDegree\",\"$MessageGroups\",\"$MessageList\",\"$MessagePrePrint\",\"$Messages\",\"$MinMachineNumber\",\"$MinNumber\",\"$MinPrecision\",\"$ModuleNumber\",\"$NewMessage\",\"$NewSymbol\",\"$Notebooks\",\"$NumberMarks\",\"$OperatingSystem\",\"$Output\",\"$OutputSizeLimit\",\"$Packages\",\"$ParentLink\",\"$ParentProcessID\",\"$Path\",\"$PathnameSeparator\",\"$PerformanceGoal\",\"$Post\",\"$Pre\",\"$PrePrint\",\"$PreRead\",\"$ProcessID\",\"$ProcessorCount\",\"$ProcessorType\",\"$RecursionLimit\",\"$ReleaseNumber\",\"$RootDirectory\",\"$ScheduledTask\",\"$ScriptCommandLine\",\"$SessionID\",\"$SharedFunctions\",\"$SharedVariables\",\"$SoundDisplayFunction\",\"$SyntaxHandler\",\"$System\",\"$SystemCharacterEncoding\",\"$SystemID\",\"$SystemWordLength\",\"$TemporaryDirectory\",\"$TimedOut\",\"$TimeUnit\",\"$TimeZone\",\"$Urgent\",\"$UserBaseDirectory\",\"$UserDocumentsDirectory\",\"$UserName\",\"$Version\",\"$VersionNumber\",\"A\",\"AbelianGroup\",\"Abort\",\"AbortKernels\",\"AbortProtect\",\"Abs\",\"AbsoluteCurrentValue\",\"AbsoluteDashing\",\"AbsoluteFileName\",\"AbsoluteOptions\",\"AbsolutePointSize\",\"AbsoluteThickness\",\"AbsoluteTime\",\"AbsoluteTiming\",\"AccountingForm\",\"Accumulate\",\"Accuracy\",\"AccuracyGoal\",\"ActionMenu\",\"ActiveStyle\",\"AcyclicGraphQ\",\"AddTo\",\"AdjacencyGraph\",\"AdjacencyMatrix\",\"AdjustmentBox\",\"AffineTransform\",\"AiryAi\",\"AiryAiPrime\",\"AiryAiZero\",\"AiryBi\",\"AiryBiPrime\",\"AiryBiZero\",\"AlgebraicIntegerQ\",\"AlgebraicNumber\",\"AlgebraicNumberDenominator\",\"AlgebraicNumberNorm\",\"AlgebraicNumberPolynomial\",\"AlgebraicNumberTrace\",\"Algebraics\",\"AlgebraicUnitQ\",\"Alignment\",\"AlignmentPoint\",\"All\",\"AllowGroupClose\",\"AllowReverseGroupClose\",\"AlphaChannel\",\"AlternatingGroup\",\"AlternativeHypothesis\",\"Alternatives\",\"AnchoredSearch\",\"And\",\"AndersonDarlingTest\",\"AngerJ\",\"AngleBracket\",\"Animate\",\"AnimationDirection\",\"AnimationDisplayTime\",\"AnimationRate\",\"AnimationRepetitions\",\"AnimationRunning\",\"Animator\",\"Annotation\",\"Annuity\",\"AnnuityDue\",\"Antialiasing\",\"Apart\",\"ApartSquareFree\",\"Appearance\",\"AppearanceElements\",\"AppellF1\",\"Append\",\"AppendTo\",\"Apply\",\"ArcCos\",\"ArcCosh\",\"ArcCot\",\"ArcCoth\",\"ArcCsc\",\"ArcCsch\",\"ArcSec\",\"ArcSech\",\"ArcSin\",\"ArcSinDistribution\",\"ArcSinh\",\"ArcTan\",\"ArcTanh\",\"Arg\",\"ArgMax\",\"ArgMin\",\"ArithmeticGeometricMean\",\"Array\",\"ArrayComponents\",\"ArrayDepth\",\"ArrayFlatten\",\"ArrayPad\",\"ArrayPlot\",\"ArrayQ\",\"ArrayRules\",\"Arrow\",\"Arrowheads\",\"AspectRatio\",\"Assert\",\"Assuming\",\"Assumptions\",\"AstronomicalData\",\"Asynchronous\",\"AtomQ\",\"Attributes\",\"AugmentedSymmetricPolynomial\",\"AutoAction\",\"AutoIndent\",\"AutoItalicWords\",\"Automatic\",\"AutoMultiplicationSymbol\",\"AutorunSequencing\",\"AutoScroll\",\"AutoSpacing\",\"Axes\",\"AxesEdge\",\"AxesLabel\",\"AxesOrigin\",\"AxesStyle\",\"Axis\",\"B\",\"BabyMonsterGroupB\",\"Back\",\"Background\",\"Backslash\",\"Backward\",\"Band\",\"BarabasiAlbertGraphDistribution\",\"BarChart\",\"BarChart3D\",\"BarnesG\",\"BarOrigin\",\"BarSpacing\",\"BaseForm\",\"Baseline\",\"BaselinePosition\",\"BaseStyle\",\"BatesDistribution\",\"BattleLemarieWavelet\",\"Because\",\"BeckmannDistribution\",\"Beep\",\"Begin\",\"BeginDialogPacket\",\"BeginPackage\",\"BellB\",\"BellY\",\"BenfordDistribution\",\"BeniniDistribution\",\"BenktanderGibratDistribution\",\"BenktanderWeibullDistribution\",\"BernoulliB\",\"BernoulliDistribution\",\"BernoulliGraphDistribution\",\"BernsteinBasis\",\"BesselI\",\"BesselJ\",\"BesselJZero\",\"BesselK\",\"BesselY\",\"BesselYZero\",\"Beta\",\"BetaBinomialDistribution\",\"BetaDistribution\",\"BetaNegativeBinomialDistribution\",\"BetaPrimeDistribution\",\"BetaRegularized\",\"BetweennessCentrality\",\"BezierCurve\",\"BezierFunction\",\"BilateralFilter\",\"Binarize\",\"BinaryFormat\",\"BinaryImageQ\",\"BinaryRead\",\"BinaryReadList\",\"BinaryWrite\",\"BinCounts\",\"BinLists\",\"Binomial\",\"BinomialDistribution\",\"BinormalDistribution\",\"BiorthogonalSplineWavelet\",\"BipartiteGraphQ\",\"BirnbaumSaundersDistribution\",\"BitAnd\",\"BitClear\",\"BitGet\",\"BitLength\",\"BitNot\",\"BitOr\",\"BitSet\",\"BitShiftLeft\",\"BitShiftRight\",\"BitXor\",\"Black\",\"Blank\",\"BlankNullSequence\",\"BlankSequence\",\"Blend\",\"Block\",\"BlockRandom\",\"Blue\",\"Blur\",\"BodePlot\",\"Bold\",\"Bookmarks\",\"Boole\",\"BooleanConvert\",\"BooleanCountingFunction\",\"BooleanFunction\",\"BooleanGraph\",\"BooleanMaxterms\",\"BooleanMinimize\",\"BooleanMinterms\",\"Booleans\",\"BooleanTable\",\"BooleanVariables\",\"BorderDimensions\",\"BorelTannerDistribution\",\"Bottom\",\"BottomHatTransform\",\"BoundaryStyle\",\"BoxData\",\"Boxed\",\"BoxMatrix\",\"BoxRatios\",\"BoxStyle\",\"BoxWhiskerChart\",\"BracketingBar\",\"BrayCurtisDistance\",\"BreadthFirstScan\",\"Break\",\"Brown\",\"BrownForsytheTest\",\"BSplineBasis\",\"BSplineCurve\",\"BSplineFunction\",\"BSplineSurface\",\"BubbleChart\",\"BubbleChart3D\",\"BubbleScale\",\"BubbleSizes\",\"ButterflyGraph\",\"Button\",\"ButtonBar\",\"ButtonBox\",\"ButtonData\",\"ButtonFrame\",\"ButtonFunction\",\"ButtonMinHeight\",\"ButtonNotebook\",\"ButtonSource\",\"Byte\",\"ByteCount\",\"ByteOrdering\",\"C\",\"CallPacket\",\"CanberraDistance\",\"Cancel\",\"CancelButton\",\"CandlestickChart\",\"Cap\",\"CapForm\",\"CapitalDifferentialD\",\"CarmichaelLambda\",\"Cases\",\"Cashflow\",\"Casoratian\",\"Catalan\",\"CatalanNumber\",\"Catch\",\"CauchyDistribution\",\"CayleyGraph\",\"CDF\",\"CDFWavelet\",\"Ceiling\",\"Cell\",\"CellAutoOverwrite\",\"CellBaseline\",\"CellChangeTimes\",\"CellContext\",\"CellDingbat\",\"CellDynamicExpression\",\"CellEditDuplicate\",\"CellEpilog\",\"CellEvaluationDuplicate\",\"CellEvaluationFunction\",\"CellEventActions\",\"CellFrame\",\"CellFrameMargins\",\"CellGroup\",\"CellGroupData\",\"CellGrouping\",\"CellLabel\",\"CellLabelAutoDelete\",\"CellMargins\",\"CellOpen\",\"CellPrint\",\"CellProlog\",\"CellTags\",\"CellularAutomaton\",\"CensoredDistribution\",\"Censoring\",\"Center\",\"CenterDot\",\"CentralMoment\",\"CentralMomentGeneratingFunction\",\"CForm\",\"ChampernowneNumber\",\"ChanVeseBinarize\",\"Character\",\"CharacterEncoding\",\"CharacteristicFunction\",\"CharacteristicPolynomial\",\"CharacterRange\",\"Characters\",\"ChartBaseStyle\",\"ChartElementFunction\",\"ChartElements\",\"ChartLabels\",\"ChartLayout\",\"ChartLegends\",\"ChartStyle\",\"ChebyshevT\",\"ChebyshevU\",\"Check\",\"CheckAbort\",\"Checkbox\",\"CheckboxBar\",\"ChemicalData\",\"ChessboardDistance\",\"ChiDistribution\",\"ChineseRemainder\",\"ChiSquareDistribution\",\"ChoiceButtons\",\"ChoiceDialog\",\"CholeskyDecomposition\",\"Chop\",\"Circle\",\"CircleDot\",\"CircleMinus\",\"CirclePlus\",\"CircleTimes\",\"CirculantGraph\",\"CityData\",\"Clear\",\"ClearAll\",\"ClearAttributes\",\"ClearSystemCache\",\"ClebschGordan\",\"ClickPane\",\"Clip\",\"ClippingStyle\",\"Clock\",\"Close\",\"CloseKernels\",\"ClosenessCentrality\",\"Closing\",\"ClusteringComponents\",\"CMYKColor\",\"Coefficient\",\"CoefficientArrays\",\"CoefficientList\",\"CoefficientRules\",\"CoifletWavelet\",\"Collect\",\"Colon\",\"ColorCombine\",\"ColorConvert\",\"ColorData\",\"ColorDataFunction\",\"ColorFunction\",\"ColorFunctionScaling\",\"Colorize\",\"ColorNegate\",\"ColorQuantize\",\"ColorRules\",\"ColorSeparate\",\"ColorSetter\",\"ColorSlider\",\"ColorSpace\",\"Column\",\"ColumnAlignments\",\"ColumnLines\",\"ColumnsEqual\",\"ColumnSpacings\",\"ColumnWidths\",\"Commonest\",\"CommonestFilter\",\"CompilationOptions\",\"CompilationTarget\",\"Compile\",\"Compiled\",\"CompiledFunction\",\"Complement\",\"CompleteGraph\",\"CompleteGraphQ\",\"CompleteKaryTree\",\"Complex\",\"Complexes\",\"ComplexExpand\",\"ComplexInfinity\",\"ComplexityFunction\",\"ComponentMeasurements\",\"ComposeList\",\"ComposeSeries\",\"Composition\",\"CompoundExpression\",\"Compress\",\"Condition\",\"ConditionalExpression\",\"Conditioned\",\"Cone\",\"ConfidenceLevel\",\"Congruent\",\"Conjugate\",\"ConjugateTranspose\",\"Conjunction\",\"ConnectedComponents\",\"ConnectedGraphQ\",\"ConoverTest\",\"Constant\",\"ConstantArray\",\"Constants\",\"ContentPadding\",\"ContentSelectable\",\"ContentSize\",\"Context\",\"Contexts\",\"ContextToFileName\",\"Continue\",\"ContinuedFraction\",\"ContinuedFractionK\",\"ContinuousAction\",\"ContinuousTimeModelQ\",\"ContinuousWaveletData\",\"ContinuousWaveletTransform\",\"ContourDetect\",\"ContourLabels\",\"ContourPlot\",\"ContourPlot3D\",\"Contours\",\"ContourShading\",\"ContourStyle\",\"ContraharmonicMean\",\"Control\",\"ControlActive\",\"ControllabilityGramian\",\"ControllabilityMatrix\",\"ControllableDecomposition\",\"ControllableModelQ\",\"ControllerInformation\",\"ControllerLinking\",\"ControllerManipulate\",\"ControllerMethod\",\"ControllerPath\",\"ControllerState\",\"ControlPlacement\",\"ControlsRendering\",\"ControlType\",\"Convergents\",\"ConversionRules\",\"Convolve\",\"ConwayGroupCo1\",\"ConwayGroupCo2\",\"ConwayGroupCo3\",\"CoordinatesToolOptions\",\"CoprimeQ\",\"Coproduct\",\"CopulaDistribution\",\"Copyable\",\"CopyDirectory\",\"CopyFile\",\"CopyToClipboard\",\"CornerFilter\",\"CornerNeighbors\",\"Correlation\",\"CorrelationDistance\",\"Cos\",\"Cosh\",\"CoshIntegral\",\"CosineDistance\",\"CosIntegral\",\"Cot\",\"Coth\",\"Count\",\"CountRoots\",\"CountryData\",\"Covariance\",\"CovarianceEstimatorFunction\",\"CramerVonMisesTest\",\"CreateArchive\",\"CreateDialog\",\"CreateDirectory\",\"CreateDocument\",\"CreateIntermediateDirectories\",\"CreatePalette\",\"CreateScheduledTask\",\"CreateWindow\",\"CriticalSection\",\"Cross\",\"CrossingDetect\",\"CrossMatrix\",\"Csc\",\"Csch\",\"Cubics\",\"Cuboid\",\"Cumulant\",\"CumulantGeneratingFunction\",\"Cup\",\"CupCap\",\"CurrentImage\",\"CurrentValue\",\"CurvatureFlowFilter\",\"CurveClosed\",\"Cyan\",\"CycleGraph\",\"Cycles\",\"CyclicGroup\",\"Cyclotomic\",\"Cylinder\",\"CylindricalDecomposition\",\"D\",\"DagumDistribution\",\"DamerauLevenshteinDistance\",\"Darker\",\"Dashed\",\"Dashing\",\"DataDistribution\",\"DataRange\",\"DataReversed\",\"DateDifference\",\"DateFunction\",\"DateList\",\"DateListLogPlot\",\"DateListPlot\",\"DatePattern\",\"DatePlus\",\"DateString\",\"DateTicksFormat\",\"DaubechiesWavelet\",\"DavisDistribution\",\"DawsonF\",\"DeBruijnGraph\",\"DeclarePackage\",\"Decompose\",\"Decrement\",\"DedekindEta\",\"Default\",\"DefaultAxesStyle\",\"DefaultBaseStyle\",\"DefaultBoxStyle\",\"DefaultButton\",\"DefaultDuplicateCellStyle\",\"DefaultDuration\",\"DefaultElement\",\"DefaultFaceGridsStyle\",\"DefaultFieldHintStyle\",\"DefaultFrameStyle\",\"DefaultFrameTicksStyle\",\"DefaultGridLinesStyle\",\"DefaultLabelStyle\",\"DefaultMenuStyle\",\"DefaultNewCellStyle\",\"DefaultOptions\",\"DefaultTicksStyle\",\"Defer\",\"Definition\",\"Degree\",\"DegreeCentrality\",\"DegreeGraphDistribution\",\"Deinitialization\",\"Del\",\"Deletable\",\"Delete\",\"DeleteBorderComponents\",\"DeleteCases\",\"DeleteContents\",\"DeleteDirectory\",\"DeleteDuplicates\",\"DeleteFile\",\"DeleteSmallComponents\",\"Delimiter\",\"DelimiterFlashTime\",\"Denominator\",\"DensityHistogram\",\"DensityPlot\",\"DependentVariables\",\"Deploy\",\"Deployed\",\"Depth\",\"DepthFirstScan\",\"Derivative\",\"DerivativeFilter\",\"DesignMatrix\",\"Det\",\"DGaussianWavelet\",\"Diagonal\",\"DiagonalMatrix\",\"Dialog\",\"DialogInput\",\"DialogNotebook\",\"DialogProlog\",\"DialogReturn\",\"DialogSymbols\",\"Diamond\",\"DiamondMatrix\",\"DiceDissimilarity\",\"DictionaryLookup\",\"DifferenceDelta\",\"DifferenceRoot\",\"DifferenceRootReduce\",\"Differences\",\"DifferentialD\",\"DifferentialRoot\",\"DifferentialRootReduce\",\"DigitBlock\",\"DigitCharacter\",\"DigitCount\",\"DigitQ\",\"DihedralGroup\",\"Dilation\",\"Dimensions\",\"DiracComb\",\"DiracDelta\",\"DirectedEdge\",\"DirectedEdges\",\"DirectedGraph\",\"DirectedGraphQ\",\"DirectedInfinity\",\"Direction\",\"Directive\",\"Directory\",\"DirectoryName\",\"DirectoryQ\",\"DirectoryStack\",\"DirichletCharacter\",\"DirichletConvolve\",\"DirichletDistribution\",\"DirichletL\",\"DirichletTransform\",\"DiscreteConvolve\",\"DiscreteDelta\",\"DiscreteIndicator\",\"DiscreteLQEstimatorGains\",\"DiscreteLQRegulatorGains\",\"DiscreteLyapunovSolve\",\"DiscretePlot\",\"DiscretePlot3D\",\"DiscreteRatio\",\"DiscreteRiccatiSolve\",\"DiscreteShift\",\"DiscreteTimeModelQ\",\"DiscreteUniformDistribution\",\"DiscreteWaveletData\",\"DiscreteWaveletPacketTransform\",\"DiscreteWaveletTransform\",\"Discriminant\",\"Disjunction\",\"Disk\",\"DiskMatrix\",\"Dispatch\",\"DispersionEstimatorFunction\",\"DisplayAllSteps\",\"DisplayEndPacket\",\"DisplayForm\",\"DisplayFunction\",\"DisplayPacket\",\"DistanceFunction\",\"DistanceTransform\",\"Distribute\",\"Distributed\",\"DistributedContexts\",\"DistributeDefinitions\",\"DistributionChart\",\"DistributionFitTest\",\"DistributionParameterAssumptions\",\"DistributionParameterQ\",\"Divide\",\"DivideBy\",\"Dividers\",\"Divisible\",\"Divisors\",\"DivisorSigma\",\"DivisorSum\",\"DMSList\",\"DMSString\",\"Do\",\"DockedCells\",\"DocumentNotebook\",\"Dot\",\"DotDashed\",\"DotEqual\",\"Dotted\",\"DoubleBracketingBar\",\"DoubleDownArrow\",\"DoubleLeftArrow\",\"DoubleLeftRightArrow\",\"DoubleLongLeftArrow\",\"DoubleLongLeftRightArrow\",\"DoubleLongRightArrow\",\"DoubleRightArrow\",\"DoubleUpArrow\",\"DoubleUpDownArrow\",\"DoubleVerticalBar\",\"DownArrow\",\"DownArrowBar\",\"DownArrowUpArrow\",\"DownLeftRightVector\",\"DownLeftTeeVector\",\"DownLeftVector\",\"DownLeftVectorBar\",\"DownRightTeeVector\",\"DownRightVector\",\"DownRightVectorBar\",\"DownTeeArrow\",\"DownValues\",\"DragAndDrop\",\"Drop\",\"DSolve\",\"Dt\",\"DualSystemsModel\",\"DumpSave\",\"Dynamic\",\"DynamicEvaluationTimeout\",\"DynamicModule\",\"DynamicModuleValues\",\"DynamicSetting\",\"DynamicWrapper\",\"E\",\"EdgeAdd\",\"EdgeCount\",\"EdgeCoverQ\",\"EdgeDelete\",\"EdgeDetect\",\"EdgeForm\",\"EdgeIndex\",\"EdgeLabeling\",\"EdgeLabels\",\"EdgeList\",\"EdgeQ\",\"EdgeRenderingFunction\",\"EdgeRules\",\"EdgeShapeFunction\",\"EdgeStyle\",\"EdgeWeight\",\"Editable\",\"EditDistance\",\"EffectiveInterest\",\"Eigensystem\",\"Eigenvalues\",\"EigenvectorCentrality\",\"Eigenvectors\",\"Element\",\"ElementData\",\"Eliminate\",\"EllipticE\",\"EllipticExp\",\"EllipticExpPrime\",\"EllipticF\",\"EllipticK\",\"EllipticLog\",\"EllipticNomeQ\",\"EllipticPi\",\"EllipticTheta\",\"EllipticThetaPrime\",\"EmitSound\",\"EmpiricalDistribution\",\"EmptyGraphQ\",\"Enabled\",\"Encode\",\"End\",\"EndDialogPacket\",\"EndOfFile\",\"EndOfLine\",\"EndOfString\",\"EndPackage\",\"EngineeringForm\",\"EnterExpressionPacket\",\"EnterTextPacket\",\"Entropy\",\"EntropyFilter\",\"Environment\",\"Epilog\",\"Equal\",\"EqualTilde\",\"Equilibrium\",\"Equivalent\",\"Erf\",\"Erfc\",\"Erfi\",\"ErlangDistribution\",\"Erosion\",\"ErrorBox\",\"EstimatedDistribution\",\"EstimatorGains\",\"EstimatorRegulator\",\"EuclideanDistance\",\"EulerE\",\"EulerGamma\",\"EulerianGraphQ\",\"EulerPhi\",\"Evaluatable\",\"Evaluate\",\"EvaluatePacket\",\"EvaluationElements\",\"EvaluationMonitor\",\"EvaluationNotebook\",\"EvaluationObject\",\"Evaluator\",\"EvenQ\",\"EventHandler\",\"EventLabels\",\"ExactNumberQ\",\"ExampleData\",\"Except\",\"ExcludedForms\",\"ExcludePods\",\"Exclusions\",\"ExclusionsStyle\",\"Exists\",\"Exit\",\"Exp\",\"Expand\",\"ExpandAll\",\"ExpandDenominator\",\"ExpandFileName\",\"ExpandNumerator\",\"Expectation\",\"ExpGammaDistribution\",\"ExpIntegralE\",\"ExpIntegralEi\",\"Exponent\",\"ExponentFunction\",\"ExponentialDistribution\",\"ExponentialFamily\",\"ExponentialGeneratingFunction\",\"ExponentialMovingAverage\",\"ExponentialPowerDistribution\",\"ExponentStep\",\"Export\",\"ExportString\",\"Expression\",\"ExpressionCell\",\"ExpToTrig\",\"ExtendedGCD\",\"Extension\",\"ExtentElementFunction\",\"ExtentMarkers\",\"ExtentSize\",\"Extract\",\"ExtractArchive\",\"ExtremeValueDistribution\",\"F\",\"FaceForm\",\"FaceGrids\",\"FaceGridsStyle\",\"Factor\",\"Factorial\",\"Factorial2\",\"FactorialMoment\",\"FactorialMomentGeneratingFunction\",\"FactorialPower\",\"FactorInteger\",\"FactorList\",\"FactorSquareFree\",\"FactorSquareFreeList\",\"FactorTerms\",\"FactorTermsList\",\"False\",\"FeedbackType\",\"Fibonacci\",\"FieldHint\",\"FieldHintStyle\",\"FieldMasked\",\"FieldSize\",\"FileBaseName\",\"FileByteCount\",\"FileDate\",\"FileExistsQ\",\"FileExtension\",\"FileFormat\",\"FileHash\",\"FileNameDepth\",\"FileNameDrop\",\"FileNameJoin\",\"FileNames\",\"FileNameSetter\",\"FileNameSplit\",\"FileNameTake\",\"FilePrint\",\"FileType\",\"FilledCurve\",\"Filling\",\"FillingStyle\",\"FillingTransform\",\"FilterRules\",\"FinancialBond\",\"FinancialData\",\"FinancialDerivative\",\"FinancialIndicator\",\"Find\",\"FindArgMax\",\"FindArgMin\",\"FindClique\",\"FindClusters\",\"FindCurvePath\",\"FindDistributionParameters\",\"FindDivisions\",\"FindEdgeCover\",\"FindEulerianCycle\",\"FindFile\",\"FindFit\",\"FindGeneratingFunction\",\"FindGeoLocation\",\"FindGeometricTransform\",\"FindGraphIsomorphism\",\"FindHamiltonianCycle\",\"FindIndependentEdgeSet\",\"FindIndependentVertexSet\",\"FindInstance\",\"FindIntegerNullVector\",\"FindLibrary\",\"FindLinearRecurrence\",\"FindList\",\"FindMaximum\",\"FindMaxValue\",\"FindMinimum\",\"FindMinValue\",\"FindPermutation\",\"FindRoot\",\"FindSequenceFunction\",\"FindShortestPath\",\"FindShortestTour\",\"FindThreshold\",\"FindVertexCover\",\"FinishDynamic\",\"FiniteAbelianGroupCount\",\"FiniteGroupCount\",\"FiniteGroupData\",\"First\",\"FischerGroupFi22\",\"FischerGroupFi23\",\"FischerGroupFi24Prime\",\"FisherHypergeometricDistribution\",\"FisherRatioTest\",\"FisherZDistribution\",\"Fit\",\"FittedModel\",\"FixedPoint\",\"FixedPointList\",\"Flat\",\"Flatten\",\"FlattenAt\",\"FlipView\",\"Floor\",\"Fold\",\"FoldList\",\"FontColor\",\"FontFamily\",\"FontSize\",\"FontSlant\",\"FontSubstitutions\",\"FontTracking\",\"FontVariations\",\"FontWeight\",\"For\",\"ForAll\",\"Format\",\"FormatType\",\"FormBox\",\"FortranForm\",\"Forward\",\"ForwardBackward\",\"Fourier\",\"FourierCoefficient\",\"FourierCosCoefficient\",\"FourierCosSeries\",\"FourierCosTransform\",\"FourierDCT\",\"FourierDST\",\"FourierParameters\",\"FourierSequenceTransform\",\"FourierSeries\",\"FourierSinCoefficient\",\"FourierSinSeries\",\"FourierSinTransform\",\"FourierTransform\",\"FourierTrigSeries\",\"FractionalPart\",\"FractionBox\",\"Frame\",\"FrameBox\",\"Framed\",\"FrameLabel\",\"FrameMargins\",\"FrameStyle\",\"FrameTicks\",\"FrameTicksStyle\",\"FRatioDistribution\",\"FrechetDistribution\",\"FreeQ\",\"FresnelC\",\"FresnelS\",\"FrobeniusNumber\",\"FrobeniusSolve\",\"FromCharacterCode\",\"FromCoefficientRules\",\"FromContinuedFraction\",\"FromDigits\",\"FromDMS\",\"Front\",\"FrontEndDynamicExpression\",\"FrontEndEventActions\",\"FrontEndExecute\",\"FrontEndToken\",\"FrontEndTokenExecute\",\"Full\",\"FullDefinition\",\"FullForm\",\"FullGraphics\",\"FullSimplify\",\"Function\",\"FunctionExpand\",\"FunctionInterpolation\",\"FunctionSpace\",\"G\",\"GaborWavelet\",\"GainMargins\",\"GainPhaseMargins\",\"Gamma\",\"GammaDistribution\",\"GammaRegularized\",\"GapPenalty\",\"Gather\",\"GatherBy\",\"GaussianFilter\",\"GaussianIntegers\",\"GaussianMatrix\",\"GCD\",\"GegenbauerC\",\"General\",\"GeneralizedLinearModelFit\",\"GenerateConditions\",\"GeneratedCell\",\"GeneratedParameters\",\"GeneratingFunction\",\"GenericCylindricalDecomposition\",\"GenomeData\",\"GenomeLookup\",\"GeodesicDilation\",\"GeodesicErosion\",\"GeoDestination\",\"GeodesyData\",\"GeoDirection\",\"GeoDistance\",\"GeoGridPosition\",\"GeometricDistribution\",\"GeometricMean\",\"GeometricMeanFilter\",\"GeometricTransformation\",\"GeoPosition\",\"GeoPositionENU\",\"GeoPositionXYZ\",\"GeoProjectionData\",\"Get\",\"Glaisher\",\"Glow\",\"GoldenRatio\",\"GompertzMakehamDistribution\",\"Goto\",\"Gradient\",\"GradientFilter\",\"Graph\",\"GraphCenter\",\"GraphComplement\",\"GraphData\",\"GraphDiameter\",\"GraphDifference\",\"GraphDisjointUnion\",\"GraphDistance\",\"GraphDistanceMatrix\",\"GraphHighlight\",\"GraphHighlightStyle\",\"Graphics\",\"Graphics3D\",\"GraphicsColumn\",\"GraphicsComplex\",\"GraphicsGrid\",\"GraphicsGroup\",\"GraphicsRow\",\"GraphIntersection\",\"GraphLayout\",\"GraphPeriphery\",\"GraphPlot\",\"GraphPlot3D\",\"GraphPower\",\"GraphQ\",\"GraphRadius\",\"GraphStyle\",\"GraphUnion\",\"Gray\",\"GrayLevel\",\"Greater\",\"GreaterEqual\",\"GreaterEqualLess\",\"GreaterFullEqual\",\"GreaterGreater\",\"GreaterLess\",\"GreaterSlantEqual\",\"GreaterTilde\",\"Green\",\"Grid\",\"GridBox\",\"GridDefaultElement\",\"GridGraph\",\"GridLines\",\"GridLinesStyle\",\"GroebnerBasis\",\"GroupActionBase\",\"GroupCentralizer\",\"GroupElementPosition\",\"GroupElementQ\",\"GroupElements\",\"GroupGenerators\",\"GroupMultiplicationTable\",\"GroupOrbits\",\"GroupOrder\",\"GroupPageBreakWithin\",\"GroupSetwiseStabilizer\",\"GroupStabilizer\",\"GroupStabilizerChain\",\"Gudermannian\",\"GumbelDistribution\",\"H\",\"HaarWavelet\",\"HalfNormalDistribution\",\"HamiltonianGraphQ\",\"HammingDistance\",\"HankelH1\",\"HankelH2\",\"HankelMatrix\",\"HaradaNortonGroupHN\",\"HararyGraph\",\"HarmonicMean\",\"HarmonicMeanFilter\",\"HarmonicNumber\",\"Hash\",\"Haversine\",\"HazardFunction\",\"Head\",\"Heads\",\"HeavisideLambda\",\"HeavisidePi\",\"HeavisideTheta\",\"HeldGroupHe\",\"HermiteDecomposition\",\"HermiteH\",\"HermitianMatrixQ\",\"HessenbergDecomposition\",\"HexadecimalCharacter\",\"HighlightGraph\",\"HigmanSimsGroupHS\",\"HilbertMatrix\",\"Histogram\",\"Histogram3D\",\"HistogramDistribution\",\"HistogramList\",\"HitMissTransform\",\"HITSCentrality\",\"Hold\",\"HoldAll\",\"HoldAllComplete\",\"HoldComplete\",\"HoldFirst\",\"HoldForm\",\"HoldPattern\",\"HoldRest\",\"HornerForm\",\"HotellingTSquareDistribution\",\"HoytDistribution\",\"Hue\",\"HumpDownHump\",\"HumpEqual\",\"HurwitzLerchPhi\",\"HurwitzZeta\",\"HyperbolicDistribution\",\"HypercubeGraph\",\"Hyperfactorial\",\"Hypergeometric0F1\",\"Hypergeometric0F1Regularized\",\"Hypergeometric1F1\",\"Hypergeometric1F1Regularized\",\"Hypergeometric2F1\",\"Hypergeometric2F1Regularized\",\"HypergeometricDistribution\",\"HypergeometricPFQ\",\"HypergeometricPFQRegularized\",\"HypergeometricU\",\"Hyperlink\",\"Hyphenation\",\"HypothesisTestData\",\"I\",\"Identity\",\"IdentityMatrix\",\"If\",\"IgnoreCase\",\"Im\",\"Image\",\"ImageAdd\",\"ImageAdjust\",\"ImageAlign\",\"ImageApply\",\"ImageAspectRatio\",\"ImageAssemble\",\"ImageCapture\",\"ImageChannels\",\"ImageClip\",\"ImageColorSpace\",\"ImageCompose\",\"ImageConvolve\",\"ImageCooccurrence\",\"ImageCorrelate\",\"ImageCorrespondingPoints\",\"ImageCrop\",\"ImageData\",\"ImageDeconvolve\",\"ImageDifference\",\"ImageDimensions\",\"ImageEffect\",\"ImageFilter\",\"ImageForestingComponents\",\"ImageForwardTransformation\",\"ImageHistogram\",\"ImageKeypoints\",\"ImageLevels\",\"ImageLines\",\"ImageMargins\",\"ImageMultiply\",\"ImagePad\",\"ImagePadding\",\"ImagePartition\",\"ImagePerspectiveTransformation\",\"ImageQ\",\"ImageReflect\",\"ImageResize\",\"ImageResolution\",\"ImageRotate\",\"ImageScaled\",\"ImageSize\",\"ImageSizeAction\",\"ImageSizeMultipliers\",\"ImageSubtract\",\"ImageTake\",\"ImageTransformation\",\"ImageTrim\",\"ImageType\",\"ImageValue\",\"Implies\",\"Import\",\"ImportString\",\"In\",\"IncidenceGraph\",\"IncidenceMatrix\",\"IncludeConstantBasis\",\"IncludePods\",\"Increment\",\"IndependentEdgeSetQ\",\"IndependentVertexSetQ\",\"Indeterminate\",\"IndexGraph\",\"InexactNumberQ\",\"Infinity\",\"Infix\",\"Information\",\"Inherited\",\"Initialization\",\"InitializationCell\",\"Inner\",\"Inpaint\",\"Input\",\"InputAliases\",\"InputAssumptions\",\"InputAutoReplacements\",\"InputField\",\"InputForm\",\"InputNamePacket\",\"InputNotebook\",\"InputPacket\",\"InputStream\",\"InputString\",\"InputStringPacket\",\"Insert\",\"InsertResults\",\"Inset\",\"Install\",\"InstallService\",\"InString\",\"Integer\",\"IntegerDigits\",\"IntegerExponent\",\"IntegerLength\",\"IntegerPart\",\"IntegerPartitions\",\"IntegerQ\",\"Integers\",\"IntegerString\",\"Integrate\",\"InteractiveTradingChart\",\"Interleaving\",\"InternallyBalancedDecomposition\",\"InterpolatingFunction\",\"InterpolatingPolynomial\",\"Interpolation\",\"InterpolationOrder\",\"Interpretation\",\"InterpretationBox\",\"InterquartileRange\",\"Interrupt\",\"Intersection\",\"Interval\",\"IntervalIntersection\",\"IntervalMemberQ\",\"IntervalUnion\",\"Inverse\",\"InverseBetaRegularized\",\"InverseCDF\",\"InverseChiSquareDistribution\",\"InverseContinuousWaveletTransform\",\"InverseDistanceTransform\",\"InverseEllipticNomeQ\",\"InverseErf\",\"InverseErfc\",\"InverseFourier\",\"InverseFourierCosTransform\",\"InverseFourierSequenceTransform\",\"InverseFourierSinTransform\",\"InverseFourierTransform\",\"InverseFunction\",\"InverseFunctions\",\"InverseGammaDistribution\",\"InverseGammaRegularized\",\"InverseGaussianDistribution\",\"InverseGudermannian\",\"InverseHaversine\",\"InverseJacobiCD\",\"InverseJacobiCN\",\"InverseJacobiCS\",\"InverseJacobiDC\",\"InverseJacobiDN\",\"InverseJacobiDS\",\"InverseJacobiNC\",\"InverseJacobiND\",\"InverseJacobiNS\",\"InverseJacobiSC\",\"InverseJacobiSD\",\"InverseJacobiSN\",\"InverseLaplaceTransform\",\"InversePermutation\",\"InverseRadon\",\"InverseSeries\",\"InverseSurvivalFunction\",\"InverseWaveletTransform\",\"InverseWeierstrassP\",\"InverseZTransform\",\"Invisible\",\"IrreduciblePolynomialQ\",\"IsolatingInterval\",\"IsomorphicGraphQ\",\"IsotopeData\",\"Italic\",\"Item\",\"ItemAspectRatio\",\"ItemSize\",\"ItemStyle\",\"J\",\"JaccardDissimilarity\",\"JacobiAmplitude\",\"JacobiCD\",\"JacobiCN\",\"JacobiCS\",\"JacobiDC\",\"JacobiDN\",\"JacobiDS\",\"JacobiNC\",\"JacobiND\",\"JacobiNS\",\"JacobiP\",\"JacobiSC\",\"JacobiSD\",\"JacobiSN\",\"JacobiSymbol\",\"JacobiZeta\",\"JankoGroupJ1\",\"JankoGroupJ2\",\"JankoGroupJ3\",\"JankoGroupJ4\",\"JarqueBeraALMTest\",\"JohnsonDistribution\",\"Join\",\"Joined\",\"JoinedCurve\",\"JoinForm\",\"JordanDecomposition\",\"JordanModelDecomposition\",\"K\",\"KagiChart\",\"KalmanEstimator\",\"KarhunenLoeveDecomposition\",\"KaryTree\",\"KatzCentrality\",\"KCoreComponents\",\"KDistribution\",\"KelvinBei\",\"KelvinBer\",\"KelvinKei\",\"KelvinKer\",\"KernelMixtureDistribution\",\"KernelObject\",\"Kernels\",\"Khinchin\",\"KirchhoffGraph\",\"KirchhoffMatrix\",\"KleinInvariantJ\",\"KnightTourGraph\",\"KnotData\",\"KolmogorovSmirnovTest\",\"KroneckerDelta\",\"KroneckerProduct\",\"KroneckerSymbol\",\"KuiperTest\",\"KumaraswamyDistribution\",\"Kurtosis\",\"KuwaharaFilter\",\"L\",\"Label\",\"Labeled\",\"LabelingFunction\",\"LabelStyle\",\"LaguerreL\",\"LandauDistribution\",\"LanguageCategory\",\"LaplaceDistribution\",\"LaplaceTransform\",\"LaplacianFilter\",\"LaplacianGaussianFilter\",\"Large\",\"Larger\",\"Last\",\"Latitude\",\"LatitudeLongitude\",\"LatticeData\",\"LatticeReduce\",\"LaunchKernels\",\"LayeredGraphPlot\",\"LayerSizeFunction\",\"LCM\",\"LeafCount\",\"LeastSquares\",\"Left\",\"LeftArrow\",\"LeftArrowBar\",\"LeftArrowRightArrow\",\"LeftDownTeeVector\",\"LeftDownVector\",\"LeftDownVectorBar\",\"LeftRightArrow\",\"LeftRightVector\",\"LeftTeeArrow\",\"LeftTeeVector\",\"LeftTriangle\",\"LeftTriangleBar\",\"LeftTriangleEqual\",\"LeftUpDownVector\",\"LeftUpTeeVector\",\"LeftUpVector\",\"LeftUpVectorBar\",\"LeftVector\",\"LeftVectorBar\",\"LegendAppearance\",\"Legended\",\"LegendreP\",\"LegendreQ\",\"Length\",\"LengthWhile\",\"LerchPhi\",\"Less\",\"LessEqual\",\"LessEqualGreater\",\"LessFullEqual\",\"LessGreater\",\"LessLess\",\"LessSlantEqual\",\"LessTilde\",\"LetterCharacter\",\"LetterQ\",\"Level\",\"LeveneTest\",\"LeviCivitaTensor\",\"LevyDistribution\",\"LibraryFunction\",\"LibraryFunctionError\",\"LibraryFunctionInformation\",\"LibraryFunctionLoad\",\"LibraryFunctionUnload\",\"LibraryLoad\",\"LibraryUnload\",\"LiftingFilterData\",\"LiftingWaveletTransform\",\"LightBlue\",\"LightBrown\",\"LightCyan\",\"Lighter\",\"LightGray\",\"LightGreen\",\"Lighting\",\"LightingAngle\",\"LightMagenta\",\"LightOrange\",\"LightPink\",\"LightPurple\",\"LightRed\",\"LightYellow\",\"Likelihood\",\"Limit\",\"LimitsPositioning\",\"LindleyDistribution\",\"Line\",\"LinearFractionalTransform\",\"LinearModelFit\",\"LinearOffsetFunction\",\"LinearProgramming\",\"LinearRecurrence\",\"LinearSolve\",\"LinearSolveFunction\",\"LineBreakChart\",\"LineGraph\",\"LineIndent\",\"LineIndentMaxFraction\",\"LineIntegralConvolutionPlot\",\"LineIntegralConvolutionScale\",\"LineSpacing\",\"LinkClose\",\"LinkConnect\",\"LinkCreate\",\"LinkFunction\",\"LinkInterrupt\",\"LinkLaunch\",\"LinkObject\",\"LinkPatterns\",\"LinkProtocol\",\"LinkRead\",\"LinkReadyQ\",\"Links\",\"LinkWrite\",\"LiouvilleLambda\",\"List\",\"Listable\",\"ListAnimate\",\"ListContourPlot\",\"ListContourPlot3D\",\"ListConvolve\",\"ListCorrelate\",\"ListCurvePathPlot\",\"ListDeconvolve\",\"ListDensityPlot\",\"ListInterpolation\",\"ListLineIntegralConvolutionPlot\",\"ListLinePlot\",\"ListLogLinearPlot\",\"ListLogLogPlot\",\"ListLogPlot\",\"ListPlay\",\"ListPlot\",\"ListPlot3D\",\"ListPointPlot3D\",\"ListPolarPlot\",\"ListStreamDensityPlot\",\"ListStreamPlot\",\"ListSurfacePlot3D\",\"ListVectorDensityPlot\",\"ListVectorPlot\",\"ListVectorPlot3D\",\"LocalizeVariables\",\"LocationEquivalenceTest\",\"LocationTest\",\"Locator\",\"LocatorAutoCreate\",\"LocatorPane\",\"LocatorRegion\",\"Locked\",\"Log\",\"Log10\",\"Log2\",\"LogBarnesG\",\"LogGamma\",\"LogGammaDistribution\",\"LogicalExpand\",\"LogIntegral\",\"LogisticDistribution\",\"LogitModelFit\",\"LogLikelihood\",\"LogLinearPlot\",\"LogLogisticDistribution\",\"LogLogPlot\",\"LogNormalDistribution\",\"LogPlot\",\"LogSeriesDistribution\",\"Longest\",\"LongestCommonSequence\",\"LongestCommonSubsequence\",\"Longitude\",\"LongLeftArrow\",\"LongLeftRightArrow\",\"LongRightArrow\",\"LoopFreeGraphQ\",\"LowerCaseQ\",\"LowerLeftArrow\",\"LowerRightArrow\",\"LowerTriangularize\",\"LQEstimatorGains\",\"LQGRegulator\",\"LQOutputRegulatorGains\",\"LQRegulatorGains\",\"LucasL\",\"LUDecomposition\",\"LyapunovSolve\",\"LyonsGroupLy\",\"M\",\"MachineNumberQ\",\"MachinePrecision\",\"Magenta\",\"Magnification\",\"Magnify\",\"Majority\",\"MakeBoxes\",\"MakeExpression\",\"MangoldtLambda\",\"ManhattanDistance\",\"Manipulate\",\"Manipulator\",\"MannWhitneyTest\",\"MantissaExponent\",\"Manual\",\"Map\",\"MapAll\",\"MapAt\",\"MapIndexed\",\"MapThread\",\"MarcumQ\",\"MardiaCombinedTest\",\"MardiaKurtosisTest\",\"MardiaSkewnessTest\",\"MarginalDistribution\",\"Masking\",\"MatchingDissimilarity\",\"MatchLocalNames\",\"MatchQ\",\"MathieuC\",\"MathieuCharacteristicA\",\"MathieuCharacteristicB\",\"MathieuCharacteristicExponent\",\"MathieuCPrime\",\"MathieuGroupM11\",\"MathieuGroupM12\",\"MathieuGroupM22\",\"MathieuGroupM23\",\"MathieuGroupM24\",\"MathieuS\",\"MathieuSPrime\",\"MathMLForm\",\"MatrixExp\",\"MatrixForm\",\"MatrixPlot\",\"MatrixPower\",\"MatrixQ\",\"MatrixRank\",\"Max\",\"MaxDetect\",\"MaxExtraBandwidths\",\"MaxExtraConditions\",\"MaxFilter\",\"Maximize\",\"MaxIterations\",\"MaxMemoryUsed\",\"MaxMixtureKernels\",\"MaxPlotPoints\",\"MaxRecursion\",\"MaxStableDistribution\",\"MaxStepFraction\",\"MaxSteps\",\"MaxStepSize\",\"MaxValue\",\"MaxwellDistribution\",\"McLaughlinGroupMcL\",\"Mean\",\"MeanDeviation\",\"MeanFilter\",\"MeanShift\",\"MeanShiftFilter\",\"Median\",\"MedianDeviation\",\"MedianFilter\",\"Medium\",\"MeijerG\",\"MemberQ\",\"MemoryConstrained\",\"MemoryInUse\",\"MenuCommandKey\",\"MenuPacket\",\"MenuSortingValue\",\"MenuStyle\",\"MenuView\",\"Mesh\",\"MeshFunctions\",\"MeshShading\",\"MeshStyle\",\"Message\",\"MessageDialog\",\"MessageList\",\"MessageName\",\"MessagePacket\",\"Messages\",\"Method\",\"MexicanHatWavelet\",\"MeyerWavelet\",\"Min\",\"MinDetect\",\"MinFilter\",\"MinimalPolynomial\",\"MinimalStateSpaceModel\",\"Minimize\",\"Minors\",\"MinStableDistribution\",\"Minus\",\"MinusPlus\",\"MinValue\",\"Missing\",\"MixtureDistribution\",\"Mod\",\"Modal\",\"ModularLambda\",\"Module\",\"Modulus\",\"MoebiusMu\",\"Moment\",\"MomentConvert\",\"MomentEvaluate\",\"MomentGeneratingFunction\",\"Monitor\",\"MonomialList\",\"MonsterGroupM\",\"MorletWavelet\",\"MorphologicalBinarize\",\"MorphologicalBranchPoints\",\"MorphologicalComponents\",\"MorphologicalEulerNumber\",\"MorphologicalGraph\",\"MorphologicalPerimeter\",\"MorphologicalTransform\",\"Most\",\"MouseAnnotation\",\"MouseAppearance\",\"Mouseover\",\"MousePosition\",\"MovingAverage\",\"MovingMedian\",\"MoyalDistribution\",\"MultiedgeStyle\",\"Multinomial\",\"MultinomialDistribution\",\"MultinormalDistribution\",\"MultiplicativeOrder\",\"MultivariateHypergeometricDistribution\",\"MultivariatePoissonDistribution\",\"MultivariateTDistribution\",\"N\",\"NakagamiDistribution\",\"NameQ\",\"Names\",\"Nand\",\"NArgMax\",\"NArgMin\",\"NCache\",\"NDSolve\",\"Nearest\",\"NearestFunction\",\"NeedlemanWunschSimilarity\",\"Needs\",\"Negative\",\"NegativeBinomialDistribution\",\"NegativeMultinomialDistribution\",\"NeighborhoodGraph\",\"Nest\",\"NestedGreaterGreater\",\"NestedLessLess\",\"NestList\",\"NestWhile\",\"NestWhileList\",\"NevilleThetaC\",\"NevilleThetaD\",\"NevilleThetaN\",\"NevilleThetaS\",\"NExpectation\",\"NextPrime\",\"NHoldAll\",\"NHoldFirst\",\"NHoldRest\",\"NicholsGridLines\",\"NicholsPlot\",\"NIntegrate\",\"NMaximize\",\"NMaxValue\",\"NMinimize\",\"NMinValue\",\"NominalVariables\",\"NoncentralBetaDistribution\",\"NoncentralChiSquareDistribution\",\"NoncentralFRatioDistribution\",\"NoncentralStudentTDistribution\",\"NonCommutativeMultiply\",\"NonConstants\",\"None\",\"NonlinearModelFit\",\"NonNegative\",\"NonPositive\",\"Nor\",\"NorlundB\",\"Norm\",\"Normal\",\"NormalDistribution\",\"Normalize\",\"NormalizedSquaredEuclideanDistance\",\"NormalsFunction\",\"NormFunction\",\"Not\",\"NotCongruent\",\"NotCupCap\",\"NotDoubleVerticalBar\",\"Notebook\",\"NotebookApply\",\"NotebookAutoSave\",\"NotebookClose\",\"NotebookDelete\",\"NotebookDirectory\",\"NotebookDynamicExpression\",\"NotebookEvaluate\",\"NotebookEventActions\",\"NotebookFileName\",\"NotebookFind\",\"NotebookGet\",\"NotebookInformation\",\"NotebookLocate\",\"NotebookObject\",\"NotebookOpen\",\"NotebookPrint\",\"NotebookPut\",\"NotebookRead\",\"Notebooks\",\"NotebookSave\",\"NotebookSelection\",\"NotebookWrite\",\"NotElement\",\"NotEqualTilde\",\"NotExists\",\"NotGreater\",\"NotGreaterEqual\",\"NotGreaterFullEqual\",\"NotGreaterGreater\",\"NotGreaterLess\",\"NotGreaterSlantEqual\",\"NotGreaterTilde\",\"NotHumpDownHump\",\"NotHumpEqual\",\"NotLeftTriangle\",\"NotLeftTriangleBar\",\"NotLeftTriangleEqual\",\"NotLess\",\"NotLessEqual\",\"NotLessFullEqual\",\"NotLessGreater\",\"NotLessLess\",\"NotLessSlantEqual\",\"NotLessTilde\",\"NotNestedGreaterGreater\",\"NotNestedLessLess\",\"NotPrecedes\",\"NotPrecedesEqual\",\"NotPrecedesSlantEqual\",\"NotPrecedesTilde\",\"NotReverseElement\",\"NotRightTriangle\",\"NotRightTriangleBar\",\"NotRightTriangleEqual\",\"NotSquareSubset\",\"NotSquareSubsetEqual\",\"NotSquareSuperset\",\"NotSquareSupersetEqual\",\"NotSubset\",\"NotSubsetEqual\",\"NotSucceeds\",\"NotSucceedsEqual\",\"NotSucceedsSlantEqual\",\"NotSucceedsTilde\",\"NotSuperset\",\"NotSupersetEqual\",\"NotTilde\",\"NotTildeEqual\",\"NotTildeFullEqual\",\"NotTildeTilde\",\"NotVerticalBar\",\"NProbability\",\"NProduct\",\"NRoots\",\"NSolve\",\"NSum\",\"Null\",\"NullRecords\",\"NullSpace\",\"NullWords\",\"Number\",\"NumberFieldClassNumber\",\"NumberFieldDiscriminant\",\"NumberFieldFundamentalUnits\",\"NumberFieldIntegralBasis\",\"NumberFieldNormRepresentatives\",\"NumberFieldRegulator\",\"NumberFieldRootsOfUnity\",\"NumberFieldSignature\",\"NumberForm\",\"NumberFormat\",\"NumberMarks\",\"NumberMultiplier\",\"NumberPadding\",\"NumberPoint\",\"NumberQ\",\"NumberSeparator\",\"NumberSigns\",\"NumberString\",\"Numerator\",\"NumericFunction\",\"NumericQ\",\"NyquistGridLines\",\"NyquistPlot\",\"O\",\"ObservabilityGramian\",\"ObservabilityMatrix\",\"ObservableDecomposition\",\"ObservableModelQ\",\"OddQ\",\"Off\",\"Offset\",\"On\",\"ONanGroupON\",\"OneIdentity\",\"Opacity\",\"OpenAppend\",\"Opener\",\"OpenerView\",\"Opening\",\"OpenRead\",\"OpenWrite\",\"Operate\",\"OperatingSystem\",\"Optional\",\"Options\",\"OptionsPattern\",\"OptionValue\",\"Or\",\"Orange\",\"Order\",\"OrderDistribution\",\"OrderedQ\",\"Ordering\",\"Orderless\",\"Orthogonalize\",\"Out\",\"Outer\",\"OutputControllabilityMatrix\",\"OutputControllableModelQ\",\"OutputForm\",\"OutputNamePacket\",\"OutputResponse\",\"OutputSizeLimit\",\"OutputStream\",\"OverBar\",\"OverDot\",\"Overflow\",\"OverHat\",\"Overlaps\",\"Overlay\",\"Overscript\",\"OverscriptBox\",\"OverTilde\",\"OverVector\",\"OwenT\",\"OwnValues\",\"P\",\"PackingMethod\",\"PaddedForm\",\"Padding\",\"PadeApproximant\",\"PadLeft\",\"PadRight\",\"PageBreakAbove\",\"PageBreakBelow\",\"PageBreakWithin\",\"PageFooters\",\"PageHeaders\",\"PageRankCentrality\",\"PageWidth\",\"PairedBarChart\",\"PairedHistogram\",\"PairedTTest\",\"PairedZTest\",\"PaletteNotebook\",\"Pane\",\"Panel\",\"Paneled\",\"PaneSelector\",\"ParabolicCylinderD\",\"ParagraphIndent\",\"ParagraphSpacing\",\"ParallelArray\",\"ParallelCombine\",\"ParallelDo\",\"ParallelEvaluate\",\"Parallelization\",\"Parallelize\",\"ParallelMap\",\"ParallelNeeds\",\"ParallelProduct\",\"ParallelSubmit\",\"ParallelSum\",\"ParallelTable\",\"ParallelTry\",\"ParameterEstimator\",\"ParameterMixtureDistribution\",\"ParametricPlot\",\"ParametricPlot3D\",\"ParentDirectory\",\"ParetoDistribution\",\"Part\",\"ParticleData\",\"Partition\",\"PartitionsP\",\"PartitionsQ\",\"PascalDistribution\",\"PassEventsDown\",\"PassEventsUp\",\"Paste\",\"PasteButton\",\"Path\",\"PathGraph\",\"PathGraphQ\",\"Pattern\",\"PatternSequence\",\"PatternTest\",\"PauliMatrix\",\"PaulWavelet\",\"Pause\",\"PDF\",\"PearsonChiSquareTest\",\"PearsonDistribution\",\"PerformanceGoal\",\"PermutationCycles\",\"PermutationCyclesQ\",\"PermutationGroup\",\"PermutationLength\",\"PermutationList\",\"PermutationListQ\",\"PermutationMax\",\"PermutationMin\",\"PermutationOrder\",\"PermutationPower\",\"PermutationProduct\",\"PermutationReplace\",\"Permutations\",\"PermutationSupport\",\"Permute\",\"PeronaMalikFilter\",\"PERTDistribution\",\"PetersenGraph\",\"PhaseMargins\",\"Pi\",\"Pick\",\"Piecewise\",\"PiecewiseExpand\",\"PieChart\",\"PieChart3D\",\"Pink\",\"PixelConstrained\",\"PixelValue\",\"Placed\",\"Placeholder\",\"PlaceholderReplace\",\"Plain\",\"Play\",\"PlayRange\",\"Plot\",\"Plot3D\",\"PlotLabel\",\"PlotLayout\",\"PlotMarkers\",\"PlotPoints\",\"PlotRange\",\"PlotRangeClipping\",\"PlotRangePadding\",\"PlotRegion\",\"PlotStyle\",\"Plus\",\"PlusMinus\",\"Pochhammer\",\"PodStates\",\"PodWidth\",\"Point\",\"PointFigureChart\",\"PointSize\",\"PoissonConsulDistribution\",\"PoissonDistribution\",\"PolarAxes\",\"PolarAxesOrigin\",\"PolarGridLines\",\"PolarPlot\",\"PolarTicks\",\"PoleZeroMarkers\",\"PolyaAeppliDistribution\",\"PolyGamma\",\"Polygon\",\"PolyhedronData\",\"PolyLog\",\"PolynomialExtendedGCD\",\"PolynomialGCD\",\"PolynomialLCM\",\"PolynomialMod\",\"PolynomialQ\",\"PolynomialQuotient\",\"PolynomialQuotientRemainder\",\"PolynomialReduce\",\"PolynomialRemainder\",\"PopupMenu\",\"PopupView\",\"PopupWindow\",\"Position\",\"Positive\",\"PositiveDefiniteMatrixQ\",\"PossibleZeroQ\",\"Postfix\",\"Power\",\"PowerDistribution\",\"PowerExpand\",\"PowerMod\",\"PowerModList\",\"PowersRepresentations\",\"PowerSymmetricPolynomial\",\"PrecedenceForm\",\"Precedes\",\"PrecedesEqual\",\"PrecedesSlantEqual\",\"PrecedesTilde\",\"Precision\",\"PrecisionGoal\",\"PreDecrement\",\"PreemptProtect\",\"Prefix\",\"PreIncrement\",\"Prepend\",\"PrependTo\",\"PreserveImageOptions\",\"PriceGraphDistribution\",\"Prime\",\"PrimeNu\",\"PrimeOmega\",\"PrimePi\",\"PrimePowerQ\",\"PrimeQ\",\"Primes\",\"PrimeZetaP\",\"PrimitiveRoot\",\"PrincipalComponents\",\"PrincipalValue\",\"Print\",\"PrintingStyleEnvironment\",\"PrintTemporary\",\"Probability\",\"ProbabilityDistribution\",\"ProbabilityPlot\",\"ProbabilityScalePlot\",\"ProbitModelFit\",\"Product\",\"ProductDistribution\",\"ProductLog\",\"ProgressIndicator\",\"Projection\",\"Prolog\",\"Properties\",\"Property\",\"PropertyList\",\"PropertyValue\",\"Proportion\",\"Proportional\",\"Protect\",\"Protected\",\"ProteinData\",\"Pruning\",\"PseudoInverse\",\"Purple\",\"Put\",\"PutAppend\",\"Q\",\"QBinomial\",\"QFactorial\",\"QGamma\",\"QHypergeometricPFQ\",\"QPochhammer\",\"QPolyGamma\",\"QRDecomposition\",\"QuadraticIrrationalQ\",\"Quantile\",\"QuantilePlot\",\"Quartics\",\"QuartileDeviation\",\"Quartiles\",\"QuartileSkewness\",\"Quiet\",\"Quit\",\"Quotient\",\"QuotientRemainder\",\"R\",\"RadicalBox\",\"RadioButton\",\"RadioButtonBar\",\"Radon\",\"RamanujanTau\",\"RamanujanTauL\",\"RamanujanTauTheta\",\"RamanujanTauZ\",\"RandomChoice\",\"RandomComplex\",\"RandomGraph\",\"RandomImage\",\"RandomInteger\",\"RandomPermutation\",\"RandomPrime\",\"RandomReal\",\"RandomSample\",\"RandomVariate\",\"Range\",\"RangeFilter\",\"RankedMax\",\"RankedMin\",\"Raster\",\"Rasterize\",\"RasterSize\",\"Rational\",\"Rationalize\",\"Rationals\",\"Ratios\",\"RawBoxes\",\"RawData\",\"RayleighDistribution\",\"Re\",\"Read\",\"ReadList\",\"ReadProtected\",\"Real\",\"RealBlockDiagonalForm\",\"RealDigits\",\"RealExponent\",\"Reals\",\"Reap\",\"Record\",\"RecordLists\",\"RecordSeparators\",\"Rectangle\",\"RectangleChart\",\"RectangleChart3D\",\"RecurrenceTable\",\"Red\",\"Reduce\",\"ReferenceLineStyle\",\"Refine\",\"ReflectionMatrix\",\"ReflectionTransform\",\"Refresh\",\"RefreshRate\",\"RegionBinarize\",\"RegionFunction\",\"RegionPlot\",\"RegionPlot3D\",\"RegularExpression\",\"Regularization\",\"ReleaseHold\",\"ReliefImage\",\"ReliefPlot\",\"Remove\",\"RemoveAlphaChannel\",\"RemoveProperty\",\"RemoveScheduledTask\",\"RenameDirectory\",\"RenameFile\",\"RenkoChart\",\"Repeated\",\"RepeatedNull\",\"Replace\",\"ReplaceAll\",\"ReplaceList\",\"ReplacePart\",\"ReplaceRepeated\",\"Resampling\",\"Rescale\",\"RescalingTransform\",\"ResetDirectory\",\"ResetScheduledTask\",\"Residue\",\"Resolve\",\"Rest\",\"Resultant\",\"ResumePacket\",\"Return\",\"ReturnExpressionPacket\",\"ReturnPacket\",\"ReturnTextPacket\",\"Reverse\",\"ReverseBiorthogonalSplineWavelet\",\"ReverseElement\",\"ReverseEquilibrium\",\"ReverseGraph\",\"ReverseUpEquilibrium\",\"RevolutionAxis\",\"RevolutionPlot3D\",\"RGBColor\",\"RiccatiSolve\",\"RiceDistribution\",\"RidgeFilter\",\"RiemannR\",\"RiemannSiegelTheta\",\"RiemannSiegelZ\",\"Riffle\",\"Right\",\"RightArrow\",\"RightArrowBar\",\"RightArrowLeftArrow\",\"RightCosetRepresentative\",\"RightDownTeeVector\",\"RightDownVector\",\"RightDownVectorBar\",\"RightTeeArrow\",\"RightTeeVector\",\"RightTriangle\",\"RightTriangleBar\",\"RightTriangleEqual\",\"RightUpDownVector\",\"RightUpTeeVector\",\"RightUpVector\",\"RightUpVectorBar\",\"RightVector\",\"RightVectorBar\",\"RogersTanimotoDissimilarity\",\"Root\",\"RootApproximant\",\"RootIntervals\",\"RootLocusPlot\",\"RootMeanSquare\",\"RootOfUnityQ\",\"RootReduce\",\"Roots\",\"RootSum\",\"Rotate\",\"RotateLabel\",\"RotateLeft\",\"RotateRight\",\"RotationAction\",\"RotationMatrix\",\"RotationTransform\",\"Round\",\"RoundingRadius\",\"Row\",\"RowAlignments\",\"RowBox\",\"RowLines\",\"RowMinHeight\",\"RowReduce\",\"RowsEqual\",\"RowSpacings\",\"RSolve\",\"RudvalisGroupRu\",\"Rule\",\"RuleDelayed\",\"Run\",\"RunScheduledTask\",\"RunThrough\",\"RuntimeAttributes\",\"RuntimeOptions\",\"RussellRaoDissimilarity\",\"S\",\"SameQ\",\"SameTest\",\"SampleDepth\",\"SampledSoundFunction\",\"SampledSoundList\",\"SampleRate\",\"SamplingPeriod\",\"SatisfiabilityCount\",\"SatisfiabilityInstances\",\"SatisfiableQ\",\"Save\",\"SaveDefinitions\",\"SawtoothWave\",\"Scale\",\"Scaled\",\"ScalingFunctions\",\"ScalingMatrix\",\"ScalingTransform\",\"Scan\",\"ScheduledTaskObject\",\"ScheduledTasks\",\"SchurDecomposition\",\"ScientificForm\",\"ScreenStyleEnvironment\",\"ScriptBaselineShifts\",\"ScriptMinSize\",\"ScriptSizeMultipliers\",\"Scrollbars\",\"ScrollPosition\",\"Sec\",\"Sech\",\"SechDistribution\",\"SectorChart\",\"SectorChart3D\",\"SectorOrigin\",\"SectorSpacing\",\"SeedRandom\",\"Select\",\"Selectable\",\"SelectComponents\",\"SelectedNotebook\",\"SelectionAnimate\",\"SelectionCreateCell\",\"SelectionEvaluate\",\"SelectionEvaluateCreateCell\",\"SelectionMove\",\"SelfLoopStyle\",\"SemialgebraicComponentInstances\",\"SendMail\",\"Sequence\",\"SequenceAlignment\",\"SequenceHold\",\"Series\",\"SeriesCoefficient\",\"SeriesData\",\"SessionTime\",\"Set\",\"SetAccuracy\",\"SetAlphaChannel\",\"SetAttributes\",\"SetDelayed\",\"SetDirectory\",\"SetFileDate\",\"SetOptions\",\"SetPrecision\",\"SetProperty\",\"SetSelectedNotebook\",\"SetSharedFunction\",\"SetSharedVariable\",\"SetStreamPosition\",\"SetSystemOptions\",\"Setter\",\"SetterBar\",\"Setting\",\"Shallow\",\"ShannonWavelet\",\"ShapiroWilkTest\",\"Share\",\"Sharpen\",\"ShearingMatrix\",\"ShearingTransform\",\"Short\",\"ShortDownArrow\",\"Shortest\",\"ShortestPathFunction\",\"ShortLeftArrow\",\"ShortRightArrow\",\"ShortUpArrow\",\"Show\",\"ShowAutoStyles\",\"ShowCellBracket\",\"ShowCellLabel\",\"ShowCellTags\",\"ShowCursorTracker\",\"ShowGroupOpener\",\"ShowPageBreaks\",\"ShowSelection\",\"ShowSpecialCharacters\",\"ShowStringCharacters\",\"ShrinkingDelay\",\"SiegelTheta\",\"SiegelTukeyTest\",\"Sign\",\"Signature\",\"SignedRankTest\",\"SignificanceLevel\",\"SignPadding\",\"SignTest\",\"SimilarityRules\",\"SimpleGraph\",\"SimpleGraphQ\",\"Simplify\",\"Sin\",\"Sinc\",\"SinghMaddalaDistribution\",\"SingleLetterItalics\",\"SingularValueDecomposition\",\"SingularValueList\",\"SingularValuePlot\",\"Sinh\",\"SinhIntegral\",\"SinIntegral\",\"SixJSymbol\",\"Skeleton\",\"SkeletonTransform\",\"SkellamDistribution\",\"Skewness\",\"SkewNormalDistribution\",\"Skip\",\"Slider\",\"Slider2D\",\"SlideView\",\"Slot\",\"SlotSequence\",\"Small\",\"SmallCircle\",\"Smaller\",\"SmithWatermanSimilarity\",\"SmoothDensityHistogram\",\"SmoothHistogram\",\"SmoothHistogram3D\",\"SmoothKernelDistribution\",\"SokalSneathDissimilarity\",\"Solve\",\"SolveAlways\",\"Sort\",\"SortBy\",\"Sound\",\"SoundNote\",\"SoundVolume\",\"Sow\",\"Spacer\",\"Spacings\",\"Span\",\"SpanFromAbove\",\"SpanFromBoth\",\"SpanFromLeft\",\"SparseArray\",\"Speak\",\"Specularity\",\"SpellingCorrection\",\"Sphere\",\"SphericalBesselJ\",\"SphericalBesselY\",\"SphericalHankelH1\",\"SphericalHankelH2\",\"SphericalHarmonicY\",\"SphericalPlot3D\",\"SphericalRegion\",\"SpheroidalEigenvalue\",\"SpheroidalJoiningFactor\",\"SpheroidalPS\",\"SpheroidalPSPrime\",\"SpheroidalQS\",\"SpheroidalQSPrime\",\"SpheroidalRadialFactor\",\"SpheroidalS1\",\"SpheroidalS1Prime\",\"SpheroidalS2\",\"SpheroidalS2Prime\",\"Splice\",\"SplineClosed\",\"SplineDegree\",\"SplineKnots\",\"SplineWeights\",\"Split\",\"SplitBy\",\"SpokenString\",\"Sqrt\",\"SqrtBox\",\"Square\",\"SquaredEuclideanDistance\",\"SquareFreeQ\",\"SquareIntersection\",\"SquaresR\",\"SquareSubset\",\"SquareSubsetEqual\",\"SquareSuperset\",\"SquareSupersetEqual\",\"SquareUnion\",\"SquareWave\",\"StabilityMargins\",\"StabilityMarginsStyle\",\"StableDistribution\",\"Stack\",\"StackBegin\",\"StackComplete\",\"StackInhibit\",\"StandardDeviation\",\"StandardDeviationFilter\",\"StandardForm\",\"Standardize\",\"Star\",\"StarGraph\",\"StartingStepSize\",\"StartOfLine\",\"StartOfString\",\"StartScheduledTask\",\"StateFeedbackGains\",\"StateOutputEstimator\",\"StateResponse\",\"StateSpaceModel\",\"StateSpaceRealization\",\"StateSpaceTransform\",\"StationaryWaveletPacketTransform\",\"StationaryWaveletTransform\",\"StatusArea\",\"StepMonitor\",\"StieltjesGamma\",\"StirlingS1\",\"StirlingS2\",\"StopScheduledTask\",\"StreamColorFunction\",\"StreamColorFunctionScaling\",\"StreamDensityPlot\",\"StreamPlot\",\"StreamPoints\",\"StreamPosition\",\"Streams\",\"StreamScale\",\"StreamStyle\",\"String\",\"StringCases\",\"StringCount\",\"StringDrop\",\"StringExpression\",\"StringForm\",\"StringFormat\",\"StringFreeQ\",\"StringInsert\",\"StringJoin\",\"StringLength\",\"StringMatchQ\",\"StringPosition\",\"StringQ\",\"StringReplace\",\"StringReplaceList\",\"StringReplacePart\",\"StringReverse\",\"StringSkeleton\",\"StringSplit\",\"StringTake\",\"StringToStream\",\"StringTrim\",\"StructuredSelection\",\"StruveH\",\"StruveL\",\"Stub\",\"StudentTDistribution\",\"Style\",\"StyleBox\",\"StyleData\",\"StyleDefinitions\",\"Subfactorial\",\"Subgraph\",\"SubMinus\",\"SubPlus\",\"Subresultants\",\"Subscript\",\"SubscriptBox\",\"Subset\",\"SubsetEqual\",\"Subsets\",\"SubStar\",\"Subsuperscript\",\"SubsuperscriptBox\",\"Subtract\",\"SubtractFrom\",\"Succeeds\",\"SucceedsEqual\",\"SucceedsSlantEqual\",\"SucceedsTilde\",\"SuchThat\",\"Sum\",\"SumConvergence\",\"SuperDagger\",\"SuperMinus\",\"SuperPlus\",\"Superscript\",\"SuperscriptBox\",\"Superset\",\"SupersetEqual\",\"SuperStar\",\"SurvivalDistribution\",\"SurvivalFunction\",\"SuspendPacket\",\"SuzukiDistribution\",\"SuzukiGroupSuz\",\"Switch\",\"Symbol\",\"SymbolName\",\"SymletWavelet\",\"SymmetricGroup\",\"SymmetricMatrixQ\",\"SymmetricPolynomial\",\"SymmetricReduction\",\"SynchronousInitialization\",\"SynchronousUpdating\",\"SyntaxInformation\",\"SyntaxLength\",\"SyntaxPacket\",\"SyntaxQ\",\"SystemDialogInput\",\"SystemInformation\",\"SystemOpen\",\"SystemOptions\",\"SystemsModelDelete\",\"SystemsModelDimensions\",\"SystemsModelExtract\",\"SystemsModelFeedbackConnect\",\"SystemsModelLabels\",\"SystemsModelOrder\",\"SystemsModelParallelConnect\",\"SystemsModelSeriesConnect\",\"SystemsModelStateFeedbackConnect\",\"T\",\"Table\",\"TableAlignments\",\"TableDepth\",\"TableDirections\",\"TableForm\",\"TableHeadings\",\"TableSpacing\",\"TabView\",\"TagBox\",\"TaggingRules\",\"TagSet\",\"TagSetDelayed\",\"TagUnset\",\"Take\",\"TakeWhile\",\"Tally\",\"Tan\",\"Tanh\",\"TargetFunctions\",\"TautologyQ\",\"Temporary\",\"TeXForm\",\"Text\",\"TextAlignment\",\"TextCell\",\"TextClipboardType\",\"TextData\",\"TextJustification\",\"TextPacket\",\"TextRecognize\",\"Texture\",\"TextureCoordinateFunction\",\"TextureCoordinateScaling\",\"Therefore\",\"Thick\",\"Thickness\",\"Thin\",\"Thinning\",\"ThompsonGroupTh\",\"Thread\",\"ThreeJSymbol\",\"Threshold\",\"Through\",\"Throw\",\"Thumbnail\",\"Ticks\",\"TicksStyle\",\"Tilde\",\"TildeEqual\",\"TildeFullEqual\",\"TildeTilde\",\"TimeConstrained\",\"TimeConstraint\",\"Times\",\"TimesBy\",\"TimeUsed\",\"TimeValue\",\"TimeZone\",\"Timing\",\"Tiny\",\"TitsGroupT\",\"ToBoxes\",\"ToCharacterCode\",\"ToContinuousTimeModel\",\"ToDiscreteTimeModel\",\"ToeplitzMatrix\",\"ToExpression\",\"Together\",\"Toggler\",\"TogglerBar\",\"TokenWords\",\"Tolerance\",\"ToLowerCase\",\"ToNumberField\",\"Tooltip\",\"TooltipDelay\",\"Top\",\"TopHatTransform\",\"TopologicalSort\",\"ToRadicals\",\"ToRules\",\"ToString\",\"Total\",\"TotalVariationFilter\",\"TotalWidth\",\"ToUpperCase\",\"Tr\",\"Trace\",\"TraceAbove\",\"TraceBackward\",\"TraceDepth\",\"TraceDialog\",\"TraceForward\",\"TraceOff\",\"TraceOn\",\"TraceOriginal\",\"TracePrint\",\"TraceScan\",\"TrackedSymbols\",\"TradingChart\",\"TraditionalForm\",\"TransferFunctionCancel\",\"TransferFunctionExpand\",\"TransferFunctionFactor\",\"TransferFunctionModel\",\"TransferFunctionPoles\",\"TransferFunctionZeros\",\"TransformationFunction\",\"TransformationFunctions\",\"TransformationMatrix\",\"TransformedDistribution\",\"Translate\",\"TranslationTransform\",\"Transparent\",\"Transpose\",\"TreeForm\",\"TreeGraph\",\"TreeGraphQ\",\"TreePlot\",\"TrendStyle\",\"TriangleWave\",\"TriangularDistribution\",\"Trig\",\"TrigExpand\",\"TrigFactor\",\"TrigFactorList\",\"Trigger\",\"TrigReduce\",\"TrigToExp\",\"TrimmedMean\",\"True\",\"TrueQ\",\"TruncatedDistribution\",\"TTest\",\"Tube\",\"TukeyLambdaDistribution\",\"Tuples\",\"TuranGraph\",\"TuringMachine\",\"U\",\"Uncompress\",\"Undefined\",\"UnderBar\",\"Underflow\",\"Underlined\",\"Underoverscript\",\"UnderoverscriptBox\",\"Underscript\",\"UnderscriptBox\",\"UndirectedEdge\",\"UndirectedGraph\",\"UndirectedGraphQ\",\"Unequal\",\"Unevaluated\",\"UniformDistribution\",\"UniformGraphDistribution\",\"UniformSumDistribution\",\"Uninstall\",\"Union\",\"UnionPlus\",\"Unique\",\"UnitBox\",\"Unitize\",\"UnitStep\",\"UnitTriangle\",\"UnitVector\",\"Unprotect\",\"UnsameQ\",\"UnsavedVariables\",\"Unset\",\"UnsetShared\",\"UpArrow\",\"UpArrowBar\",\"UpArrowDownArrow\",\"Update\",\"UpdateInterval\",\"UpDownArrow\",\"UpEquilibrium\",\"UpperCaseQ\",\"UpperLeftArrow\",\"UpperRightArrow\",\"UpperTriangularize\",\"UpSet\",\"UpSetDelayed\",\"UpTeeArrow\",\"UpValues\",\"UsingFrontEnd\",\"V\",\"ValidationLength\",\"ValueQ\",\"Variables\",\"Variance\",\"VarianceEquivalenceTest\",\"VarianceEstimatorFunction\",\"VarianceTest\",\"VectorAngle\",\"VectorColorFunction\",\"VectorColorFunctionScaling\",\"VectorDensityPlot\",\"VectorPlot\",\"VectorPlot3D\",\"VectorPoints\",\"VectorQ\",\"VectorScale\",\"VectorStyle\",\"Vee\",\"Verbatim\",\"VerifyConvergence\",\"VerifyTestAssumptions\",\"VertexAdd\",\"VertexColors\",\"VertexComponent\",\"VertexCoordinateRules\",\"VertexCoordinates\",\"VertexCount\",\"VertexCoverQ\",\"VertexDegree\",\"VertexDelete\",\"VertexEccentricity\",\"VertexInComponent\",\"VertexInDegree\",\"VertexIndex\",\"VertexLabeling\",\"VertexLabels\",\"VertexList\",\"VertexNormals\",\"VertexOutComponent\",\"VertexOutDegree\",\"VertexQ\",\"VertexRenderingFunction\",\"VertexReplace\",\"VertexShape\",\"VertexShapeFunction\",\"VertexSize\",\"VertexStyle\",\"VertexTextureCoordinates\",\"VertexWeight\",\"VerticalBar\",\"VerticalSeparator\",\"VerticalSlider\",\"VerticalTilde\",\"ViewAngle\",\"ViewCenter\",\"ViewMatrix\",\"ViewPoint\",\"ViewRange\",\"ViewVector\",\"ViewVertical\",\"Visible\",\"VonMisesDistribution\",\"W\",\"WaitAll\",\"WaitNext\",\"WakebyDistribution\",\"WalleniusHypergeometricDistribution\",\"WaringYuleDistribution\",\"WatershedComponents\",\"WatsonUSquareTest\",\"WattsStrogatzGraphDistribution\",\"WaveletBestBasis\",\"WaveletFilterCoefficients\",\"WaveletImagePlot\",\"WaveletListPlot\",\"WaveletMapIndexed\",\"WaveletMatrixPlot\",\"WaveletPhi\",\"WaveletPsi\",\"WaveletScale\",\"WaveletScalogram\",\"WaveletThreshold\",\"WeatherData\",\"WeberE\",\"Wedge\",\"WeibullDistribution\",\"WeierstrassHalfPeriods\",\"WeierstrassInvariants\",\"WeierstrassP\",\"WeierstrassPPrime\",\"WeierstrassSigma\",\"WeierstrassZeta\",\"WeightedAdjacencyGraph\",\"WeightedAdjacencyMatrix\",\"WeightedGraphQ\",\"Weights\",\"WheelGraph\",\"Which\",\"While\",\"White\",\"Whitespace\",\"WhitespaceCharacter\",\"WhittakerM\",\"WhittakerW\",\"WienerFilter\",\"WignerD\",\"WignerSemicircleDistribution\",\"WindowClickSelect\",\"WindowElements\",\"WindowFloating\",\"WindowFrame\",\"WindowMargins\",\"WindowMovable\",\"WindowOpacity\",\"WindowSize\",\"WindowStatusArea\",\"WindowTitle\",\"WindowToolbars\",\"With\",\"WolframAlpha\",\"Word\",\"WordBoundary\",\"WordCharacter\",\"WordData\",\"WordSearch\",\"WordSeparators\",\"WorkingPrecision\",\"Write\",\"WriteString\",\"Wronskian\",\"X\",\"XMLElement\",\"XMLObject\",\"Xnor\",\"Xor\",\"Y\",\"Yellow\",\"YuleDissimilarity\",\"Z\",\"ZernikeR\",\"ZeroTest\",\"Zeta\",\"ZetaZero\",\"ZipfDistribution\",\"ZTest\",\"ZTransform\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z_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 = \"(\\\\-\\\\>|\\\\/\\\\.)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"+*/%\\\\|-^\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(:=|=)\", 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})], sAuthor = \"Sven Brauch (svenbrauch@gmail.com)\", sVersion = \"9\", sLicense = \"LGPL\", sExtensions = [\"*.nb\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Matlab.hs b/src/Skylighting/Syntax/Matlab.hs
--- a/src/Skylighting/Syntax/Matlab.hs
+++ b/src/Skylighting/Syntax/Matlab.hs
@@ -2,456 +2,6 @@
 module Skylighting.Syntax.Matlab (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Matlab"
-  , sFilename = "matlab.xml"
-  , sShortname = "Matlab"
-  , sContexts =
-      fromList
-        [ ( "_adjoint"
-          , Context
-              { cName = "_adjoint"
-              , cSyntax = "Matlab"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'+"
-                              , reCompiled = Just (compileRegex True "'+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "_normal"
-          , Context
-              { cName = "_normal"
-              , cSyntax = "Matlab"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z]\\w*(?=')"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z]\\w*(?=')")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Matlab" , "_adjoint" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\d+(\\.\\d+)?|\\.\\d+)([eE][+-]?\\d+)?[ij]?(?=')"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(\\d+(\\.\\d+)?|\\.\\d+)([eE][+-]?\\d+)?[ij]?(?=')")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Matlab" , "_adjoint" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\)\\]}](?=')"
-                              , reCompiled = Just (compileRegex True "[\\)\\]}](?=')")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Matlab" , "_adjoint" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.'(?=')"
-                              , reCompiled = Just (compileRegex True "\\.'(?=')")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Matlab" , "_adjoint" ) ]
-                      }
-                  , 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 =
-                          RegExpr
-                            RE
-                              { reString = "'[^']*(''[^']*)*"
-                              , reCompiled = Just (compileRegex True "'[^']*(''[^']*)*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "break"
-                               , "case"
-                               , "catch"
-                               , "classdef"
-                               , "continue"
-                               , "else"
-                               , "elseif"
-                               , "end"
-                               , "events"
-                               , "for"
-                               , "function"
-                               , "global"
-                               , "if"
-                               , "methods"
-                               , "otherwise"
-                               , "parfor"
-                               , "persistent"
-                               , "properties"
-                               , "return"
-                               , "spmd"
-                               , "switch"
-                               , "try"
-                               , "while"
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%.*$"
-                              , reCompiled = Just (compileRegex True "%.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "!.*$"
-                              , reCompiled = Just (compileRegex True "!.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z]\\w*"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z]\\w*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\d+(\\.\\d+)?|\\.\\d+)([eE][+-]?\\d+)?[ij]?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(\\d+(\\.\\d+)?|\\.\\d+)([eE][+-]?\\d+)?[ij]?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "()[]{}"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "..."
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "=="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "~="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ">="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "&&"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "||"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ".*"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ".^"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "./"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ".'"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "*+-/\\&|<>~^=,;:@"
-                      , 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
-              }
-          )
-        ]
-  , sAuthor = ""
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.m" , "*.M" ]
-  , sStartingContext = "_normal"
-  }
+syntax = read $! "Syntax {sName = \"Matlab\", sFilename = \"matlab.xml\", sShortname = \"Matlab\", sContexts = fromList [(\"_adjoint\",Context {cName = \"_adjoint\", cSyntax = \"Matlab\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"'+\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"_normal\",Context {cName = \"_normal\", cSyntax = \"Matlab\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z]\\\\w*(?=')\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Matlab\",\"_adjoint\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\d+(\\\\.\\\\d+)?|\\\\.\\\\d+)([eE][+-]?\\\\d+)?[ij]?(?=')\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Matlab\",\"_adjoint\")]},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\)\\\\]}](?=')\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Matlab\",\"_adjoint\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.'(?=')\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Matlab\",\"_adjoint\")]},Rule {rMatcher = RegExpr (RE {reString = \"'[^']*(''[^']*)*'(?=[^']|$)\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"'[^']*(''[^']*)*\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"break\",\"case\",\"catch\",\"classdef\",\"continue\",\"else\",\"elseif\",\"end\",\"events\",\"for\",\"function\",\"global\",\"if\",\"methods\",\"otherwise\",\"parfor\",\"persistent\",\"properties\",\"return\",\"spmd\",\"switch\",\"try\",\"while\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%.*$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"!.*$\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z]\\\\w*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\d+(\\\\.\\\\d+)?|\\\\.\\\\d+)([eE][+-]?\\\\d+)?[ij]?\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"()[]{}\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"...\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"==\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"~=\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<=\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \">=\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"&&\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"||\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \".*\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \".^\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"./\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \".'\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"*+-/\\\\&|<>~^=,;:@\", 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})], sAuthor = \"\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.m\",\"*.M\"], sStartingContext = \"_normal\"}"
diff --git a/src/Skylighting/Syntax/Maxima.hs b/src/Skylighting/Syntax/Maxima.hs
--- a/src/Skylighting/Syntax/Maxima.hs
+++ b/src/Skylighting/Syntax/Maxima.hs
@@ -2,2112 +2,6 @@
 module Skylighting.Syntax.Maxima (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Maxima"
-  , sFilename = "maxima.xml"
-  , sShortname = "Maxima"
-  , sContexts =
-      fromList
-        [ ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "Maxima"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !#&()*+,-./:;<=>?@[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "FIXME" , "TODO" ])
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal Text"
-          , Context
-              { cName = "Normal Text"
-              , cSyntax = "Maxima"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !#&()*+,-./:;<=>?@[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "%th"
-                               , "AntiDifference"
-                               , "Gosper"
-                               , "GosperSum"
-                               , "JF"
-                               , "Lindstedt"
-                               , "ModeMatrix"
-                               , "Zeilberger"
-                               , "abasep"
-                               , "abs"
-                               , "absint"
-                               , "absolute_real_time"
-                               , "acos"
-                               , "acosh"
-                               , "acot"
-                               , "acoth"
-                               , "acsc"
-                               , "acsch"
-                               , "activate"
-                               , "add_edge"
-                               , "add_edges"
-                               , "add_vertex"
-                               , "add_vertices"
-                               , "addcol"
-                               , "addmatrices"
-                               , "addrow"
-                               , "adjacency_matrix"
-                               , "adjoin"
-                               , "adjoint"
-                               , "af"
-                               , "agd"
-                               , "airy_ai"
-                               , "airy_bi"
-                               , "airy_dai"
-                               , "airy_dbi"
-                               , "alg_type"
-                               , "algsys"
-                               , "alias"
-                               , "allroots"
-                               , "alphacharp"
-                               , "alphanumericp"
-                               , "antid"
-                               , "antidiff"
-                               , "append"
-                               , "appendfile"
-                               , "apply"
-                               , "apply1"
-                               , "apply2"
-                               , "applyb1"
-                               , "apropos"
-                               , "args"
-                               , "arithmetic"
-                               , "arithsum"
-                               , "array"
-                               , "arrayapply"
-                               , "arrayinfo"
-                               , "arraymake"
-                               , "ascii"
-                               , "asec"
-                               , "asech"
-                               , "asin"
-                               , "asinh"
-                               , "askinteger"
-                               , "asksign"
-                               , "assoc"
-                               , "assoc_legendre_p"
-                               , "assoc_legendre_q"
-                               , "assume"
-                               , "asympa"
-                               , "at"
-                               , "atan"
-                               , "atan2"
-                               , "atanh"
-                               , "atensimp"
-                               , "atom"
-                               , "atvalue"
-                               , "augcoefmatrix"
-                               , "augmented_lagrangian_method"
-                               , "av"
-                               , "average_degree"
-                               , "backtrace"
-                               , "barsplot"
-                               , "bashindices"
-                               , "batch"
-                               , "batchload"
-                               , "bc2"
-                               , "bdvac"
-                               , "belln"
-                               , "bern"
-                               , "bernpoly"
-                               , "bessel"
-                               , "bessel_i"
-                               , "bessel_j"
-                               , "bessel_k"
-                               , "bessel_y"
-                               , "beta"
-                               , "bezout"
-                               , "bffac"
-                               , "bfhzeta"
-                               , "bfloat"
-                               , "bfloatp"
-                               , "bfpsi"
-                               , "bfpsi0"
-                               , "bfzeta"
-                               , "biconected_components"
-                               , "bimetric"
-                               , "binomial"
-                               , "bipartition"
-                               , "block"
-                               , "blockmatrixp"
-                               , "bode_gain"
-                               , "bode_phase"
-                               , "bothcoef"
-                               , "box"
-                               , "boxplot"
-                               , "break"
-                               , "bug_report"
-                               , "build_info"
-                               , "buildq"
-                               , "burn"
-                               , "cabs"
-                               , "canform"
-                               , "canten"
-                               , "cardinality"
-                               , "carg"
-                               , "cartan"
-                               , "cartesian_product"
-                               , "catch"
-                               , "cbffac"
-                               , "cdf_bernoulli"
-                               , "cdf_beta"
-                               , "cdf_binomial"
-                               , "cdf_cauchy"
-                               , "cdf_chi2"
-                               , "cdf_continuous_uniform"
-                               , "cdf_discrete_uniform"
-                               , "cdf_exp"
-                               , "cdf_f"
-                               , "cdf_gamma"
-                               , "cdf_geometric"
-                               , "cdf_gumbel"
-                               , "cdf_hypergeometric"
-                               , "cdf_laplace"
-                               , "cdf_logistic"
-                               , "cdf_lognormal"
-                               , "cdf_negative_binomial"
-                               , "cdf_normal"
-                               , "cdf_pareto"
-                               , "cdf_poisson"
-                               , "cdf_rank_sum"
-                               , "cdf_rayleigh"
-                               , "cdf_signed_rank"
-                               , "cdf_student_t"
-                               , "cdf_weibull"
-                               , "cdisplay"
-                               , "ceiling"
-                               , "central_moment"
-                               , "cequal"
-                               , "cequalignore"
-                               , "cf"
-                               , "cfdisrep"
-                               , "cfexpand"
-                               , "cgeodesic"
-                               , "cgreaterp"
-                               , "cgreaterpignore"
-                               , "changename"
-                               , "changevar"
-                               , "chaosgame"
-                               , "charat"
-                               , "charfun"
-                               , "charfun2"
-                               , "charlist"
-                               , "charp"
-                               , "charpoly"
-                               , "chebyshev_t"
-                               , "chebyshev_u"
-                               , "check_overlaps"
-                               , "checkdiv"
-                               , "cholesky"
-                               , "christof"
-                               , "chromatic_index"
-                               , "chromatic_number"
-                               , "cint"
-                               , "circulant_graph"
-                               , "clear_edge_weight"
-                               , "clear_rules"
-                               , "clear_vertex_label"
-                               , "clebsch_graph"
-                               , "clessp"
-                               , "clesspignore"
-                               , "close"
-                               , "closefile"
-                               , "cmetric"
-                               , "coeff"
-                               , "coefmatrix"
-                               , "cograd"
-                               , "col"
-                               , "collapse"
-                               , "collectterms"
-                               , "columnop"
-                               , "columnspace"
-                               , "columnswap"
-                               , "columnvector"
-                               , "combination"
-                               , "combine"
-                               , "comp2pui"
-                               , "compare"
-                               , "compfile"
-                               , "compile"
-                               , "compile_file"
-                               , "complement_graph"
-                               , "complete_bipartite_graph"
-                               , "complete_graph"
-                               , "components"
-                               , "concan"
-                               , "concat"
-                               , "conjugate"
-                               , "conmetderiv"
-                               , "connect_vertices"
-                               , "connected_components"
-                               , "cons"
-                               , "constantp"
-                               , "constituent"
-                               , "cont2part"
-                               , "content"
-                               , "continuous_freq"
-                               , "contortion"
-                               , "contour_plot"
-                               , "contract"
-                               , "contract_edge"
-                               , "contragrad"
-                               , "contrib_ode"
-                               , "convert"
-                               , "coord"
-                               , "copy"
-                               , "copy_graph"
-                               , "copylist"
-                               , "copymatrix"
-                               , "cor"
-                               , "cos"
-                               , "cosh"
-                               , "cot"
-                               , "coth"
-                               , "cov"
-                               , "cov1"
-                               , "covdiff"
-                               , "covect"
-                               , "covers"
-                               , "create_graph"
-                               , "create_list"
-                               , "csc"
-                               , "csch"
-                               , "csetup"
-                               , "cspline"
-                               , "ct_coordsys"
-                               , "ctaylor"
-                               , "ctransform"
-                               , "ctranspose"
-                               , "cube_graph"
-                               , "cunlisp"
-                               , "cv"
-                               , "cycle_digraph"
-                               , "cycle_graph"
-                               , "dblint"
-                               , "deactivate"
-                               , "declare"
-                               , "declare_translated"
-                               , "declare_weight"
-                               , "decsym"
-                               , "defcon"
-                               , "define"
-                               , "define_variable"
-                               , "defint"
-                               , "defmatch"
-                               , "defrule"
-                               , "deftaylor"
-                               , "degree_sequence"
-                               , "del"
-                               , "delete"
-                               , "deleten"
-                               , "delta"
-                               , "demo"
-                               , "demoivre"
-                               , "denom"
-                               , "depends"
-                               , "derivdegree"
-                               , "derivlist"
-                               , "describe"
-                               , "desolve"
-                               , "determinant"
-                               , "dgauss_a"
-                               , "dgauss_b"
-                               , "dgeev"
-                               , "dgesvd"
-                               , "diag"
-                               , "diag_matrix"
-                               , "diagmatrix"
-                               , "diagmatrixp"
-                               , "diameter"
-                               , "diff"
-                               , "digitcharp"
-                               , "dimacs_export"
-                               , "dimacs_import"
-                               , "dimension"
-                               , "direct"
-                               , "discrete_freq"
-                               , "disjoin"
-                               , "disjointp"
-                               , "disolate"
-                               , "disp"
-                               , "dispJordan"
-                               , "dispcon"
-                               , "dispform"
-                               , "dispfun"
-                               , "display"
-                               , "disprule"
-                               , "dispterms"
-                               , "distrib"
-                               , "divide"
-                               , "divisors"
-                               , "divsum"
-                               , "dkummer_m"
-                               , "dkummer_u"
-                               , "dlange"
-                               , "dodecahedron_graph"
-                               , "dotproduct"
-                               , "dotsimp"
-                               , "dpart"
-                               , "draw"
-                               , "draw2d"
-                               , "draw3d"
-                               , "draw_graph"
-                               , "dscalar"
-                               , "echelon"
-                               , "edge_coloring"
-                               , "edges"
-                               , "eigens_by_jacobi"
-                               , "eigenvalues"
-                               , "eigenvectors"
-                               , "eighth"
-                               , "einstein"
-                               , "eivals"
-                               , "eivects"
-                               , "elapsed_real_time"
-                               , "elapsed_run_time"
-                               , "ele2comp"
-                               , "ele2polynome"
-                               , "ele2pui"
-                               , "elem"
-                               , "elementp"
-                               , "eliminate"
-                               , "elliptic_e"
-                               , "elliptic_ec"
-                               , "elliptic_eu"
-                               , "elliptic_f"
-                               , "elliptic_kc"
-                               , "elliptic_pi"
-                               , "ematrix"
-                               , "empty_graph"
-                               , "emptyp"
-                               , "endcons"
-                               , "entermatrix"
-                               , "entertensor"
-                               , "entier"
-                               , "equal"
-                               , "equalp"
-                               , "equiv_classes"
-                               , "erf"
-                               , "errcatch"
-                               , "error"
-                               , "errormsg"
-                               , "euler"
-                               , "ev"
-                               , "eval_string"
-                               , "evenp"
-                               , "every"
-                               , "evolution"
-                               , "evolution2d"
-                               , "evundiff"
-                               , "example"
-                               , "exp"
-                               , "expand"
-                               , "expandwrt"
-                               , "expandwrt_factored"
-                               , "explose"
-                               , "exponentialize"
-                               , "express"
-                               , "expt"
-                               , "exsec"
-                               , "extdiff"
-                               , "extract_linear_equations"
-                               , "extremal_subset"
-                               , "ezgcd"
-                               , "f90"
-                               , "facsum"
-                               , "factcomb"
-                               , "factor"
-                               , "factorfacsum"
-                               , "factorial"
-                               , "factorout"
-                               , "factorsum"
-                               , "facts"
-                               , "fast_central_elements"
-                               , "fast_linsolve"
-                               , "fasttimes"
-                               , "featurep"
-                               , "fft"
-                               , "fib"
-                               , "fibtophi"
-                               , "fifth"
-                               , "file_search"
-                               , "file_type"
-                               , "filename_merge"
-                               , "fillarray"
-                               , "find_root"
-                               , "findde"
-                               , "first"
-                               , "fix"
-                               , "flatten"
-                               , "flength"
-                               , "float"
-                               , "floatnump"
-                               , "floor"
-                               , "flower_snark"
-                               , "flush"
-                               , "flush1deriv"
-                               , "flushd"
-                               , "flushnd"
-                               , "forget"
-                               , "fortran"
-                               , "fourcos"
-                               , "fourexpand"
-                               , "fourier"
-                               , "fourint"
-                               , "fourintcos"
-                               , "fourintsin"
-                               , "foursimp"
-                               , "foursin"
-                               , "fourth"
-                               , "fposition"
-                               , "frame_bracket"
-                               , "freeof"
-                               , "freshline"
-                               , "from_adjacency_matrix"
-                               , "frucht_graph"
-                               , "full_listify"
-                               , "fullmap"
-                               , "fullmapl"
-                               , "fullratsimp"
-                               , "fullratsubst"
-                               , "fullsetify"
-                               , "funcsolve"
-                               , "fundef"
-                               , "funmake"
-                               , "funp"
-                               , "gamma"
-                               , "gauss_a"
-                               , "gauss_b"
-                               , "gaussprob"
-                               , "gcd"
-                               , "gcdex"
-                               , "gcdivide"
-                               , "gcfac"
-                               , "gcfactor"
-                               , "gd"
-                               , "gen_laguerre"
-                               , "genfact"
-                               , "genmatrix"
-                               , "geometric"
-                               , "geometric_mean"
-                               , "geosum"
-                               , "get"
-                               , "get_edge_weight"
-                               , "get_lu_factors"
-                               , "get_pixel"
-                               , "get_vertex_label"
-                               , "gfactor"
-                               , "gfactorsum"
-                               , "ggf"
-                               , "girth"
-                               , "global_variances"
-                               , "gnuplot_close"
-                               , "gnuplot_replot"
-                               , "gnuplot_reset"
-                               , "gnuplot_restart"
-                               , "gnuplot_start"
-                               , "go"
-                               , "gradef"
-                               , "gramschmidt"
-                               , "graph6_decode"
-                               , "graph6_encode"
-                               , "graph6_export"
-                               , "graph6_import"
-                               , "graph_center"
-                               , "graph_charpoly"
-                               , "graph_eigenvalues"
-                               , "graph_order"
-                               , "graph_periphery"
-                               , "graph_product"
-                               , "graph_size"
-                               , "graph_union"
-                               , "grid_graph"
-                               , "grind"
-                               , "grobner_basis"
-                               , "grotzch_graph"
-                               , "hamilton_cycle"
-                               , "hamilton_path"
-                               , "hankel"
-                               , "harmonic"
-                               , "harmonic_mean"
-                               , "hav"
-                               , "heawood_graph"
-                               , "hermite"
-                               , "hessian"
-                               , "hilbert_matrix"
-                               , "hipow"
-                               , "histogram"
-                               , "hodge"
-                               , "horner"
-                               , "ic1"
-                               , "ic2"
-                               , "ic_convert"
-                               , "ichr1"
-                               , "ichr2"
-                               , "icosahedron_graph"
-                               , "icurvature"
-                               , "ident"
-                               , "identfor"
-                               , "identity"
-                               , "idiff"
-                               , "idim"
-                               , "idummy"
-                               , "ieqn"
-                               , "ifactors"
-                               , "iframes"
-                               , "ifs"
-                               , "ift"
-                               , "igeodesic_coords"
-                               , "ilt"
-                               , "imagpart"
-                               , "imetric"
-                               , "implicit_derivative"
-                               , "implicit_plot"
-                               , "in_neighbors"
-                               , "indexed_tensor"
-                               , "indices"
-                               , "induced_subgraph"
-                               , "inference_result"
-                               , "inferencep"
-                               , "infix"
-                               , "init_atensor"
-                               , "init_ctensor"
-                               , "innerproduct"
-                               , "inpart"
-                               , "inprod"
-                               , "inrt"
-                               , "integer_partitions"
-                               , "integerp"
-                               , "integrate"
-                               , "intersect"
-                               , "intersection"
-                               , "intervalp"
-                               , "intopois"
-                               , "intosum"
-                               , "inv_mod"
-                               , "invariant1"
-                               , "invariant2"
-                               , "inverse_jacobi_cd"
-                               , "inverse_jacobi_cn"
-                               , "inverse_jacobi_cs"
-                               , "inverse_jacobi_dc"
-                               , "inverse_jacobi_dn"
-                               , "inverse_jacobi_ds"
-                               , "inverse_jacobi_nc"
-                               , "inverse_jacobi_nd"
-                               , "inverse_jacobi_ns"
-                               , "inverse_jacobi_sc"
-                               , "inverse_jacobi_sd"
-                               , "inverse_jacobi_sn"
-                               , "invert"
-                               , "invert_by_lu"
-                               , "is"
-                               , "is_biconnected"
-                               , "is_bipartite"
-                               , "is_connected"
-                               , "is_digraph"
-                               , "is_edge_in_graph"
-                               , "is_graph"
-                               , "is_graph_or_digraph"
-                               , "is_isomorphic"
-                               , "is_planar"
-                               , "is_sconnected"
-                               , "is_tree"
-                               , "is_vertex_in_graph"
-                               , "ishow"
-                               , "isolate"
-                               , "isomorphism"
-                               , "isqrt"
-                               , "items_inference"
-                               , "jacobi"
-                               , "jacobi_cd"
-                               , "jacobi_cn"
-                               , "jacobi_cs"
-                               , "jacobi_dc"
-                               , "jacobi_dn"
-                               , "jacobi_ds"
-                               , "jacobi_nc"
-                               , "jacobi_nd"
-                               , "jacobi_ns"
-                               , "jacobi_p"
-                               , "jacobi_sc"
-                               , "jacobi_sd"
-                               , "jacobi_sn"
-                               , "jacobian"
-                               , "join"
-                               , "jordan"
-                               , "julia"
-                               , "kdels"
-                               , "kdelta"
-                               , "kill"
-                               , "killcontext"
-                               , "kostka"
-                               , "kron_delta"
-                               , "kronecker_product"
-                               , "kummer_m"
-                               , "kummer_u"
-                               , "kurtosis"
-                               , "kurtosis_bernoulli"
-                               , "kurtosis_beta"
-                               , "kurtosis_binomial"
-                               , "kurtosis_chi2"
-                               , "kurtosis_continuous_uniform"
-                               , "kurtosis_discrete_uniform"
-                               , "kurtosis_exp"
-                               , "kurtosis_f"
-                               , "kurtosis_gamma"
-                               , "kurtosis_geometric"
-                               , "kurtosis_gumbel"
-                               , "kurtosis_hypergeometric"
-                               , "kurtosis_laplace"
-                               , "kurtosis_logistic"
-                               , "kurtosis_lognormal"
-                               , "kurtosis_negative_binomial"
-                               , "kurtosis_normal"
-                               , "kurtosis_pareto"
-                               , "kurtosis_poisson"
-                               , "kurtosis_rayleigh"
-                               , "kurtosis_student_t"
-                               , "kurtosis_weibull"
-                               , "labels"
-                               , "lagrange"
-                               , "laguerre"
-                               , "lambda"
-                               , "laplace"
-                               , "laplacian_matrix"
-                               , "last"
-                               , "lbfgs"
-                               , "lc2kdt"
-                               , "lc_l"
-                               , "lc_u"
-                               , "lcharp"
-                               , "lcm"
-                               , "ldefint"
-                               , "ldisp"
-                               , "ldisplay"
-                               , "legendre_p"
-                               , "legendre_q"
-                               , "leinstein"
-                               , "length"
-                               , "let"
-                               , "letrules"
-                               , "letsimp"
-                               , "levi_civita"
-                               , "lfreeof"
-                               , "lgtreillis"
-                               , "lhs"
-                               , "li"
-                               , "liediff"
-                               , "limit"
-                               , "line_graph"
-                               , "linear"
-                               , "linear_program"
-                               , "linearinterpol"
-                               , "linsolve"
-                               , "list_correlations"
-                               , "list_nc_monomials"
-                               , "listarray"
-                               , "listify"
-                               , "listoftens"
-                               , "listofvars"
-                               , "listp"
-                               , "lmax"
-                               , "lmin"
-                               , "load"
-                               , "loadfile"
-                               , "local"
-                               , "locate_matrix_entry"
-                               , "log"
-                               , "logand"
-                               , "logarc"
-                               , "logcontract"
-                               , "logor"
-                               , "logxor"
-                               , "lopow"
-                               , "lorentz_gauge"
-                               , "lowercasep"
-                               , "lpart"
-                               , "lratsubst"
-                               , "lreduce"
-                               , "lriemann"
-                               , "lsquares_estimates"
-                               , "lsquares_estimates_approximate"
-                               , "lsquares_estimates_exact"
-                               , "lsquares_mse"
-                               , "lsquares_residual_mse"
-                               , "lsquares_residuals"
-                               , "lsum"
-                               , "ltreillis"
-                               , "lu_backsub"
-                               , "lu_factor"
-                               , "macroexpand"
-                               , "macroexpand1"
-                               , "makeOrders"
-                               , "make_array"
-                               , "make_level_picture"
-                               , "make_poly_continent"
-                               , "make_poly_country"
-                               , "make_polygon"
-                               , "make_random_state"
-                               , "make_rgb_picture"
-                               , "make_transform"
-                               , "makebox"
-                               , "makefact"
-                               , "makegamma"
-                               , "makelist"
-                               , "makeset"
-                               , "mandelbrot"
-                               , "map"
-                               , "mapatom"
-                               , "maplist"
-                               , "mat_cond"
-                               , "mat_fullunblocker"
-                               , "mat_function"
-                               , "mat_norm"
-                               , "mat_trace"
-                               , "mat_unblocker"
-                               , "matchdeclare"
-                               , "matchfix"
-                               , "matrix"
-                               , "matrix_size"
-                               , "matrixmap"
-                               , "matrixp"
-                               , "mattrace"
-                               , "max"
-                               , "max_clique"
-                               , "max_degree"
-                               , "max_flow"
-                               , "max_independent_set"
-                               , "max_matching"
-                               , "maxi"
-                               , "maximize_lp"
-                               , "maybe"
-                               , "mean"
-                               , "mean_bernoulli"
-                               , "mean_beta"
-                               , "mean_binomial"
-                               , "mean_chi2"
-                               , "mean_continuous_uniform"
-                               , "mean_deviation"
-                               , "mean_discrete_uniform"
-                               , "mean_exp"
-                               , "mean_f"
-                               , "mean_gamma"
-                               , "mean_geometric"
-                               , "mean_gumbel"
-                               , "mean_hypergeometric"
-                               , "mean_laplace"
-                               , "mean_logistic"
-                               , "mean_lognormal"
-                               , "mean_negative_binomial"
-                               , "mean_normal"
-                               , "mean_pareto"
-                               , "mean_poisson"
-                               , "mean_rayleigh"
-                               , "mean_student_t"
-                               , "mean_weibull"
-                               , "median"
-                               , "median_deviation"
-                               , "member"
-                               , "metricexpandall"
-                               , "min"
-                               , "min_degree"
-                               , "minfactorial"
-                               , "mini"
-                               , "minimalPoly"
-                               , "minimize_lp"
-                               , "minimum_spanning_tree"
-                               , "minor"
-                               , "mnewton"
-                               , "mod"
-                               , "mode_declare"
-                               , "mode_identity"
-                               , "moebius"
-                               , "mon2schur"
-                               , "mono"
-                               , "monomial_dimensions"
-                               , "multi_elem"
-                               , "multi_orbit"
-                               , "multi_pui"
-                               , "multinomial"
-                               , "multinomial_coeff"
-                               , "multsym"
-                               , "multthru"
-                               , "mycielski_graph"
-                               , "nary"
-                               , "nc_degree"
-                               , "ncexpt"
-                               , "ncharpoly"
-                               , "negative_picture"
-                               , "neighbors"
-                               , "new_graph"
-                               , "newcontext"
-                               , "newdet"
-                               , "newline"
-                               , "newton"
-                               , "next_prime"
-                               , "niceindices"
-                               , "ninth"
-                               , "noncentral_moment"
-                               , "nonmetricity"
-                               , "nonnegintegerp"
-                               , "nonscalarp"
-                               , "nonzeroandfreeof"
-                               , "notequal"
-                               , "nounify"
-                               , "nptetrad"
-                               , "nroots"
-                               , "nterms"
-                               , "ntermst"
-                               , "nthroot"
-                               , "nullity"
-                               , "nullspace"
-                               , "num"
-                               , "num_distinct_partitions"
-                               , "num_partitions"
-                               , "numbered_boundaries"
-                               , "numberp"
-                               , "numerval"
-                               , "numfactor"
-                               , "nusum"
-                               , "odd_girth"
-                               , "oddp"
-                               , "ode2"
-                               , "ode_check"
-                               , "odelin"
-                               , "op"
-                               , "opena"
-                               , "openr"
-                               , "openw"
-                               , "operatorp"
-                               , "opsubst"
-                               , "optimize"
-                               , "orbit"
-                               , "orbits"
-                               , "ordergreat"
-                               , "ordergreatp"
-                               , "orderless"
-                               , "orderlessp"
-                               , "orthogonal_complement"
-                               , "orthopoly_recur"
-                               , "orthopoly_weight"
-                               , "out_neighbors"
-                               , "outermap"
-                               , "outofpois"
-                               , "pade"
-                               , "parGosper"
-                               , "parse_string"
-                               , "part"
-                               , "part2cont"
-                               , "partfrac"
-                               , "partition"
-                               , "partition_set"
-                               , "partpol"
-                               , "path_digraph"
-                               , "path_graph"
-                               , "pdf_bernoulli"
-                               , "pdf_beta"
-                               , "pdf_binomial"
-                               , "pdf_cauchy"
-                               , "pdf_chi2"
-                               , "pdf_continuous_uniform"
-                               , "pdf_discrete_uniform"
-                               , "pdf_exp"
-                               , "pdf_f"
-                               , "pdf_gamma"
-                               , "pdf_geometric"
-                               , "pdf_gumbel"
-                               , "pdf_hypergeometric"
-                               , "pdf_laplace"
-                               , "pdf_logistic"
-                               , "pdf_lognormal"
-                               , "pdf_negative_binomial"
-                               , "pdf_normal"
-                               , "pdf_pareto"
-                               , "pdf_poisson"
-                               , "pdf_rank_sum"
-                               , "pdf_rayleigh"
-                               , "pdf_signed_rank"
-                               , "pdf_student_t"
-                               , "pdf_weibull"
-                               , "pearson_skewness"
-                               , "permanent"
-                               , "permut"
-                               , "permutation"
-                               , "permutations"
-                               , "petersen_graph"
-                               , "petrov"
-                               , "pickapart"
-                               , "picture_equalp"
-                               , "picturep"
-                               , "piechart"
-                               , "planar_embedding"
-                               , "playback"
-                               , "plog"
-                               , "plot2d"
-                               , "plot3d"
-                               , "plotdf"
-                               , "plsquares"
-                               , "pochhammer"
-                               , "poisdiff"
-                               , "poisexpt"
-                               , "poisint"
-                               , "poismap"
-                               , "poisplus"
-                               , "poissimp"
-                               , "poissubst"
-                               , "poistimes"
-                               , "poistrim"
-                               , "polarform"
-                               , "polartorect"
-                               , "poly_add"
-                               , "poly_buchberger"
-                               , "poly_buchberger_criterion"
-                               , "poly_colon_ideal"
-                               , "poly_content"
-                               , "poly_depends_p"
-                               , "poly_elimination_ideal"
-                               , "poly_exact_divide"
-                               , "poly_expand"
-                               , "poly_expt"
-                               , "poly_gcd"
-                               , "poly_grobner"
-                               , "poly_grobner_equal"
-                               , "poly_grobner_member"
-                               , "poly_grobner_subsetp"
-                               , "poly_ideal_intersection"
-                               , "poly_ideal_polysaturation"
-                               , "poly_ideal_polysaturation1"
-                               , "poly_ideal_saturation"
-                               , "poly_ideal_saturation1"
-                               , "poly_lcm"
-                               , "poly_minimization"
-                               , "poly_multiply"
-                               , "poly_normal_form"
-                               , "poly_normalize"
-                               , "poly_normalize_list"
-                               , "poly_polysaturation_extension"
-                               , "poly_primitive_part"
-                               , "poly_pseudo_divide"
-                               , "poly_reduced_grobner"
-                               , "poly_reduction"
-                               , "poly_s_polynomial"
-                               , "poly_saturation_extension"
-                               , "poly_subtract"
-                               , "polydecomp"
-                               , "polymod"
-                               , "polynome2ele"
-                               , "polynomialp"
-                               , "polytocompanion"
-                               , "potential"
-                               , "power_mod"
-                               , "powers"
-                               , "powerseries"
-                               , "powerset"
-                               , "prev_prime"
-                               , "primep"
-                               , "print"
-                               , "print_graph"
-                               , "printf"
-                               , "printpois"
-                               , "printprops"
-                               , "prodrac"
-                               , "product"
-                               , "properties"
-                               , "propvars"
-                               , "psi"
-                               , "ptriangularize"
-                               , "pui"
-                               , "pui2comp"
-                               , "pui2ele"
-                               , "pui2polynome"
-                               , "pui_direct"
-                               , "puireduc"
-                               , "put"
-                               , "qput"
-                               , "qrange"
-                               , "quad_qag"
-                               , "quad_qagi"
-                               , "quad_qags"
-                               , "quad_qawc"
-                               , "quad_qawf"
-                               , "quad_qawo"
-                               , "quad_qaws"
-                               , "quantile"
-                               , "quantile_bernoulli"
-                               , "quantile_beta"
-                               , "quantile_binomial"
-                               , "quantile_cauchy"
-                               , "quantile_chi2"
-                               , "quantile_continuous_uniform"
-                               , "quantile_discrete_uniform"
-                               , "quantile_exp"
-                               , "quantile_f"
-                               , "quantile_gamma"
-                               , "quantile_geometric"
-                               , "quantile_gumbel"
-                               , "quantile_hypergeometric"
-                               , "quantile_laplace"
-                               , "quantile_logistic"
-                               , "quantile_lognormal"
-                               , "quantile_negative_binomial"
-                               , "quantile_normal"
-                               , "quantile_pareto"
-                               , "quantile_poisson"
-                               , "quantile_rayleigh"
-                               , "quantile_student_t"
-                               , "quantile_weibull"
-                               , "quartile_skewness"
-                               , "quit"
-                               , "qunit"
-                               , "quotient"
-                               , "radcan"
-                               , "radius"
-                               , "random"
-                               , "random_bernoulli"
-                               , "random_beta"
-                               , "random_binomial"
-                               , "random_cauchy"
-                               , "random_chi2"
-                               , "random_continuous_uniform"
-                               , "random_digraph"
-                               , "random_discrete_uniform"
-                               , "random_exp"
-                               , "random_f"
-                               , "random_gamma"
-                               , "random_geometric"
-                               , "random_graph"
-                               , "random_graph1"
-                               , "random_gumbel"
-                               , "random_hypergeometric"
-                               , "random_laplace"
-                               , "random_logistic"
-                               , "random_lognormal"
-                               , "random_negative_binomial"
-                               , "random_network"
-                               , "random_normal"
-                               , "random_pareto"
-                               , "random_permutation"
-                               , "random_poisson"
-                               , "random_rayleigh"
-                               , "random_regular_graph"
-                               , "random_student_t"
-                               , "random_tournament"
-                               , "random_tree"
-                               , "random_weibull"
-                               , "range"
-                               , "rank"
-                               , "rat"
-                               , "ratcoef"
-                               , "ratdenom"
-                               , "ratdiff"
-                               , "ratdisrep"
-                               , "ratexpand"
-                               , "rational"
-                               , "rationalize"
-                               , "ratnumer"
-                               , "ratnump"
-                               , "ratp"
-                               , "ratsimp"
-                               , "ratsubst"
-                               , "ratvars"
-                               , "ratweight"
-                               , "read"
-                               , "read_hashed_array"
-                               , "read_lisp_array"
-                               , "read_list"
-                               , "read_matrix"
-                               , "read_maxima_array"
-                               , "read_nested_list"
-                               , "read_xpm"
-                               , "readline"
-                               , "readonly"
-                               , "realpart"
-                               , "realroots"
-                               , "rearray"
-                               , "rectform"
-                               , "recttopolar"
-                               , "rediff"
-                               , "reduce_consts"
-                               , "reduce_order"
-                               , "region_boundaries"
-                               , "rem"
-                               , "remainder"
-                               , "remarray"
-                               , "rembox"
-                               , "remcomps"
-                               , "remcon"
-                               , "remcoord"
-                               , "remfun"
-                               , "remfunction"
-                               , "remlet"
-                               , "remove"
-                               , "remove_edge"
-                               , "remove_vertex"
-                               , "rempart"
-                               , "remrule"
-                               , "remsym"
-                               , "remvalue"
-                               , "rename"
-                               , "reset"
-                               , "residue"
-                               , "resolvante"
-                               , "resolvante_alternee1"
-                               , "resolvante_bipartite"
-                               , "resolvante_diedrale"
-                               , "resolvante_klein"
-                               , "resolvante_klein3"
-                               , "resolvante_produit_sym"
-                               , "resolvante_unitaire"
-                               , "resolvante_vierer"
-                               , "rest"
-                               , "resultant"
-                               , "return"
-                               , "reveal"
-                               , "reverse"
-                               , "revert"
-                               , "revert2"
-                               , "rgb2level"
-                               , "rhs"
-                               , "ricci"
-                               , "riemann"
-                               , "rinvariant"
-                               , "risch"
-                               , "rk"
-                               , "rncombine"
-                               , "romberg"
-                               , "room"
-                               , "rootscontract"
-                               , "row"
-                               , "rowop"
-                               , "rowswap"
-                               , "rreduce"
-                               , "run_testsuite"
-                               , "save"
-                               , "scalarp"
-                               , "scaled_bessel_i"
-                               , "scaled_bessel_i0"
-                               , "scaled_bessel_i1"
-                               , "scalefactors"
-                               , "scanmap"
-                               , "scatterplot"
-                               , "schur2comp"
-                               , "sconcat"
-                               , "scopy"
-                               , "scsimp"
-                               , "scurvature"
-                               , "sdowncase"
-                               , "sec"
-                               , "sech"
-                               , "second"
-                               , "sequal"
-                               , "sequalignore"
-                               , "set_edge_weight"
-                               , "set_partitions"
-                               , "set_plot_option"
-                               , "set_random_state"
-                               , "set_up_dot_simplifications"
-                               , "set_vertex_label"
-                               , "setdifference"
-                               , "setelmx"
-                               , "setequalp"
-                               , "setify"
-                               , "setp"
-                               , "setunits"
-                               , "setup_autoload"
-                               , "seventh"
-                               , "sexplode"
-                               , "sf"
-                               , "shortest_path"
-                               , "show"
-                               , "showcomps"
-                               , "showratvars"
-                               , "sign"
-                               , "signum"
-                               , "similaritytransform"
-                               , "simple_linear_regression"
-                               , "simplify_sum"
-                               , "simplode"
-                               , "simpmetderiv"
-                               , "simtran"
-                               , "sin"
-                               , "sinh"
-                               , "sinsert"
-                               , "sinvertcase"
-                               , "sixth"
-                               , "skewness"
-                               , "skewness_bernoulli"
-                               , "skewness_beta"
-                               , "skewness_binomial"
-                               , "skewness_chi2"
-                               , "skewness_continuous_uniform"
-                               , "skewness_discrete_uniform"
-                               , "skewness_exp"
-                               , "skewness_f"
-                               , "skewness_gamma"
-                               , "skewness_geometric"
-                               , "skewness_gumbel"
-                               , "skewness_hypergeometric"
-                               , "skewness_laplace"
-                               , "skewness_logistic"
-                               , "skewness_lognormal"
-                               , "skewness_negative_binomial"
-                               , "skewness_normal"
-                               , "skewness_pareto"
-                               , "skewness_poisson"
-                               , "skewness_rayleigh"
-                               , "skewness_student_t"
-                               , "skewness_weibull"
-                               , "slength"
-                               , "smake"
-                               , "smismatch"
-                               , "solve"
-                               , "solve_rec"
-                               , "solve_rec_rat"
-                               , "some"
-                               , "somrac"
-                               , "sort"
-                               , "sparse6_decode"
-                               , "sparse6_encode"
-                               , "sparse6_export"
-                               , "sparse6_import"
-                               , "specint"
-                               , "spherical_bessel_j"
-                               , "spherical_bessel_y"
-                               , "spherical_hankel1"
-                               , "spherical_hankel2"
-                               , "spherical_harmonic"
-                               , "splice"
-                               , "split"
-                               , "sposition"
-                               , "sprint"
-                               , "sqfr"
-                               , "sqrt"
-                               , "sqrtdenest"
-                               , "sremove"
-                               , "sremovefirst"
-                               , "sreverse"
-                               , "ssearch"
-                               , "ssort"
-                               , "sstatus"
-                               , "ssubst"
-                               , "ssubstfirst"
-                               , "staircase"
-                               , "status"
-                               , "std"
-                               , "std1"
-                               , "std_bernoulli"
-                               , "std_beta"
-                               , "std_binomial"
-                               , "std_chi2"
-                               , "std_continuous_uniform"
-                               , "std_discrete_uniform"
-                               , "std_exp"
-                               , "std_f"
-                               , "std_gamma"
-                               , "std_geometric"
-                               , "std_gumbel"
-                               , "std_hypergeometric"
-                               , "std_laplace"
-                               , "std_logistic"
-                               , "std_lognormal"
-                               , "std_negative_binomial"
-                               , "std_normal"
-                               , "std_pareto"
-                               , "std_poisson"
-                               , "std_rayleigh"
-                               , "std_student_t"
-                               , "std_weibull"
-                               , "stirling"
-                               , "stirling1"
-                               , "stirling2"
-                               , "strim"
-                               , "striml"
-                               , "strimr"
-                               , "string"
-                               , "stringout"
-                               , "stringp"
-                               , "strong_components"
-                               , "sublis"
-                               , "sublist"
-                               , "sublist_indices"
-                               , "submatrix"
-                               , "subsample"
-                               , "subset"
-                               , "subsetp"
-                               , "subst"
-                               , "substinpart"
-                               , "substpart"
-                               , "substring"
-                               , "subvar"
-                               , "subvarp"
-                               , "sum"
-                               , "sumcontract"
-                               , "summand_to_rec"
-                               , "supcase"
-                               , "supcontext"
-                               , "symbolp"
-                               , "symmdifference"
-                               , "symmetricp"
-                               , "system"
-                               , "take_channel"
-                               , "take_inference"
-                               , "tan"
-                               , "tanh"
-                               , "taylor"
-                               , "taylor_simplifier"
-                               , "taylorinfo"
-                               , "taylorp"
-                               , "taytorat"
-                               , "tcl_output"
-                               , "tcontract"
-                               , "tellrat"
-                               , "tellsimp"
-                               , "tellsimpafter"
-                               , "tentex"
-                               , "tenth"
-                               , "test_mean"
-                               , "test_means_difference"
-                               , "test_normality"
-                               , "test_rank_sum"
-                               , "test_sign"
-                               , "test_signed_rank"
-                               , "test_variance"
-                               , "test_variance_ratio"
-                               , "tex"
-                               , "texput"
-                               , "third"
-                               , "throw"
-                               , "time"
-                               , "timedate"
-                               , "timer"
-                               , "timer_info"
-                               , "tldefint"
-                               , "tlimit"
-                               , "to_lisp"
-                               , "todd_coxeter"
-                               , "toeplitz"
-                               , "tokens"
-                               , "topological_sort"
-                               , "totaldisrep"
-                               , "totalfourier"
-                               , "totient"
-                               , "tpartpol"
-                               , "tr_warnings_get"
-                               , "trace"
-                               , "trace_options"
-                               , "tracematrix"
-                               , "translate"
-                               , "translate_file"
-                               , "transpose"
-                               , "tree_reduce"
-                               , "treillis"
-                               , "treinat"
-                               , "triangularize"
-                               , "trigexpand"
-                               , "trigrat"
-                               , "trigreduce"
-                               , "trigsimp"
-                               , "trunc"
-                               , "ueivects"
-                               , "uforget"
-                               , "ultraspherical"
-                               , "underlying_graph"
-                               , "undiff"
-                               , "union"
-                               , "unique"
-                               , "unit_step"
-                               , "uniteigenvectors"
-                               , "unitvector"
-                               , "unknown"
-                               , "unorder"
-                               , "unsum"
-                               , "untellrat"
-                               , "untimer"
-                               , "untrace"
-                               , "uppercasep"
-                               , "uricci"
-                               , "uriemann"
-                               , "uvect"
-                               , "vandermonde_matrix"
-                               , "var"
-                               , "var1"
-                               , "var_bernoulli"
-                               , "var_beta"
-                               , "var_binomial"
-                               , "var_chi2"
-                               , "var_continuous_uniform"
-                               , "var_discrete_uniform"
-                               , "var_exp"
-                               , "var_f"
-                               , "var_gamma"
-                               , "var_geometric"
-                               , "var_gumbel"
-                               , "var_hypergeometric"
-                               , "var_laplace"
-                               , "var_logistic"
-                               , "var_lognormal"
-                               , "var_negative_binomial"
-                               , "var_normal"
-                               , "var_pareto"
-                               , "var_poisson"
-                               , "var_rayleigh"
-                               , "var_student_t"
-                               , "var_weibull"
-                               , "vectorpotential"
-                               , "vectorsimp"
-                               , "verbify"
-                               , "vers"
-                               , "vertex_coloring"
-                               , "vertex_degree"
-                               , "vertex_distance"
-                               , "vertex_eccentricity"
-                               , "vertex_in_degree"
-                               , "vertex_out_degree"
-                               , "vertices"
-                               , "vertices_to_cycle"
-                               , "vertices_to_path"
-                               , "weyl"
-                               , "wheel_graph"
-                               , "with_stdout"
-                               , "write_data"
-                               , "writefile"
-                               , "wronskian"
-                               , "xgraph_curves"
-                               , "xreduce"
-                               , "xthru"
-                               , "zeroequiv"
-                               , "zerofor"
-                               , "zeromatrix"
-                               , "zeromatrixp"
-                               , "zeta"
-                               , "zlange"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !#&()*+,-./:;<=>?@[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "%"
-                               , "%%"
-                               , "%e_to_numlog"
-                               , "%edispflag"
-                               , "%emode"
-                               , "%enumer"
-                               , "%iargs"
-                               , "%piargs"
-                               , "%rnum_list"
-                               , "GGFCFMAX"
-                               , "GGFINFINITY"
-                               , "_"
-                               , "__"
-                               , "absboxchar"
-                               , "activecontexts"
-                               , "additive"
-                               , "algebraic"
-                               , "algepsilon"
-                               , "algexact"
-                               , "aliases"
-                               , "all_dotsimp_denoms"
-                               , "allbut"
-                               , "allsym"
-                               , "arrays"
-                               , "askexp"
-                               , "assume_pos"
-                               , "assume_pos_pred"
-                               , "assumescalar"
-                               , "atomgrad"
-                               , "backsubst"
-                               , "berlefact"
-                               , "besselexpand"
-                               , "bftorat"
-                               , "bftrunc"
-                               , "boxchar"
-                               , "breakup"
-                               , "cauchysum"
-                               , "cflength"
-                               , "cframe_flag"
-                               , "cnonmet_flag"
-                               , "context"
-                               , "contexts"
-                               , "cosnpiflag"
-                               , "ct_coords"
-                               , "ctaypov"
-                               , "ctaypt"
-                               , "ctayswitch"
-                               , "ctayvar"
-                               , "ctorsion_flag"
-                               , "ctrgsimp"
-                               , "current_let_rule_package"
-                               , "debugmode"
-                               , "default_let_rule_package"
-                               , "demoivre"
-                               , "dependencies"
-                               , "derivabbrev"
-                               , "derivsubst"
-                               , "detout"
-                               , "diagmetric"
-                               , "dim"
-                               , "dispflag"
-                               , "display2d"
-                               , "display_format_internal"
-                               , "doallmxops"
-                               , "domain"
-                               , "domxexpt"
-                               , "domxmxops"
-                               , "domxnctimes"
-                               , "dontfactor"
-                               , "doscmxops"
-                               , "doscmxplus"
-                               , "dot0nscsimp"
-                               , "dot0simp"
-                               , "dot1simp"
-                               , "dotassoc"
-                               , "dotconstrules"
-                               , "dotdistrib"
-                               , "dotexptsimp"
-                               , "dotident"
-                               , "dotscrules"
-                               , "draw_graph_program"
-                               , "epsilon_lp"
-                               , "erfflag"
-                               , "error"
-                               , "error_size"
-                               , "error_syms"
-                               , "evflag"
-                               , "evfun"
-                               , "expandwrt_denom"
-                               , "expon"
-                               , "exponentialize"
-                               , "expop"
-                               , "exptdispflag"
-                               , "exptisolate"
-                               , "exptsubst"
-                               , "facexpand"
-                               , "factlim"
-                               , "factorflag"
-                               , "file_output_append"
-                               , "file_search_demo"
-                               , "file_search_lisp"
-                               , "file_search_maxima"
-                               , "find_root_abs"
-                               , "find_root_error"
-                               , "find_root_rel"
-                               , "flipflag"
-                               , "float2bf"
-                               , "fortindent"
-                               , "fortspaces"
-                               , "fpprec"
-                               , "fpprintprec"
-                               , "functions"
-                               , "gammalim"
-                               , "gdet"
-                               , "genindex"
-                               , "gensumnum"
-                               , "globalsolve"
-                               , "gradefs"
-                               , "grind"
-                               , "halfangles"
-                               , "ibase"
-                               , "icounter"
-                               , "idummyx"
-                               , "ieqnprint"
-                               , "iframe_bracket_form"
-                               , "igeowedge_flag"
-                               , "imetric"
-                               , "in_netmath"
-                               , "inchar"
-                               , "infeval"
-                               , "inflag"
-                               , "infolists"
-                               , "integrate_use_rootsof"
-                               , "integration_constant"
-                               , "integration_constant_counter"
-                               , "intfaclim"
-                               , "isolate_wrt_times"
-                               , "keepfloat"
-                               , "labels"
-                               , "let_rule_packages"
-                               , "letrat"
-                               , "lhospitallim"
-                               , "limsubst"
-                               , "linechar"
-                               , "linel"
-                               , "linenum"
-                               , "linsolve_params"
-                               , "linsolvewarn"
-                               , "lispdisp"
-                               , "listarith"
-                               , "listconstvars"
-                               , "listdummyvars"
-                               , "lmxchar"
-                               , "loadprint"
-                               , "logabs"
-                               , "logarc"
-                               , "logconcoeffp"
-                               , "logexpand"
-                               , "lognegint"
-                               , "lognumer"
-                               , "logsimp"
-                               , "m1pbranch"
-                               , "macroexpansion"
-                               , "maperror"
-                               , "mapprint"
-                               , "matrix_element_add"
-                               , "matrix_element_mult"
-                               , "matrix_element_transpose"
-                               , "maxapplydepth"
-                               , "maxapplyheight"
-                               , "maxima_tempdir"
-                               , "maxima_userdir"
-                               , "maxnegex"
-                               , "maxposex"
-                               , "maxpsifracdenom"
-                               , "maxpsifracnum"
-                               , "maxpsinegint"
-                               , "maxpsiposint"
-                               , "maxtayorder"
-                               , "method"
-                               , "mode_check_errorp"
-                               , "mode_check_warnp"
-                               , "mode_checkp"
-                               , "modulus"
-                               , "multiplicities"
-                               , "myoptions"
-                               , "negdistrib"
-                               , "negsumdispflag"
-                               , "newtonepsilon"
-                               , "newtonmaxiter"
-                               , "niceindicespref"
-                               , "nolabels"
-                               , "nonegative_lp"
-                               , "noundisp"
-                               , "obase"
-                               , "opproperties"
-                               , "opsubst"
-                               , "optimprefix"
-                               , "optionset"
-                               , "outchar"
-                               , "packagefile"
-                               , "partswitch"
-                               , "pfeformat"
-                               , "piece"
-                               , "plot_options"
-                               , "poislim"
-                               , "poly_coefficient_ring"
-                               , "poly_elimination_order"
-                               , "poly_grobner_algorithm"
-                               , "poly_grobner_debug"
-                               , "poly_monomial_order"
-                               , "poly_primary_elimination_order"
-                               , "poly_return_term_list"
-                               , "poly_secondary_elimination_order"
-                               , "poly_top_reduction_only"
-                               , "powerdisp"
-                               , "prederror"
-                               , "primep_number_of_tests"
-                               , "product_use_gamma"
-                               , "programmode"
-                               , "prompt"
-                               , "psexpand"
-                               , "radexpand"
-                               , "radsubstflag"
-                               , "random_beta_algorithm"
-                               , "random_binomial_algorithm"
-                               , "random_chi2_algorithm"
-                               , "random_exp_algorithm"
-                               , "random_f_algorithm"
-                               , "random_gamma_algorithm"
-                               , "random_geometric_algorithm"
-                               , "random_hypergeometric_algorithm"
-                               , "random_negative_binomial_algorithm"
-                               , "random_normal_algorithm"
-                               , "random_poisson_algorithm"
-                               , "random_student_t_algorithm"
-                               , "ratalgdenom"
-                               , "ratchristof"
-                               , "ratdenomdivide"
-                               , "rateinstein"
-                               , "ratepsilon"
-                               , "ratexpand"
-                               , "ratfac"
-                               , "ratmx"
-                               , "ratprint"
-                               , "ratriemann"
-                               , "ratsimpexpons"
-                               , "ratvars"
-                               , "ratweights"
-                               , "ratweyl"
-                               , "ratwtlvl"
-                               , "realonly"
-                               , "refcheck"
-                               , "rmxchar"
-                               , "rombergabs"
-                               , "rombergit"
-                               , "rombergmin"
-                               , "rombergtol"
-                               , "rootsconmode"
-                               , "rootsepsilon"
-                               , "savedef"
-                               , "savefactors"
-                               , "scalarmatrixp"
-                               , "setcheck"
-                               , "setcheckbreak"
-                               , "setval"
-                               , "showtime"
-                               , "simplify_products"
-                               , "simpsum"
-                               , "sinnpiflag"
-                               , "solve_inconsistent_error"
-                               , "solvedecomposes"
-                               , "solveexplicit"
-                               , "solvefactors"
-                               , "solvenullwarn"
-                               , "solveradcan"
-                               , "solvetrigwarn"
-                               , "sparse"
-                               , "sqrtdispflag"
-                               , "stardisp"
-                               , "stats_numer"
-                               , "stringdisp"
-                               , "sublis_apply_lambda"
-                               , "sumexpand"
-                               , "sumsplitfact"
-                               , "taylor_logexpand"
-                               , "taylor_order_coefficients"
-                               , "taylor_truncate_polynomials"
-                               , "taylordepth"
-                               , "tensorkill"
-                               , "testsuite_files"
-                               , "timer_devalue"
-                               , "tlimswitch"
-                               , "tr_array_as_ref"
-                               , "tr_bound_function_applyp"
-                               , "tr_file_tty_messagesp"
-                               , "tr_float_can_branch_complex"
-                               , "tr_function_call_default"
-                               , "tr_numer"
-                               , "tr_optimize_max_loop"
-                               , "tr_semicompile"
-                               , "tr_state_vars"
-                               , "tr_warn_bad_function_calls"
-                               , "tr_warn_fexpr"
-                               , "tr_warn_meval"
-                               , "tr_warn_mode"
-                               , "tr_warn_undeclared"
-                               , "tr_warn_undefined_variable"
-                               , "tr_windy"
-                               , "transcompile"
-                               , "transrun"
-                               , "trigexpandplus"
-                               , "trigexpandtimes"
-                               , "triginverses"
-                               , "trigsign"
-                               , "ttyoff"
-                               , "use_fast_arrays"
-                               , "values"
-                               , "vect_cross"
-                               , "verbose"
-                               , "zerobern"
-                               , "zeta%pi"
-                               ])
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !#&()*+,-./:;<=>?@[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "and"
-                               , "do"
-                               , "else"
-                               , "elseif"
-                               , "false"
-                               , "for"
-                               , "if"
-                               , "in"
-                               , "not"
-                               , "or"
-                               , "step"
-                               , "then"
-                               , "thru"
-                               , "true"
-                               , "while"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Maxima" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Maxima" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z_][a-zA-Z0-9%_]*"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z_][a-zA-Z0-9%_]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ConstantTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[-+]?\\d+\\.\\d*([BbDdEeSs][-+]?\\d+)?"
-                              , reCompiled =
-                                  Just (compileRegex True "[-+]?\\d+\\.\\d*([BbDdEeSs][-+]?\\d+)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[-+]?\\.\\d+([BbDdEeSs][-+]?\\d+)?"
-                              , reCompiled =
-                                  Just (compileRegex True "[-+]?\\.\\d+([BbDdEeSs][-+]?\\d+)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[-+]?\\d+[BbDdEeSs][-+]?\\d+"
-                              , reCompiled =
-                                  Just (compileRegex True "[-+]?\\d+[BbDdEeSs][-+]?\\d+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[-+]?\\d+"
-                              , reCompiled = Just (compileRegex True "[-+]?\\d+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = DocumentationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Maxima"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Alexey Beshenov <al@beshenov.ru>"
-  , sVersion = "3"
-  , sLicense = "LGPLv2.1+"
-  , sExtensions = [ "*.mac" , "*.MAC" , "*.dem" , "*.DEM" ]
-  , sStartingContext = "Normal Text"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Maxima\", sFilename = \"maxima.xml\", sShortname = \"Maxima\", sContexts = fromList [(\"Comment\",Context {cName = \"Comment\", cSyntax = \"Maxima\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !#&()*+,-./:;<=>?@[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"FIXME\",\"TODO\"])), rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},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]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal Text\",Context {cName = \"Normal Text\", cSyntax = \"Maxima\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !#&()*+,-./:;<=>?@[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"%th\",\"AntiDifference\",\"Gosper\",\"GosperSum\",\"JF\",\"Lindstedt\",\"ModeMatrix\",\"Zeilberger\",\"abasep\",\"abs\",\"absint\",\"absolute_real_time\",\"acos\",\"acosh\",\"acot\",\"acoth\",\"acsc\",\"acsch\",\"activate\",\"add_edge\",\"add_edges\",\"add_vertex\",\"add_vertices\",\"addcol\",\"addmatrices\",\"addrow\",\"adjacency_matrix\",\"adjoin\",\"adjoint\",\"af\",\"agd\",\"airy_ai\",\"airy_bi\",\"airy_dai\",\"airy_dbi\",\"alg_type\",\"algsys\",\"alias\",\"allroots\",\"alphacharp\",\"alphanumericp\",\"antid\",\"antidiff\",\"append\",\"appendfile\",\"apply\",\"apply1\",\"apply2\",\"applyb1\",\"apropos\",\"args\",\"arithmetic\",\"arithsum\",\"array\",\"arrayapply\",\"arrayinfo\",\"arraymake\",\"ascii\",\"asec\",\"asech\",\"asin\",\"asinh\",\"askinteger\",\"asksign\",\"assoc\",\"assoc_legendre_p\",\"assoc_legendre_q\",\"assume\",\"asympa\",\"at\",\"atan\",\"atan2\",\"atanh\",\"atensimp\",\"atom\",\"atvalue\",\"augcoefmatrix\",\"augmented_lagrangian_method\",\"av\",\"average_degree\",\"backtrace\",\"barsplot\",\"bashindices\",\"batch\",\"batchload\",\"bc2\",\"bdvac\",\"belln\",\"bern\",\"bernpoly\",\"bessel\",\"bessel_i\",\"bessel_j\",\"bessel_k\",\"bessel_y\",\"beta\",\"bezout\",\"bffac\",\"bfhzeta\",\"bfloat\",\"bfloatp\",\"bfpsi\",\"bfpsi0\",\"bfzeta\",\"biconected_components\",\"bimetric\",\"binomial\",\"bipartition\",\"block\",\"blockmatrixp\",\"bode_gain\",\"bode_phase\",\"bothcoef\",\"box\",\"boxplot\",\"break\",\"bug_report\",\"build_info\",\"buildq\",\"burn\",\"cabs\",\"canform\",\"canten\",\"cardinality\",\"carg\",\"cartan\",\"cartesian_product\",\"catch\",\"cbffac\",\"cdf_bernoulli\",\"cdf_beta\",\"cdf_binomial\",\"cdf_cauchy\",\"cdf_chi2\",\"cdf_continuous_uniform\",\"cdf_discrete_uniform\",\"cdf_exp\",\"cdf_f\",\"cdf_gamma\",\"cdf_geometric\",\"cdf_gumbel\",\"cdf_hypergeometric\",\"cdf_laplace\",\"cdf_logistic\",\"cdf_lognormal\",\"cdf_negative_binomial\",\"cdf_normal\",\"cdf_pareto\",\"cdf_poisson\",\"cdf_rank_sum\",\"cdf_rayleigh\",\"cdf_signed_rank\",\"cdf_student_t\",\"cdf_weibull\",\"cdisplay\",\"ceiling\",\"central_moment\",\"cequal\",\"cequalignore\",\"cf\",\"cfdisrep\",\"cfexpand\",\"cgeodesic\",\"cgreaterp\",\"cgreaterpignore\",\"changename\",\"changevar\",\"chaosgame\",\"charat\",\"charfun\",\"charfun2\",\"charlist\",\"charp\",\"charpoly\",\"chebyshev_t\",\"chebyshev_u\",\"check_overlaps\",\"checkdiv\",\"cholesky\",\"christof\",\"chromatic_index\",\"chromatic_number\",\"cint\",\"circulant_graph\",\"clear_edge_weight\",\"clear_rules\",\"clear_vertex_label\",\"clebsch_graph\",\"clessp\",\"clesspignore\",\"close\",\"closefile\",\"cmetric\",\"coeff\",\"coefmatrix\",\"cograd\",\"col\",\"collapse\",\"collectterms\",\"columnop\",\"columnspace\",\"columnswap\",\"columnvector\",\"combination\",\"combine\",\"comp2pui\",\"compare\",\"compfile\",\"compile\",\"compile_file\",\"complement_graph\",\"complete_bipartite_graph\",\"complete_graph\",\"components\",\"concan\",\"concat\",\"conjugate\",\"conmetderiv\",\"connect_vertices\",\"connected_components\",\"cons\",\"constantp\",\"constituent\",\"cont2part\",\"content\",\"continuous_freq\",\"contortion\",\"contour_plot\",\"contract\",\"contract_edge\",\"contragrad\",\"contrib_ode\",\"convert\",\"coord\",\"copy\",\"copy_graph\",\"copylist\",\"copymatrix\",\"cor\",\"cos\",\"cosh\",\"cot\",\"coth\",\"cov\",\"cov1\",\"covdiff\",\"covect\",\"covers\",\"create_graph\",\"create_list\",\"csc\",\"csch\",\"csetup\",\"cspline\",\"ct_coordsys\",\"ctaylor\",\"ctransform\",\"ctranspose\",\"cube_graph\",\"cunlisp\",\"cv\",\"cycle_digraph\",\"cycle_graph\",\"dblint\",\"deactivate\",\"declare\",\"declare_translated\",\"declare_weight\",\"decsym\",\"defcon\",\"define\",\"define_variable\",\"defint\",\"defmatch\",\"defrule\",\"deftaylor\",\"degree_sequence\",\"del\",\"delete\",\"deleten\",\"delta\",\"demo\",\"demoivre\",\"denom\",\"depends\",\"derivdegree\",\"derivlist\",\"describe\",\"desolve\",\"determinant\",\"dgauss_a\",\"dgauss_b\",\"dgeev\",\"dgesvd\",\"diag\",\"diag_matrix\",\"diagmatrix\",\"diagmatrixp\",\"diameter\",\"diff\",\"digitcharp\",\"dimacs_export\",\"dimacs_import\",\"dimension\",\"direct\",\"discrete_freq\",\"disjoin\",\"disjointp\",\"disolate\",\"disp\",\"dispJordan\",\"dispcon\",\"dispform\",\"dispfun\",\"display\",\"disprule\",\"dispterms\",\"distrib\",\"divide\",\"divisors\",\"divsum\",\"dkummer_m\",\"dkummer_u\",\"dlange\",\"dodecahedron_graph\",\"dotproduct\",\"dotsimp\",\"dpart\",\"draw\",\"draw2d\",\"draw3d\",\"draw_graph\",\"dscalar\",\"echelon\",\"edge_coloring\",\"edges\",\"eigens_by_jacobi\",\"eigenvalues\",\"eigenvectors\",\"eighth\",\"einstein\",\"eivals\",\"eivects\",\"elapsed_real_time\",\"elapsed_run_time\",\"ele2comp\",\"ele2polynome\",\"ele2pui\",\"elem\",\"elementp\",\"eliminate\",\"elliptic_e\",\"elliptic_ec\",\"elliptic_eu\",\"elliptic_f\",\"elliptic_kc\",\"elliptic_pi\",\"ematrix\",\"empty_graph\",\"emptyp\",\"endcons\",\"entermatrix\",\"entertensor\",\"entier\",\"equal\",\"equalp\",\"equiv_classes\",\"erf\",\"errcatch\",\"error\",\"errormsg\",\"euler\",\"ev\",\"eval_string\",\"evenp\",\"every\",\"evolution\",\"evolution2d\",\"evundiff\",\"example\",\"exp\",\"expand\",\"expandwrt\",\"expandwrt_factored\",\"explose\",\"exponentialize\",\"express\",\"expt\",\"exsec\",\"extdiff\",\"extract_linear_equations\",\"extremal_subset\",\"ezgcd\",\"f90\",\"facsum\",\"factcomb\",\"factor\",\"factorfacsum\",\"factorial\",\"factorout\",\"factorsum\",\"facts\",\"fast_central_elements\",\"fast_linsolve\",\"fasttimes\",\"featurep\",\"fft\",\"fib\",\"fibtophi\",\"fifth\",\"file_search\",\"file_type\",\"filename_merge\",\"fillarray\",\"find_root\",\"findde\",\"first\",\"fix\",\"flatten\",\"flength\",\"float\",\"floatnump\",\"floor\",\"flower_snark\",\"flush\",\"flush1deriv\",\"flushd\",\"flushnd\",\"forget\",\"fortran\",\"fourcos\",\"fourexpand\",\"fourier\",\"fourint\",\"fourintcos\",\"fourintsin\",\"foursimp\",\"foursin\",\"fourth\",\"fposition\",\"frame_bracket\",\"freeof\",\"freshline\",\"from_adjacency_matrix\",\"frucht_graph\",\"full_listify\",\"fullmap\",\"fullmapl\",\"fullratsimp\",\"fullratsubst\",\"fullsetify\",\"funcsolve\",\"fundef\",\"funmake\",\"funp\",\"gamma\",\"gauss_a\",\"gauss_b\",\"gaussprob\",\"gcd\",\"gcdex\",\"gcdivide\",\"gcfac\",\"gcfactor\",\"gd\",\"gen_laguerre\",\"genfact\",\"genmatrix\",\"geometric\",\"geometric_mean\",\"geosum\",\"get\",\"get_edge_weight\",\"get_lu_factors\",\"get_pixel\",\"get_vertex_label\",\"gfactor\",\"gfactorsum\",\"ggf\",\"girth\",\"global_variances\",\"gnuplot_close\",\"gnuplot_replot\",\"gnuplot_reset\",\"gnuplot_restart\",\"gnuplot_start\",\"go\",\"gradef\",\"gramschmidt\",\"graph6_decode\",\"graph6_encode\",\"graph6_export\",\"graph6_import\",\"graph_center\",\"graph_charpoly\",\"graph_eigenvalues\",\"graph_order\",\"graph_periphery\",\"graph_product\",\"graph_size\",\"graph_union\",\"grid_graph\",\"grind\",\"grobner_basis\",\"grotzch_graph\",\"hamilton_cycle\",\"hamilton_path\",\"hankel\",\"harmonic\",\"harmonic_mean\",\"hav\",\"heawood_graph\",\"hermite\",\"hessian\",\"hilbert_matrix\",\"hipow\",\"histogram\",\"hodge\",\"horner\",\"ic1\",\"ic2\",\"ic_convert\",\"ichr1\",\"ichr2\",\"icosahedron_graph\",\"icurvature\",\"ident\",\"identfor\",\"identity\",\"idiff\",\"idim\",\"idummy\",\"ieqn\",\"ifactors\",\"iframes\",\"ifs\",\"ift\",\"igeodesic_coords\",\"ilt\",\"imagpart\",\"imetric\",\"implicit_derivative\",\"implicit_plot\",\"in_neighbors\",\"indexed_tensor\",\"indices\",\"induced_subgraph\",\"inference_result\",\"inferencep\",\"infix\",\"init_atensor\",\"init_ctensor\",\"innerproduct\",\"inpart\",\"inprod\",\"inrt\",\"integer_partitions\",\"integerp\",\"integrate\",\"intersect\",\"intersection\",\"intervalp\",\"intopois\",\"intosum\",\"inv_mod\",\"invariant1\",\"invariant2\",\"inverse_jacobi_cd\",\"inverse_jacobi_cn\",\"inverse_jacobi_cs\",\"inverse_jacobi_dc\",\"inverse_jacobi_dn\",\"inverse_jacobi_ds\",\"inverse_jacobi_nc\",\"inverse_jacobi_nd\",\"inverse_jacobi_ns\",\"inverse_jacobi_sc\",\"inverse_jacobi_sd\",\"inverse_jacobi_sn\",\"invert\",\"invert_by_lu\",\"is\",\"is_biconnected\",\"is_bipartite\",\"is_connected\",\"is_digraph\",\"is_edge_in_graph\",\"is_graph\",\"is_graph_or_digraph\",\"is_isomorphic\",\"is_planar\",\"is_sconnected\",\"is_tree\",\"is_vertex_in_graph\",\"ishow\",\"isolate\",\"isomorphism\",\"isqrt\",\"items_inference\",\"jacobi\",\"jacobi_cd\",\"jacobi_cn\",\"jacobi_cs\",\"jacobi_dc\",\"jacobi_dn\",\"jacobi_ds\",\"jacobi_nc\",\"jacobi_nd\",\"jacobi_ns\",\"jacobi_p\",\"jacobi_sc\",\"jacobi_sd\",\"jacobi_sn\",\"jacobian\",\"join\",\"jordan\",\"julia\",\"kdels\",\"kdelta\",\"kill\",\"killcontext\",\"kostka\",\"kron_delta\",\"kronecker_product\",\"kummer_m\",\"kummer_u\",\"kurtosis\",\"kurtosis_bernoulli\",\"kurtosis_beta\",\"kurtosis_binomial\",\"kurtosis_chi2\",\"kurtosis_continuous_uniform\",\"kurtosis_discrete_uniform\",\"kurtosis_exp\",\"kurtosis_f\",\"kurtosis_gamma\",\"kurtosis_geometric\",\"kurtosis_gumbel\",\"kurtosis_hypergeometric\",\"kurtosis_laplace\",\"kurtosis_logistic\",\"kurtosis_lognormal\",\"kurtosis_negative_binomial\",\"kurtosis_normal\",\"kurtosis_pareto\",\"kurtosis_poisson\",\"kurtosis_rayleigh\",\"kurtosis_student_t\",\"kurtosis_weibull\",\"labels\",\"lagrange\",\"laguerre\",\"lambda\",\"laplace\",\"laplacian_matrix\",\"last\",\"lbfgs\",\"lc2kdt\",\"lc_l\",\"lc_u\",\"lcharp\",\"lcm\",\"ldefint\",\"ldisp\",\"ldisplay\",\"legendre_p\",\"legendre_q\",\"leinstein\",\"length\",\"let\",\"letrules\",\"letsimp\",\"levi_civita\",\"lfreeof\",\"lgtreillis\",\"lhs\",\"li\",\"liediff\",\"limit\",\"line_graph\",\"linear\",\"linear_program\",\"linearinterpol\",\"linsolve\",\"list_correlations\",\"list_nc_monomials\",\"listarray\",\"listify\",\"listoftens\",\"listofvars\",\"listp\",\"lmax\",\"lmin\",\"load\",\"loadfile\",\"local\",\"locate_matrix_entry\",\"log\",\"logand\",\"logarc\",\"logcontract\",\"logor\",\"logxor\",\"lopow\",\"lorentz_gauge\",\"lowercasep\",\"lpart\",\"lratsubst\",\"lreduce\",\"lriemann\",\"lsquares_estimates\",\"lsquares_estimates_approximate\",\"lsquares_estimates_exact\",\"lsquares_mse\",\"lsquares_residual_mse\",\"lsquares_residuals\",\"lsum\",\"ltreillis\",\"lu_backsub\",\"lu_factor\",\"macroexpand\",\"macroexpand1\",\"makeOrders\",\"make_array\",\"make_level_picture\",\"make_poly_continent\",\"make_poly_country\",\"make_polygon\",\"make_random_state\",\"make_rgb_picture\",\"make_transform\",\"makebox\",\"makefact\",\"makegamma\",\"makelist\",\"makeset\",\"mandelbrot\",\"map\",\"mapatom\",\"maplist\",\"mat_cond\",\"mat_fullunblocker\",\"mat_function\",\"mat_norm\",\"mat_trace\",\"mat_unblocker\",\"matchdeclare\",\"matchfix\",\"matrix\",\"matrix_size\",\"matrixmap\",\"matrixp\",\"mattrace\",\"max\",\"max_clique\",\"max_degree\",\"max_flow\",\"max_independent_set\",\"max_matching\",\"maxi\",\"maximize_lp\",\"maybe\",\"mean\",\"mean_bernoulli\",\"mean_beta\",\"mean_binomial\",\"mean_chi2\",\"mean_continuous_uniform\",\"mean_deviation\",\"mean_discrete_uniform\",\"mean_exp\",\"mean_f\",\"mean_gamma\",\"mean_geometric\",\"mean_gumbel\",\"mean_hypergeometric\",\"mean_laplace\",\"mean_logistic\",\"mean_lognormal\",\"mean_negative_binomial\",\"mean_normal\",\"mean_pareto\",\"mean_poisson\",\"mean_rayleigh\",\"mean_student_t\",\"mean_weibull\",\"median\",\"median_deviation\",\"member\",\"metricexpandall\",\"min\",\"min_degree\",\"minfactorial\",\"mini\",\"minimalPoly\",\"minimize_lp\",\"minimum_spanning_tree\",\"minor\",\"mnewton\",\"mod\",\"mode_declare\",\"mode_identity\",\"moebius\",\"mon2schur\",\"mono\",\"monomial_dimensions\",\"multi_elem\",\"multi_orbit\",\"multi_pui\",\"multinomial\",\"multinomial_coeff\",\"multsym\",\"multthru\",\"mycielski_graph\",\"nary\",\"nc_degree\",\"ncexpt\",\"ncharpoly\",\"negative_picture\",\"neighbors\",\"new_graph\",\"newcontext\",\"newdet\",\"newline\",\"newton\",\"next_prime\",\"niceindices\",\"ninth\",\"noncentral_moment\",\"nonmetricity\",\"nonnegintegerp\",\"nonscalarp\",\"nonzeroandfreeof\",\"notequal\",\"nounify\",\"nptetrad\",\"nroots\",\"nterms\",\"ntermst\",\"nthroot\",\"nullity\",\"nullspace\",\"num\",\"num_distinct_partitions\",\"num_partitions\",\"numbered_boundaries\",\"numberp\",\"numerval\",\"numfactor\",\"nusum\",\"odd_girth\",\"oddp\",\"ode2\",\"ode_check\",\"odelin\",\"op\",\"opena\",\"openr\",\"openw\",\"operatorp\",\"opsubst\",\"optimize\",\"orbit\",\"orbits\",\"ordergreat\",\"ordergreatp\",\"orderless\",\"orderlessp\",\"orthogonal_complement\",\"orthopoly_recur\",\"orthopoly_weight\",\"out_neighbors\",\"outermap\",\"outofpois\",\"pade\",\"parGosper\",\"parse_string\",\"part\",\"part2cont\",\"partfrac\",\"partition\",\"partition_set\",\"partpol\",\"path_digraph\",\"path_graph\",\"pdf_bernoulli\",\"pdf_beta\",\"pdf_binomial\",\"pdf_cauchy\",\"pdf_chi2\",\"pdf_continuous_uniform\",\"pdf_discrete_uniform\",\"pdf_exp\",\"pdf_f\",\"pdf_gamma\",\"pdf_geometric\",\"pdf_gumbel\",\"pdf_hypergeometric\",\"pdf_laplace\",\"pdf_logistic\",\"pdf_lognormal\",\"pdf_negative_binomial\",\"pdf_normal\",\"pdf_pareto\",\"pdf_poisson\",\"pdf_rank_sum\",\"pdf_rayleigh\",\"pdf_signed_rank\",\"pdf_student_t\",\"pdf_weibull\",\"pearson_skewness\",\"permanent\",\"permut\",\"permutation\",\"permutations\",\"petersen_graph\",\"petrov\",\"pickapart\",\"picture_equalp\",\"picturep\",\"piechart\",\"planar_embedding\",\"playback\",\"plog\",\"plot2d\",\"plot3d\",\"plotdf\",\"plsquares\",\"pochhammer\",\"poisdiff\",\"poisexpt\",\"poisint\",\"poismap\",\"poisplus\",\"poissimp\",\"poissubst\",\"poistimes\",\"poistrim\",\"polarform\",\"polartorect\",\"poly_add\",\"poly_buchberger\",\"poly_buchberger_criterion\",\"poly_colon_ideal\",\"poly_content\",\"poly_depends_p\",\"poly_elimination_ideal\",\"poly_exact_divide\",\"poly_expand\",\"poly_expt\",\"poly_gcd\",\"poly_grobner\",\"poly_grobner_equal\",\"poly_grobner_member\",\"poly_grobner_subsetp\",\"poly_ideal_intersection\",\"poly_ideal_polysaturation\",\"poly_ideal_polysaturation1\",\"poly_ideal_saturation\",\"poly_ideal_saturation1\",\"poly_lcm\",\"poly_minimization\",\"poly_multiply\",\"poly_normal_form\",\"poly_normalize\",\"poly_normalize_list\",\"poly_polysaturation_extension\",\"poly_primitive_part\",\"poly_pseudo_divide\",\"poly_reduced_grobner\",\"poly_reduction\",\"poly_s_polynomial\",\"poly_saturation_extension\",\"poly_subtract\",\"polydecomp\",\"polymod\",\"polynome2ele\",\"polynomialp\",\"polytocompanion\",\"potential\",\"power_mod\",\"powers\",\"powerseries\",\"powerset\",\"prev_prime\",\"primep\",\"print\",\"print_graph\",\"printf\",\"printpois\",\"printprops\",\"prodrac\",\"product\",\"properties\",\"propvars\",\"psi\",\"ptriangularize\",\"pui\",\"pui2comp\",\"pui2ele\",\"pui2polynome\",\"pui_direct\",\"puireduc\",\"put\",\"qput\",\"qrange\",\"quad_qag\",\"quad_qagi\",\"quad_qags\",\"quad_qawc\",\"quad_qawf\",\"quad_qawo\",\"quad_qaws\",\"quantile\",\"quantile_bernoulli\",\"quantile_beta\",\"quantile_binomial\",\"quantile_cauchy\",\"quantile_chi2\",\"quantile_continuous_uniform\",\"quantile_discrete_uniform\",\"quantile_exp\",\"quantile_f\",\"quantile_gamma\",\"quantile_geometric\",\"quantile_gumbel\",\"quantile_hypergeometric\",\"quantile_laplace\",\"quantile_logistic\",\"quantile_lognormal\",\"quantile_negative_binomial\",\"quantile_normal\",\"quantile_pareto\",\"quantile_poisson\",\"quantile_rayleigh\",\"quantile_student_t\",\"quantile_weibull\",\"quartile_skewness\",\"quit\",\"qunit\",\"quotient\",\"radcan\",\"radius\",\"random\",\"random_bernoulli\",\"random_beta\",\"random_binomial\",\"random_cauchy\",\"random_chi2\",\"random_continuous_uniform\",\"random_digraph\",\"random_discrete_uniform\",\"random_exp\",\"random_f\",\"random_gamma\",\"random_geometric\",\"random_graph\",\"random_graph1\",\"random_gumbel\",\"random_hypergeometric\",\"random_laplace\",\"random_logistic\",\"random_lognormal\",\"random_negative_binomial\",\"random_network\",\"random_normal\",\"random_pareto\",\"random_permutation\",\"random_poisson\",\"random_rayleigh\",\"random_regular_graph\",\"random_student_t\",\"random_tournament\",\"random_tree\",\"random_weibull\",\"range\",\"rank\",\"rat\",\"ratcoef\",\"ratdenom\",\"ratdiff\",\"ratdisrep\",\"ratexpand\",\"rational\",\"rationalize\",\"ratnumer\",\"ratnump\",\"ratp\",\"ratsimp\",\"ratsubst\",\"ratvars\",\"ratweight\",\"read\",\"read_hashed_array\",\"read_lisp_array\",\"read_list\",\"read_matrix\",\"read_maxima_array\",\"read_nested_list\",\"read_xpm\",\"readline\",\"readonly\",\"realpart\",\"realroots\",\"rearray\",\"rectform\",\"recttopolar\",\"rediff\",\"reduce_consts\",\"reduce_order\",\"region_boundaries\",\"rem\",\"remainder\",\"remarray\",\"rembox\",\"remcomps\",\"remcon\",\"remcoord\",\"remfun\",\"remfunction\",\"remlet\",\"remove\",\"remove_edge\",\"remove_vertex\",\"rempart\",\"remrule\",\"remsym\",\"remvalue\",\"rename\",\"reset\",\"residue\",\"resolvante\",\"resolvante_alternee1\",\"resolvante_bipartite\",\"resolvante_diedrale\",\"resolvante_klein\",\"resolvante_klein3\",\"resolvante_produit_sym\",\"resolvante_unitaire\",\"resolvante_vierer\",\"rest\",\"resultant\",\"return\",\"reveal\",\"reverse\",\"revert\",\"revert2\",\"rgb2level\",\"rhs\",\"ricci\",\"riemann\",\"rinvariant\",\"risch\",\"rk\",\"rncombine\",\"romberg\",\"room\",\"rootscontract\",\"row\",\"rowop\",\"rowswap\",\"rreduce\",\"run_testsuite\",\"save\",\"scalarp\",\"scaled_bessel_i\",\"scaled_bessel_i0\",\"scaled_bessel_i1\",\"scalefactors\",\"scanmap\",\"scatterplot\",\"schur2comp\",\"sconcat\",\"scopy\",\"scsimp\",\"scurvature\",\"sdowncase\",\"sec\",\"sech\",\"second\",\"sequal\",\"sequalignore\",\"set_edge_weight\",\"set_partitions\",\"set_plot_option\",\"set_random_state\",\"set_up_dot_simplifications\",\"set_vertex_label\",\"setdifference\",\"setelmx\",\"setequalp\",\"setify\",\"setp\",\"setunits\",\"setup_autoload\",\"seventh\",\"sexplode\",\"sf\",\"shortest_path\",\"show\",\"showcomps\",\"showratvars\",\"sign\",\"signum\",\"similaritytransform\",\"simple_linear_regression\",\"simplify_sum\",\"simplode\",\"simpmetderiv\",\"simtran\",\"sin\",\"sinh\",\"sinsert\",\"sinvertcase\",\"sixth\",\"skewness\",\"skewness_bernoulli\",\"skewness_beta\",\"skewness_binomial\",\"skewness_chi2\",\"skewness_continuous_uniform\",\"skewness_discrete_uniform\",\"skewness_exp\",\"skewness_f\",\"skewness_gamma\",\"skewness_geometric\",\"skewness_gumbel\",\"skewness_hypergeometric\",\"skewness_laplace\",\"skewness_logistic\",\"skewness_lognormal\",\"skewness_negative_binomial\",\"skewness_normal\",\"skewness_pareto\",\"skewness_poisson\",\"skewness_rayleigh\",\"skewness_student_t\",\"skewness_weibull\",\"slength\",\"smake\",\"smismatch\",\"solve\",\"solve_rec\",\"solve_rec_rat\",\"some\",\"somrac\",\"sort\",\"sparse6_decode\",\"sparse6_encode\",\"sparse6_export\",\"sparse6_import\",\"specint\",\"spherical_bessel_j\",\"spherical_bessel_y\",\"spherical_hankel1\",\"spherical_hankel2\",\"spherical_harmonic\",\"splice\",\"split\",\"sposition\",\"sprint\",\"sqfr\",\"sqrt\",\"sqrtdenest\",\"sremove\",\"sremovefirst\",\"sreverse\",\"ssearch\",\"ssort\",\"sstatus\",\"ssubst\",\"ssubstfirst\",\"staircase\",\"status\",\"std\",\"std1\",\"std_bernoulli\",\"std_beta\",\"std_binomial\",\"std_chi2\",\"std_continuous_uniform\",\"std_discrete_uniform\",\"std_exp\",\"std_f\",\"std_gamma\",\"std_geometric\",\"std_gumbel\",\"std_hypergeometric\",\"std_laplace\",\"std_logistic\",\"std_lognormal\",\"std_negative_binomial\",\"std_normal\",\"std_pareto\",\"std_poisson\",\"std_rayleigh\",\"std_student_t\",\"std_weibull\",\"stirling\",\"stirling1\",\"stirling2\",\"strim\",\"striml\",\"strimr\",\"string\",\"stringout\",\"stringp\",\"strong_components\",\"sublis\",\"sublist\",\"sublist_indices\",\"submatrix\",\"subsample\",\"subset\",\"subsetp\",\"subst\",\"substinpart\",\"substpart\",\"substring\",\"subvar\",\"subvarp\",\"sum\",\"sumcontract\",\"summand_to_rec\",\"supcase\",\"supcontext\",\"symbolp\",\"symmdifference\",\"symmetricp\",\"system\",\"take_channel\",\"take_inference\",\"tan\",\"tanh\",\"taylor\",\"taylor_simplifier\",\"taylorinfo\",\"taylorp\",\"taytorat\",\"tcl_output\",\"tcontract\",\"tellrat\",\"tellsimp\",\"tellsimpafter\",\"tentex\",\"tenth\",\"test_mean\",\"test_means_difference\",\"test_normality\",\"test_rank_sum\",\"test_sign\",\"test_signed_rank\",\"test_variance\",\"test_variance_ratio\",\"tex\",\"texput\",\"third\",\"throw\",\"time\",\"timedate\",\"timer\",\"timer_info\",\"tldefint\",\"tlimit\",\"to_lisp\",\"todd_coxeter\",\"toeplitz\",\"tokens\",\"topological_sort\",\"totaldisrep\",\"totalfourier\",\"totient\",\"tpartpol\",\"tr_warnings_get\",\"trace\",\"trace_options\",\"tracematrix\",\"translate\",\"translate_file\",\"transpose\",\"tree_reduce\",\"treillis\",\"treinat\",\"triangularize\",\"trigexpand\",\"trigrat\",\"trigreduce\",\"trigsimp\",\"trunc\",\"ueivects\",\"uforget\",\"ultraspherical\",\"underlying_graph\",\"undiff\",\"union\",\"unique\",\"unit_step\",\"uniteigenvectors\",\"unitvector\",\"unknown\",\"unorder\",\"unsum\",\"untellrat\",\"untimer\",\"untrace\",\"uppercasep\",\"uricci\",\"uriemann\",\"uvect\",\"vandermonde_matrix\",\"var\",\"var1\",\"var_bernoulli\",\"var_beta\",\"var_binomial\",\"var_chi2\",\"var_continuous_uniform\",\"var_discrete_uniform\",\"var_exp\",\"var_f\",\"var_gamma\",\"var_geometric\",\"var_gumbel\",\"var_hypergeometric\",\"var_laplace\",\"var_logistic\",\"var_lognormal\",\"var_negative_binomial\",\"var_normal\",\"var_pareto\",\"var_poisson\",\"var_rayleigh\",\"var_student_t\",\"var_weibull\",\"vectorpotential\",\"vectorsimp\",\"verbify\",\"vers\",\"vertex_coloring\",\"vertex_degree\",\"vertex_distance\",\"vertex_eccentricity\",\"vertex_in_degree\",\"vertex_out_degree\",\"vertices\",\"vertices_to_cycle\",\"vertices_to_path\",\"weyl\",\"wheel_graph\",\"with_stdout\",\"write_data\",\"writefile\",\"wronskian\",\"xgraph_curves\",\"xreduce\",\"xthru\",\"zeroequiv\",\"zerofor\",\"zeromatrix\",\"zeromatrixp\",\"zeta\",\"zlange\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !#&()*+,-./:;<=>?@[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"%\",\"%%\",\"%e_to_numlog\",\"%edispflag\",\"%emode\",\"%enumer\",\"%iargs\",\"%piargs\",\"%rnum_list\",\"GGFCFMAX\",\"GGFINFINITY\",\"_\",\"__\",\"absboxchar\",\"activecontexts\",\"additive\",\"algebraic\",\"algepsilon\",\"algexact\",\"aliases\",\"all_dotsimp_denoms\",\"allbut\",\"allsym\",\"arrays\",\"askexp\",\"assume_pos\",\"assume_pos_pred\",\"assumescalar\",\"atomgrad\",\"backsubst\",\"berlefact\",\"besselexpand\",\"bftorat\",\"bftrunc\",\"boxchar\",\"breakup\",\"cauchysum\",\"cflength\",\"cframe_flag\",\"cnonmet_flag\",\"context\",\"contexts\",\"cosnpiflag\",\"ct_coords\",\"ctaypov\",\"ctaypt\",\"ctayswitch\",\"ctayvar\",\"ctorsion_flag\",\"ctrgsimp\",\"current_let_rule_package\",\"debugmode\",\"default_let_rule_package\",\"demoivre\",\"dependencies\",\"derivabbrev\",\"derivsubst\",\"detout\",\"diagmetric\",\"dim\",\"dispflag\",\"display2d\",\"display_format_internal\",\"doallmxops\",\"domain\",\"domxexpt\",\"domxmxops\",\"domxnctimes\",\"dontfactor\",\"doscmxops\",\"doscmxplus\",\"dot0nscsimp\",\"dot0simp\",\"dot1simp\",\"dotassoc\",\"dotconstrules\",\"dotdistrib\",\"dotexptsimp\",\"dotident\",\"dotscrules\",\"draw_graph_program\",\"epsilon_lp\",\"erfflag\",\"error\",\"error_size\",\"error_syms\",\"evflag\",\"evfun\",\"expandwrt_denom\",\"expon\",\"exponentialize\",\"expop\",\"exptdispflag\",\"exptisolate\",\"exptsubst\",\"facexpand\",\"factlim\",\"factorflag\",\"file_output_append\",\"file_search_demo\",\"file_search_lisp\",\"file_search_maxima\",\"find_root_abs\",\"find_root_error\",\"find_root_rel\",\"flipflag\",\"float2bf\",\"fortindent\",\"fortspaces\",\"fpprec\",\"fpprintprec\",\"functions\",\"gammalim\",\"gdet\",\"genindex\",\"gensumnum\",\"globalsolve\",\"gradefs\",\"grind\",\"halfangles\",\"ibase\",\"icounter\",\"idummyx\",\"ieqnprint\",\"iframe_bracket_form\",\"igeowedge_flag\",\"imetric\",\"in_netmath\",\"inchar\",\"infeval\",\"inflag\",\"infolists\",\"integrate_use_rootsof\",\"integration_constant\",\"integration_constant_counter\",\"intfaclim\",\"isolate_wrt_times\",\"keepfloat\",\"labels\",\"let_rule_packages\",\"letrat\",\"lhospitallim\",\"limsubst\",\"linechar\",\"linel\",\"linenum\",\"linsolve_params\",\"linsolvewarn\",\"lispdisp\",\"listarith\",\"listconstvars\",\"listdummyvars\",\"lmxchar\",\"loadprint\",\"logabs\",\"logarc\",\"logconcoeffp\",\"logexpand\",\"lognegint\",\"lognumer\",\"logsimp\",\"m1pbranch\",\"macroexpansion\",\"maperror\",\"mapprint\",\"matrix_element_add\",\"matrix_element_mult\",\"matrix_element_transpose\",\"maxapplydepth\",\"maxapplyheight\",\"maxima_tempdir\",\"maxima_userdir\",\"maxnegex\",\"maxposex\",\"maxpsifracdenom\",\"maxpsifracnum\",\"maxpsinegint\",\"maxpsiposint\",\"maxtayorder\",\"method\",\"mode_check_errorp\",\"mode_check_warnp\",\"mode_checkp\",\"modulus\",\"multiplicities\",\"myoptions\",\"negdistrib\",\"negsumdispflag\",\"newtonepsilon\",\"newtonmaxiter\",\"niceindicespref\",\"nolabels\",\"nonegative_lp\",\"noundisp\",\"obase\",\"opproperties\",\"opsubst\",\"optimprefix\",\"optionset\",\"outchar\",\"packagefile\",\"partswitch\",\"pfeformat\",\"piece\",\"plot_options\",\"poislim\",\"poly_coefficient_ring\",\"poly_elimination_order\",\"poly_grobner_algorithm\",\"poly_grobner_debug\",\"poly_monomial_order\",\"poly_primary_elimination_order\",\"poly_return_term_list\",\"poly_secondary_elimination_order\",\"poly_top_reduction_only\",\"powerdisp\",\"prederror\",\"primep_number_of_tests\",\"product_use_gamma\",\"programmode\",\"prompt\",\"psexpand\",\"radexpand\",\"radsubstflag\",\"random_beta_algorithm\",\"random_binomial_algorithm\",\"random_chi2_algorithm\",\"random_exp_algorithm\",\"random_f_algorithm\",\"random_gamma_algorithm\",\"random_geometric_algorithm\",\"random_hypergeometric_algorithm\",\"random_negative_binomial_algorithm\",\"random_normal_algorithm\",\"random_poisson_algorithm\",\"random_student_t_algorithm\",\"ratalgdenom\",\"ratchristof\",\"ratdenomdivide\",\"rateinstein\",\"ratepsilon\",\"ratexpand\",\"ratfac\",\"ratmx\",\"ratprint\",\"ratriemann\",\"ratsimpexpons\",\"ratvars\",\"ratweights\",\"ratweyl\",\"ratwtlvl\",\"realonly\",\"refcheck\",\"rmxchar\",\"rombergabs\",\"rombergit\",\"rombergmin\",\"rombergtol\",\"rootsconmode\",\"rootsepsilon\",\"savedef\",\"savefactors\",\"scalarmatrixp\",\"setcheck\",\"setcheckbreak\",\"setval\",\"showtime\",\"simplify_products\",\"simpsum\",\"sinnpiflag\",\"solve_inconsistent_error\",\"solvedecomposes\",\"solveexplicit\",\"solvefactors\",\"solvenullwarn\",\"solveradcan\",\"solvetrigwarn\",\"sparse\",\"sqrtdispflag\",\"stardisp\",\"stats_numer\",\"stringdisp\",\"sublis_apply_lambda\",\"sumexpand\",\"sumsplitfact\",\"taylor_logexpand\",\"taylor_order_coefficients\",\"taylor_truncate_polynomials\",\"taylordepth\",\"tensorkill\",\"testsuite_files\",\"timer_devalue\",\"tlimswitch\",\"tr_array_as_ref\",\"tr_bound_function_applyp\",\"tr_file_tty_messagesp\",\"tr_float_can_branch_complex\",\"tr_function_call_default\",\"tr_numer\",\"tr_optimize_max_loop\",\"tr_semicompile\",\"tr_state_vars\",\"tr_warn_bad_function_calls\",\"tr_warn_fexpr\",\"tr_warn_meval\",\"tr_warn_mode\",\"tr_warn_undeclared\",\"tr_warn_undefined_variable\",\"tr_windy\",\"transcompile\",\"transrun\",\"trigexpandplus\",\"trigexpandtimes\",\"triginverses\",\"trigsign\",\"ttyoff\",\"use_fast_arrays\",\"values\",\"vect_cross\",\"verbose\",\"zerobern\",\"zeta%pi\"])), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !#&()*+,-./:;<=>?@[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"and\",\"do\",\"else\",\"elseif\",\"false\",\"for\",\"if\",\"in\",\"not\",\"or\",\"step\",\"then\",\"thru\",\"true\",\"while\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Maxima\",\"String\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Maxima\",\"Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z_][a-zA-Z0-9%_]*\", reCaseSensitive = True}), rAttribute = ConstantTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[-+]?\\\\d+\\\\.\\\\d*([BbDdEeSs][-+]?\\\\d+)?\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[-+]?\\\\.\\\\d+([BbDdEeSs][-+]?\\\\d+)?\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[-+]?\\\\d+[BbDdEeSs][-+]?\\\\d+\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[-+]?\\\\d+\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = DocumentationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Maxima\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Alexey Beshenov <al@beshenov.ru>\", sVersion = \"3\", sLicense = \"LGPLv2.1+\", sExtensions = [\"*.mac\",\"*.MAC\",\"*.dem\",\"*.DEM\"], sStartingContext = \"Normal Text\"}"
diff --git a/src/Skylighting/Syntax/Mediawiki.hs b/src/Skylighting/Syntax/Mediawiki.hs
--- a/src/Skylighting/Syntax/Mediawiki.hs
+++ b/src/Skylighting/Syntax/Mediawiki.hs
@@ -2,6207 +2,6 @@
 module Skylighting.Syntax.Mediawiki (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "MediaWiki"
-  , sFilename = "mediawiki.xml"
-  , sShortname = "Mediawiki"
-  , sContexts =
-      fromList
-        [ ( "Bold"
-          , Context
-              { cName = "Bold"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "'''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "BoldItalic" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<u *>"
-                              , reCompiled = Just (compileRegex True "<u *>")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "BoldUnderlined" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindWikiLinkBeingBold" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "BoldItalic"
-          , Context
-              { cName = "BoldItalic"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<u *>"
-                              , reCompiled = Just (compileRegex True "<u *>")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "BoldItalicUnderlined" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindWikiLinkBeingBoldItalic" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "BoldItalicUnderlined"
-          , Context
-              { cName = "BoldItalicUnderlined"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</u *>"
-                              , reCompiled = Just (compileRegex True "</u *>")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules
-                            ( "MediaWiki" , "FindWikiLinkBeingBoldItalicUnderlined" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "BoldUnderlined"
-          , Context
-              { cName = "BoldUnderlined"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</u *>"
-                              , reCompiled = Just (compileRegex True "</u *>")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "BoldUnderlinedItalic" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindWikiLinkBeingBoldUnderlined" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "BoldUnderlinedItalic"
-          , Context
-              { cName = "BoldUnderlinedItalic"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules
-                            ( "MediaWiki" , "FindWikiLinkBeingBoldItalicUnderlined" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "DefinitionListHeader"
-          , Context
-              { cName = "DefinitionListHeader"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ':'
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "DelimitedURL"
-          , Context
-              { cName = "DelimitedURL"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ']'
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(http:|https:|ftp:|mailto:)[^]| ]*(?=$|[]|\\s])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(http:|https:|ftp:|mailto:)[^]| ]*(?=$|[]|\\s])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "DelimitedUrlLink" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ' '
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "URLTag" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "DelimitedUrlLink"
-          , Context
-              { cName = "DelimitedUrlLink"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ' '
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindHtmlEntities"
-          , Context
-              { cName = "FindHtmlEntities"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "&(#[0-9]+|#[xX][0-9A-Fa-f]+|(?![0-9])[\\w_:][\\w.:_-]*);"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "&(#[0-9]+|#[xX][0-9A-Fa-f]+|(?![0-9])[\\w_:][\\w.:_-]*);")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindHtmlStartTagAttributes"
-          , Context
-              { cName = "FindHtmlStartTagAttributes"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(?![0-9])[\\w_:][\\w.:_-]*"
-                              , reCompiled =
-                                  Just (compileRegex True "(?![0-9])[\\w_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "MediaWiki" , "HtmlAttribute" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s+(?![0-9])[\\w_:][\\w.:_-]*"
-                              , reCompiled =
-                                  Just (compileRegex True "\\s+(?![0-9])[\\w_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "HtmlAttribute" ) ]
-                      }
-                  , 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
-              }
-          )
-        , ( "FindListItem"
-          , Context
-              { cName = "FindListItem"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[*#;:\\s]*[*#:]+"
-                              , reCompiled = Just (compileRegex True "[*#;:\\s]*[*#:]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindSyntaxHighlightingHtmlElement"
-          , Context
-              { cName = "FindSyntaxHighlightingHtmlElement"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<source(?=\\s)"
-                              , reCompiled = Just (compileRegex True "<source(?=\\s)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "SourceStartTag" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<syntaxhighlight(?=\\s)"
-                              , reCompiled = Just (compileRegex True "<syntaxhighlight(?=\\s)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "SyntaxHighlightStartTag" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindTable"
-          , Context
-              { cName = "FindTable"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '{' '|'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "MediaWiki" , "TableHeader" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindTemplate"
-          , Context
-              { cName = "FindTemplate"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '{' '{'
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Template" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindTextDecorations"
-          , Context
-              { cName = "FindTextDecorations"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "'''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Bold" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Italic" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<u *>"
-                              , reCompiled = Just (compileRegex True "<u *>")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Underlined" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindTextDecorationsInHeader"
-          , Context
-              { cName = "FindTextDecorationsInHeader"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "'''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Bold" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "BoldItalic" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindUrl"
-          , Context
-              { cName = "FindUrl"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[(http:|https:|ftp:|mailto:)[^]| ]*(?=$|[]|\\s])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\[(http:|https:|ftp:|mailto:)[^]| ]*(?=$|[]|\\s])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "DelimitedURL" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(http:|https:|ftp:|mailto:)[^]| ]*(?=$|[]|\\s])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(http:|https:|ftp:|mailto:)[^]| ]*(?=$|[]|\\s])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "LooseURL" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindUrlWithinTemplate"
-          , Context
-              { cName = "FindUrlWithinTemplate"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[(http:|https:|ftp:|mailto:)[^]| ]*(?=$|[]|\\s])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\[(http:|https:|ftp:|mailto:)[^]| ]*(?=$|[]|\\s])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "DelimitedURL" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(http:|https:|ftp:|mailto:)[^]| ]*(?=$|[]|\\s])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(http:|https:|ftp:|mailto:)[^]| ]*(?=$|[]|\\s])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "LooseURLWithinTemplate" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindWikiLink"
-          , Context
-              { cName = "FindWikiLink"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '[' '['
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "WikiLink" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindWikiLinkBeingBold"
-          , Context
-              { cName = "FindWikiLinkBeingBold"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[\\[[^]|]*\\|[^]]*\\]\\]"
-                              , reCompiled =
-                                  Just (compileRegex True "\\[\\[[^]|]*\\|[^]]*\\]\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "WikiLinkBoldWithDescription" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[\\[[^]|]*\\]\\]"
-                              , reCompiled = Just (compileRegex True "\\[\\[[^]|]*\\]\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "WikiLinkBoldWithoutDescription" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindWikiLinkBeingBoldItalic"
-          , Context
-              { cName = "FindWikiLinkBeingBoldItalic"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[\\[[^]|]*\\|[^]]*\\]\\]"
-                              , reCompiled =
-                                  Just (compileRegex True "\\[\\[[^]|]*\\|[^]]*\\]\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "WikiLinkBoldItalicWithDescription" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[\\[[^]|]*\\]\\]"
-                              , reCompiled = Just (compileRegex True "\\[\\[[^]|]*\\]\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "WikiLinkBoldItalicWithoutDescription" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindWikiLinkBeingBoldItalicUnderlined"
-          , Context
-              { cName = "FindWikiLinkBeingBoldItalicUnderlined"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[\\[[^]|]*\\|[^]]*\\]\\]"
-                              , reCompiled =
-                                  Just (compileRegex True "\\[\\[[^]|]*\\|[^]]*\\]\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push
-                              ( "MediaWiki" , "WikiLinkBoldItalicUnderlinedWithDescription" )
-                          ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[\\[[^]|]*\\]\\]"
-                              , reCompiled = Just (compileRegex True "\\[\\[[^]|]*\\]\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push
-                              ( "MediaWiki" , "WikiLinkBoldItalicUnderlinedWithoutDescription" )
-                          ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindWikiLinkBeingBoldUnderlined"
-          , Context
-              { cName = "FindWikiLinkBeingBoldUnderlined"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[\\[[^]|]*\\|[^]]*\\]\\]"
-                              , reCompiled =
-                                  Just (compileRegex True "\\[\\[[^]|]*\\|[^]]*\\]\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "WikiLinkBoldUnderlinedWithDescription" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[\\[[^]|]*\\]\\]"
-                              , reCompiled = Just (compileRegex True "\\[\\[[^]|]*\\]\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "WikiLinkBoldUnderlinedWithoutDescription" )
-                          ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindWikiLinkBeingItalic"
-          , Context
-              { cName = "FindWikiLinkBeingItalic"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[\\[[^]|]*\\|[^]]*\\]\\]"
-                              , reCompiled =
-                                  Just (compileRegex True "\\[\\[[^]|]*\\|[^]]*\\]\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "WikiLinkItalicWithDescription" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[\\[[^]|]*\\]\\]"
-                              , reCompiled = Just (compileRegex True "\\[\\[[^]|]*\\]\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "WikiLinkItalicWithoutDescription" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindWikiLinkBeingItalicUnderlined"
-          , Context
-              { cName = "FindWikiLinkBeingItalicUnderlined"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[\\[[^]|]*\\|[^]]*\\]\\]"
-                              , reCompiled =
-                                  Just (compileRegex True "\\[\\[[^]|]*\\|[^]]*\\]\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "WikiLinkItalicUnderlinedWithDescription" )
-                          ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[\\[[^]|]*\\]\\]"
-                              , reCompiled = Just (compileRegex True "\\[\\[[^]|]*\\]\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push
-                              ( "MediaWiki" , "WikiLinkItalicUnderlinedWithoutDescription" )
-                          ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindWikiLinkBeingUnderlined"
-          , Context
-              { cName = "FindWikiLinkBeingUnderlined"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[\\[[^]|]*\\|[^]]*\\]\\]"
-                              , reCompiled =
-                                  Just (compileRegex True "\\[\\[[^]|]*\\|[^]]*\\]\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "WikiLinkUnderlinedWithDescription" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[\\[[^]|]*\\]\\]"
-                              , reCompiled = Just (compileRegex True "\\[\\[[^]|]*\\]\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "WikiLinkUnderlinedWithoutDescription" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "HtmlAttribute"
-          , Context
-              { cName = "HtmlAttribute"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "HtmlValue" ) ]
-                      }
-                  , 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
-              }
-          )
-        , ( "HtmlValue"
-          , Context
-              { cName = "HtmlValue"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "ValueWithDoubleQuotes" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "ValueWithSingleQuotes" ) ]
-                      }
-                  , 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
-              }
-          )
-        , ( "Italic"
-          , Context
-              { cName = "Italic"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "'''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "ItalicBold" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<u *>"
-                              , reCompiled = Just (compileRegex True "<u *>")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "ItalicUnderlined" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindWikiLinkBeingItalic" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ItalicBold"
-          , Context
-              { cName = "ItalicBold"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "'''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<u *>"
-                              , reCompiled = Just (compileRegex True "<u *>")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "BoldItalicUnderlined" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindWikiLinkBeingBoldItalic" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ItalicUnderlined"
-          , Context
-              { cName = "ItalicUnderlined"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</u *>"
-                              , reCompiled = Just (compileRegex True "</u *>")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "'''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "ItalicUnderlinedBold" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindWikiLinkBeingItalicUnderlined" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ItalicUnderlinedBold"
-          , Context
-              { cName = "ItalicUnderlinedBold"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "'''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules
-                            ( "MediaWiki" , "FindWikiLinkBeingBoldItalicUnderlined" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "JavaScriptSourceContent"
-          , Context
-              { cName = "JavaScriptSourceContent"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "SourceEnd" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "JavaScript" , "Normal" )
-                      , 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
-              }
-          )
-        , ( "JavaScriptSourceStartTag"
-          , Context
-              { cName = "JavaScriptSourceStartTag"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "JavaScriptSourceContent" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindHtmlStartTagAttributes" )
-                      , 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
-              }
-          )
-        , ( "JavaScriptSyntaxHighlightContent"
-          , Context
-              { cName = "JavaScriptSyntaxHighlightContent"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "</syntaxhighlight>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "SyntaxHighlightEnd" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "JavaScript" , "Normal" )
-                      , 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
-              }
-          )
-        , ( "JavaScriptSyntaxHighlightStartTag"
-          , Context
-              { cName = "JavaScriptSyntaxHighlightStartTag"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "JavaScriptSyntaxHighlightContent" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindHtmlStartTagAttributes" )
-                      , 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
-              }
-          )
-        , ( "LooseURL"
-          , Context
-              { cName = "LooseURL"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = OtherTok
-                      , 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 = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "LooseURLWithinTemplate"
-          , Context
-              { cName = "LooseURLWithinTemplate"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '}' '}'
-                      , rAttribute = OtherTok
-                      , 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 = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "NoWiki"
-          , Context
-              { cName = "NoWiki"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<!--[^-]*-->"
-                              , reCompiled = Just (compileRegex True "<!--[^-]*-->")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "</nowiki>"
-                      , rAttribute = KeywordTok
-                      , 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 = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<pre>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Pre" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Pre"
-          , Context
-              { cName = "Pre"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "</pre>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Section2"
-          , Context
-              { cName = "Section2"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[~]{3,4}"
-                              , reCompiled = Just (compileRegex True "[~]{3,4}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindUrl" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindTextDecorationsInHeader" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{{{"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "TemplateParameter" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindWikiLink" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindHtmlEntities" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<nowiki>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "NoWiki" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<pre>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Pre" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindSyntaxHighlightingHtmlElement" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[<][^>]+[>]"
-                              , reCompiled = Just (compileRegex True "[<][^>]+[>]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "={3,} *$"
-                              , reCompiled = Just (compileRegex True "={3,} *$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "={2,2} *$"
-                              , reCompiled = Just (compileRegex True "={2,2} *$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "={1,1} *$"
-                              , reCompiled = Just (compileRegex True "={1,1} *$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , 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 = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Section3"
-          , Context
-              { cName = "Section3"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[~]{3,4}"
-                              , reCompiled = Just (compileRegex True "[~]{3,4}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindUrl" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindTextDecorationsInHeader" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{{{"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "TemplateParameter" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindWikiLink" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindHtmlEntities" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<nowiki>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "NoWiki" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<pre>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Pre" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindSyntaxHighlightingHtmlElement" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[<][^>]+[>]"
-                              , reCompiled = Just (compileRegex True "[<][^>]+[>]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "={4,} *$"
-                              , reCompiled = Just (compileRegex True "={4,} *$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "={3,3} *$"
-                              , reCompiled = Just (compileRegex True "={3,3} *$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "={1,2} *$"
-                              , reCompiled = Just (compileRegex True "={1,2} *$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , 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 = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Section4"
-          , Context
-              { cName = "Section4"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[~]{3,4}"
-                              , reCompiled = Just (compileRegex True "[~]{3,4}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindUrl" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindTextDecorationsInHeader" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{{{"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "TemplateParameter" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindWikiLink" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindHtmlEntities" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<nowiki>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "NoWiki" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<pre>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Pre" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindSyntaxHighlightingHtmlElement" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[<][^>]+[>]"
-                              , reCompiled = Just (compileRegex True "[<][^>]+[>]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "={5,} *$"
-                              , reCompiled = Just (compileRegex True "={5,} *$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "={4,4} *$"
-                              , reCompiled = Just (compileRegex True "={4,4} *$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "={1,3} *$"
-                              , reCompiled = Just (compileRegex True "={1,3} *$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , 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 = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Section5"
-          , Context
-              { cName = "Section5"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[~]{3,4}"
-                              , reCompiled = Just (compileRegex True "[~]{3,4}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindUrl" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindTextDecorationsInHeader" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{{{"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "TemplateParameter" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindWikiLink" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindHtmlEntities" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<nowiki>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "NoWiki" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<pre>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Pre" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindSyntaxHighlightingHtmlElement" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[<][^>]+[>]"
-                              , reCompiled = Just (compileRegex True "[<][^>]+[>]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "={6,} *$"
-                              , reCompiled = Just (compileRegex True "={6,} *$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "={5,5} *$"
-                              , reCompiled = Just (compileRegex True "={5,5} *$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "={1,4} *$"
-                              , reCompiled = Just (compileRegex True "={1,4} *$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "={1,4} *$"
-                              , reCompiled = Just (compileRegex True "={1,4} *$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , 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 = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SourceEnd"
-          , Context
-              { cName = "SourceEnd"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "</source>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SourceStartTag"
-          , Context
-              { cName = "SourceStartTag"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(^|\\s+)lang\\=(\"javascript\"|'javascript')"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(^|\\s+)lang\\=(\"javascript\"|'javascript')")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "JavaScriptSourceStartTag" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "UnsupportedLanguageSourceStartTag" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindHtmlStartTagAttributes" )
-                      , 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
-              }
-          )
-        , ( "SyntaxHighlightEnd"
-          , Context
-              { cName = "SyntaxHighlightEnd"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "</syntaxhighlight>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SyntaxHighlightStartTag"
-          , Context
-              { cName = "SyntaxHighlightStartTag"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(^|\\s+)lang\\=(\"javascript\"|'javascript')"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(^|\\s+)lang\\=(\"javascript\"|'javascript')")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "JavaScriptSyntaxHighlightStartTag" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push
-                              ( "MediaWiki" , "UnsupportedLanguageSyntaxHighlightStartTag" )
-                          ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindHtmlStartTagAttributes" )
-                      , 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
-              }
-          )
-        , ( "TableContent"
-          , Context
-              { cName = "TableContent"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[=]{5,5}(?!=)"
-                              , reCompiled = Just (compileRegex True "[=]{5,5}(?!=)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Section5" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[=]{4,4}(?!=)"
-                              , reCompiled = Just (compileRegex True "[=]{4,4}(?!=)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Section4" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[=]{3,3}(?!=)"
-                              , reCompiled = Just (compileRegex True "[=]{3,3}(?!=)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Section3" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[=]{2,2}(?!=)"
-                              , reCompiled = Just (compileRegex True "[=]{2,2}(?!=)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Section2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ';'
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "DefinitionListHeader" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindListItem" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindUrl" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTextDecorations" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTable" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '|' '}'
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '|' '-'
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '|'
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{{{"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "TemplateParameter" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindWikiLink" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindHtmlEntities" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<nowiki>"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "NoWiki" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<pre>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Pre" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindSyntaxHighlightingHtmlElement" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[<][^>]+[>]"
-                              , reCompiled = Just (compileRegex True "[<][^>]+[>]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , 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 = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Unformatted" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[~]{3,4}"
-                              , reCompiled = Just (compileRegex True "[~]{3,4}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[-]{4,}"
-                              , reCompiled = Just (compileRegex True "[-]{4,}")
-                              , 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 = Just 0
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "TableHeader"
-          , Context
-              { cName = "TableHeader"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '{' '|'
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindHtmlStartTagAttributes" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "MediaWiki" , "TableContent" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Template"
-          , Context
-              { cName = "Template"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "|"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "TemplateParameterSlot" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '}' '}'
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "TemplateParameter"
-          , Context
-              { cName = "TemplateParameter"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "}}}"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "TemplateParameterSlot"
-          , Context
-              { cName = "TemplateParameterSlot"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '}' '}'
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[~]{3,4}"
-                              , reCompiled = Just (compileRegex True "[~]{3,4}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindListItem" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindUrlWithinTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTextDecorations" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{{{"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "TemplateParameter" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindWikiLink" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindHtmlEntities" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<nowiki>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "NoWiki" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<pre>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Pre" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindSyntaxHighlightingHtmlElement" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[<][^>]+[>]"
-                              , reCompiled = Just (compileRegex True "[<][^>]+[>]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "|"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^{}|=]+(?=[=])"
-                              , reCompiled = Just (compileRegex True "[^{}|=]+(?=[=])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "TemplateParameterSlotEqual" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "TemplateParameterSlotEqual"
-          , Context
-              { cName = "TemplateParameterSlotEqual"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '}' '}'
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "|"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "="
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "TemplateParameterSlotValue" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "TemplateParameterSlotValue"
-          , Context
-              { cName = "TemplateParameterSlotValue"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[~]{3,4}"
-                              , reCompiled = Just (compileRegex True "[~]{3,4}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindListItem" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindUrlWithinTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTextDecorations" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{{{"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "TemplateParameter" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindWikiLink" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindHtmlEntities" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<nowiki>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "NoWiki" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<pre>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Pre" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindSyntaxHighlightingHtmlElement" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[<][^>]+[>]"
-                              , reCompiled = Just (compileRegex True "[<][^>]+[>]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '}' '}'
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "|"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "URLTag"
-          , Context
-              { cName = "URLTag"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTextDecorations" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Underlined"
-          , Context
-              { cName = "Underlined"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "'''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "UnderlinedBold" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "UnderlinedItalic" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</u *>"
-                              , reCompiled = Just (compileRegex True "</u *>")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindWikiLinkBeingUnderlined" )
-                      , 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
-              }
-          )
-        , ( "UnderlinedBold"
-          , Context
-              { cName = "UnderlinedBold"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "'''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "BoldUnderlinedItalic" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindWikiLinkBeingBoldUnderlined" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "UnderlinedItalic"
-          , Context
-              { cName = "UnderlinedItalic"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "'''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "ItalicUnderlinedBold" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindWikiLinkBeingItalicUnderlined" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Unformatted"
-          , Context
-              { cName = "Unformatted"
-              , cSyntax = "MediaWiki"
-              , cRules = []
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "UnsupportedLanguageSourceContent"
-          , Context
-              { cName = "UnsupportedLanguageSourceContent"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "SourceEnd" )
-                      , 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
-              }
-          )
-        , ( "UnsupportedLanguageSourceStartTag"
-          , Context
-              { cName = "UnsupportedLanguageSourceStartTag"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "UnsupportedLanguageSourceContent" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindHtmlStartTagAttributes" )
-                      , 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
-              }
-          )
-        , ( "UnsupportedLanguageSyntaxHighlightContent"
-          , Context
-              { cName = "UnsupportedLanguageSyntaxHighlightContent"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "SyntaxHighlightEnd" )
-                      , 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
-              }
-          )
-        , ( "UnsupportedLanguageSyntaxHighlightStartTag"
-          , Context
-              { cName = "UnsupportedLanguageSyntaxHighlightStartTag"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push
-                              ( "MediaWiki" , "UnsupportedLanguageSyntaxHighlightContent" )
-                          ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindHtmlStartTagAttributes" )
-                      , 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
-              }
-          )
-        , ( "ValueWithDoubleQuotes"
-          , Context
-              { cName = "ValueWithDoubleQuotes"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindHtmlEntities" )
-                      , 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
-              }
-          )
-        , ( "ValueWithSingleQuotes"
-          , Context
-              { cName = "ValueWithSingleQuotes"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindHtmlEntities" )
-                      , 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
-              }
-          )
-        , ( "WikiLink"
-          , Context
-              { cName = "WikiLink"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkWithDescriptionRules" )
-                      , rAttribute = OtherTok
-                      , 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 ( "MediaWiki" , "WikiLinkDescription" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WikiLinkBoldItalicUnderlinedWithDescription"
-          , Context
-              { cName = "WikiLinkBoldItalicUnderlinedWithDescription"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkWithDescriptionRules" )
-                      , rAttribute = OtherTok
-                      , 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 ( "MediaWiki" , "WikiLinkDescriptionBoldItalicUnderlined" )
-                          ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WikiLinkBoldItalicUnderlinedWithoutDescription"
-          , Context
-              { cName = "WikiLinkBoldItalicUnderlinedWithoutDescription"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkWithoutDescriptionRules" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WikiLinkBoldItalicWithDescription"
-          , Context
-              { cName = "WikiLinkBoldItalicWithDescription"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkWithDescriptionRules" )
-                      , rAttribute = OtherTok
-                      , 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 ( "MediaWiki" , "WikiLinkDescriptionBoldItalic" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WikiLinkBoldItalicWithoutDescription"
-          , Context
-              { cName = "WikiLinkBoldItalicWithoutDescription"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkWithoutDescriptionRules" )
-                      , rAttribute = OtherTok
-                      , 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 = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WikiLinkBoldUnderlinedWithDescription"
-          , Context
-              { cName = "WikiLinkBoldUnderlinedWithDescription"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkWithDescriptionRules" )
-                      , rAttribute = OtherTok
-                      , 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 ( "MediaWiki" , "WikiLinkDescriptionBoldUnderlined" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WikiLinkBoldUnderlinedWithoutDescription"
-          , Context
-              { cName = "WikiLinkBoldUnderlinedWithoutDescription"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkWithoutDescriptionRules" )
-                      , rAttribute = OtherTok
-                      , 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 = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WikiLinkBoldWithDescription"
-          , Context
-              { cName = "WikiLinkBoldWithDescription"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkWithDescriptionRules" )
-                      , rAttribute = OtherTok
-                      , 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 ( "MediaWiki" , "WikiLinkDescriptionBold" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WikiLinkBoldWithoutDescription"
-          , Context
-              { cName = "WikiLinkBoldWithoutDescription"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkWithoutDescriptionRules" )
-                      , rAttribute = OtherTok
-                      , 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 = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WikiLinkDescription"
-          , Context
-              { cName = "WikiLinkDescription"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkDescriptionRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTextDecorations" )
-                      , 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
-              }
-          )
-        , ( "WikiLinkDescriptionBold"
-          , Context
-              { cName = "WikiLinkDescriptionBold"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkDescriptionRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "BoldItalic" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<u *>"
-                              , reCompiled = Just (compileRegex True "<u *>")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "BoldUnderlined" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WikiLinkDescriptionBoldItalic"
-          , Context
-              { cName = "WikiLinkDescriptionBoldItalic"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkDescriptionRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<u *>"
-                              , reCompiled = Just (compileRegex True "<u *>")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "BoldItalicUnderlined" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WikiLinkDescriptionBoldItalicUnderlined"
-          , Context
-              { cName = "WikiLinkDescriptionBoldItalicUnderlined"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkDescriptionRules" )
-                      , 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
-              }
-          )
-        , ( "WikiLinkDescriptionBoldUnderlined"
-          , Context
-              { cName = "WikiLinkDescriptionBoldUnderlined"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkDescriptionRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "BoldUnderlinedItalic" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WikiLinkDescriptionItalic"
-          , Context
-              { cName = "WikiLinkDescriptionItalic"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkDescriptionRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "'''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "ItalicBold" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<u *>"
-                              , reCompiled = Just (compileRegex True "<u *>")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "ItalicUnderlined" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WikiLinkDescriptionItalicUnderlined"
-          , Context
-              { cName = "WikiLinkDescriptionItalicUnderlined"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkDescriptionRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "'''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "ItalicUnderlinedBold" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WikiLinkDescriptionRules"
-          , Context
-              { cName = "WikiLinkDescriptionRules"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindHtmlEntities" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars ']' ']'
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WikiLinkDescriptionUnderlined"
-          , Context
-              { cName = "WikiLinkDescriptionUnderlined"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkDescriptionRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "'''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "UnderlinedBold" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "''"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "UnderlinedItalic" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WikiLinkItalicUnderlinedWithDescription"
-          , Context
-              { cName = "WikiLinkItalicUnderlinedWithDescription"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkWithDescriptionRules" )
-                      , rAttribute = OtherTok
-                      , 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 ( "MediaWiki" , "WikiLinkDescriptionItalicUnderlined" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WikiLinkItalicUnderlinedWithoutDescription"
-          , Context
-              { cName = "WikiLinkItalicUnderlinedWithoutDescription"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkWithoutDescriptionRules" )
-                      , rAttribute = OtherTok
-                      , 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 = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WikiLinkItalicWithDescription"
-          , Context
-              { cName = "WikiLinkItalicWithDescription"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkWithDescriptionRules" )
-                      , rAttribute = OtherTok
-                      , 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 ( "MediaWiki" , "WikiLinkDescriptionItalic" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WikiLinkItalicWithoutDescription"
-          , Context
-              { cName = "WikiLinkItalicWithoutDescription"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkWithoutDescriptionRules" )
-                      , rAttribute = OtherTok
-                      , 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 = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WikiLinkUnderlinedWithDescription"
-          , Context
-              { cName = "WikiLinkUnderlinedWithDescription"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkWithDescriptionRules" )
-                      , rAttribute = OtherTok
-                      , 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 ( "MediaWiki" , "WikiLinkDescriptionUnderlined" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WikiLinkUnderlinedWithoutDescription"
-          , Context
-              { cName = "WikiLinkUnderlinedWithoutDescription"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkWithoutDescriptionRules" )
-                      , rAttribute = OtherTok
-                      , 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 = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WikiLinkWithDescriptionRules"
-          , Context
-              { cName = "WikiLinkWithDescriptionRules"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "WikiLinkWithoutDescriptionRules" )
-                      , rAttribute = NormalTok
-                      , 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 = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WikiLinkWithoutDescriptionRules"
-          , Context
-              { cName = "WikiLinkWithoutDescriptionRules"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindHtmlEntities" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '[' '['
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars ']' ']'
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "comment"
-          , Context
-              { cName = "comment"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "-->"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "normal"
-          , Context
-              { cName = "normal"
-              , cSyntax = "MediaWiki"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[=]{5,5}(?!=)"
-                              , reCompiled = Just (compileRegex True "[=]{5,5}(?!=)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Section5" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[=]{4,4}(?!=)"
-                              , reCompiled = Just (compileRegex True "[=]{4,4}(?!=)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Section4" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[=]{3,3}(?!=)"
-                              , reCompiled = Just (compileRegex True "[=]{3,3}(?!=)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Section3" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[=]{2,2}(?!=)"
-                              , reCompiled = Just (compileRegex True "[=]{2,2}(?!=)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Section2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[~]{3,4}"
-                              , reCompiled = Just (compileRegex True "[~]{3,4}")
-                              , 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 = Just 0
-                      , rContextSwitch =
-                          [ Push ( "MediaWiki" , "DefinitionListHeader" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindListItem" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindUrl" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTextDecorations" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTable" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "{{{"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "TemplateParameter" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindTemplate" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindWikiLink" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "MediaWiki" , "FindHtmlEntities" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<nowiki>"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "NoWiki" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<pre>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Pre" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "MediaWiki" , "FindSyntaxHighlightingHtmlElement" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[<][^>]+[>]"
-                              , reCompiled = Just (compileRegex True "[<][^>]+[>]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , 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 = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "MediaWiki" , "Unformatted" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = ""
-  , sVersion = "3"
-  , sLicense = "FDL"
-  , sExtensions = [ "*.mediawiki" ]
-  , sStartingContext = "normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"MediaWiki\", sFilename = \"mediawiki.xml\", sShortname = \"Mediawiki\", sContexts = fromList [(\"Bold\",Context {cName = \"Bold\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"'''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"BoldItalic\")]},Rule {rMatcher = RegExpr (RE {reString = \"<u *>\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"BoldUnderlined\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindWikiLinkBeingBold\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"BoldItalic\",Context {cName = \"BoldItalic\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"<u *>\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"BoldItalicUnderlined\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindWikiLinkBeingBoldItalic\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"BoldItalicUnderlined\",Context {cName = \"BoldItalicUnderlined\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"</u *>\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindWikiLinkBeingBoldItalicUnderlined\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"BoldUnderlined\",Context {cName = \"BoldUnderlined\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"</u *>\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"BoldUnderlinedItalic\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindWikiLinkBeingBoldUnderlined\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"BoldUnderlinedItalic\",Context {cName = \"BoldUnderlinedItalic\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindWikiLinkBeingBoldItalicUnderlined\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"DefinitionListHeader\",Context {cName = \"DefinitionListHeader\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = DetectChar ':', rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"DelimitedURL\",Context {cName = \"DelimitedURL\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = DetectChar ']', 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 = []},Rule {rMatcher = RegExpr (RE {reString = \"(http:|https:|ftp:|mailto:)[^]| ]*(?=$|[]|\\\\s])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"DelimitedUrlLink\")]},Rule {rMatcher = DetectChar ' ', rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"URLTag\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"DelimitedUrlLink\",Context {cName = \"DelimitedUrlLink\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ' ', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar ']', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindHtmlEntities\",Context {cName = \"FindHtmlEntities\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"&(#[0-9]+|#[xX][0-9A-Fa-f]+|(?![0-9])[\\\\w_:][\\\\w.:_-]*);\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindHtmlStartTagAttributes\",Context {cName = \"FindHtmlStartTagAttributes\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(?![0-9])[\\\\w_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"MediaWiki\",\"HtmlAttribute\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+(?![0-9])[\\\\w_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"HtmlAttribute\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"FindListItem\",Context {cName = \"FindListItem\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[*#;:\\\\s]*[*#:]+\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindSyntaxHighlightingHtmlElement\",Context {cName = \"FindSyntaxHighlightingHtmlElement\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<source(?=\\\\s)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"SourceStartTag\")]},Rule {rMatcher = RegExpr (RE {reString = \"<syntaxhighlight(?=\\\\s)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"SyntaxHighlightStartTag\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindTable\",Context {cName = \"FindTable\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = Detect2Chars '{' '|', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"MediaWiki\",\"TableHeader\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindTemplate\",Context {cName = \"FindTemplate\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = Detect2Chars '{' '{', rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"Template\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindTextDecorations\",Context {cName = \"FindTextDecorations\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = StringDetect \"'''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"Bold\")]},Rule {rMatcher = StringDetect \"''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"Italic\")]},Rule {rMatcher = RegExpr (RE {reString = \"<u *>\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"Underlined\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindTextDecorationsInHeader\",Context {cName = \"FindTextDecorationsInHeader\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = StringDetect \"'''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"Bold\")]},Rule {rMatcher = StringDetect \"''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"BoldItalic\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindUrl\",Context {cName = \"FindUrl\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\[(http:|https:|ftp:|mailto:)[^]| ]*(?=$|[]|\\\\s])\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"DelimitedURL\")]},Rule {rMatcher = RegExpr (RE {reString = \"(http:|https:|ftp:|mailto:)[^]| ]*(?=$|[]|\\\\s])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"LooseURL\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindUrlWithinTemplate\",Context {cName = \"FindUrlWithinTemplate\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\[(http:|https:|ftp:|mailto:)[^]| ]*(?=$|[]|\\\\s])\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"DelimitedURL\")]},Rule {rMatcher = RegExpr (RE {reString = \"(http:|https:|ftp:|mailto:)[^]| ]*(?=$|[]|\\\\s])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"LooseURLWithinTemplate\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindWikiLink\",Context {cName = \"FindWikiLink\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = Detect2Chars '[' '[', rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"WikiLink\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindWikiLinkBeingBold\",Context {cName = \"FindWikiLinkBeingBold\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\[\\\\[[^]|]*\\\\|[^]]*\\\\]\\\\]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"WikiLinkBoldWithDescription\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[\\\\[[^]|]*\\\\]\\\\]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"WikiLinkBoldWithoutDescription\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindWikiLinkBeingBoldItalic\",Context {cName = \"FindWikiLinkBeingBoldItalic\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\[\\\\[[^]|]*\\\\|[^]]*\\\\]\\\\]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"WikiLinkBoldItalicWithDescription\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[\\\\[[^]|]*\\\\]\\\\]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"WikiLinkBoldItalicWithoutDescription\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindWikiLinkBeingBoldItalicUnderlined\",Context {cName = \"FindWikiLinkBeingBoldItalicUnderlined\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\[\\\\[[^]|]*\\\\|[^]]*\\\\]\\\\]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"WikiLinkBoldItalicUnderlinedWithDescription\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[\\\\[[^]|]*\\\\]\\\\]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"WikiLinkBoldItalicUnderlinedWithoutDescription\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindWikiLinkBeingBoldUnderlined\",Context {cName = \"FindWikiLinkBeingBoldUnderlined\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\[\\\\[[^]|]*\\\\|[^]]*\\\\]\\\\]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"WikiLinkBoldUnderlinedWithDescription\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[\\\\[[^]|]*\\\\]\\\\]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"WikiLinkBoldUnderlinedWithoutDescription\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindWikiLinkBeingItalic\",Context {cName = \"FindWikiLinkBeingItalic\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\[\\\\[[^]|]*\\\\|[^]]*\\\\]\\\\]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"WikiLinkItalicWithDescription\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[\\\\[[^]|]*\\\\]\\\\]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"WikiLinkItalicWithoutDescription\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindWikiLinkBeingItalicUnderlined\",Context {cName = \"FindWikiLinkBeingItalicUnderlined\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\[\\\\[[^]|]*\\\\|[^]]*\\\\]\\\\]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"WikiLinkItalicUnderlinedWithDescription\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[\\\\[[^]|]*\\\\]\\\\]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"WikiLinkItalicUnderlinedWithoutDescription\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindWikiLinkBeingUnderlined\",Context {cName = \"FindWikiLinkBeingUnderlined\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\[\\\\[[^]|]*\\\\|[^]]*\\\\]\\\\]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"WikiLinkUnderlinedWithDescription\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[\\\\[[^]|]*\\\\]\\\\]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"WikiLinkUnderlinedWithoutDescription\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"HtmlAttribute\",Context {cName = \"HtmlAttribute\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = DetectChar '=', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"HtmlValue\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"HtmlValue\",Context {cName = \"HtmlValue\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"ValueWithDoubleQuotes\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"ValueWithSingleQuotes\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"Italic\",Context {cName = \"Italic\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"'''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"ItalicBold\")]},Rule {rMatcher = StringDetect \"''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"<u *>\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"ItalicUnderlined\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindWikiLinkBeingItalic\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ItalicBold\",Context {cName = \"ItalicBold\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"'''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"<u *>\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"BoldItalicUnderlined\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindWikiLinkBeingBoldItalic\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ItalicUnderlined\",Context {cName = \"ItalicUnderlined\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"</u *>\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"'''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"ItalicUnderlinedBold\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindWikiLinkBeingItalicUnderlined\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ItalicUnderlinedBold\",Context {cName = \"ItalicUnderlinedBold\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"'''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindWikiLinkBeingBoldItalicUnderlined\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"JavaScriptSourceContent\",Context {cName = \"JavaScriptSourceContent\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"SourceEnd\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"JavaScript\",\"Normal\"), 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}),(\"JavaScriptSourceStartTag\",Context {cName = \"JavaScriptSourceStartTag\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"JavaScriptSourceContent\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindHtmlStartTagAttributes\"), 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}),(\"JavaScriptSyntaxHighlightContent\",Context {cName = \"JavaScriptSyntaxHighlightContent\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = StringDetect \"</syntaxhighlight>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"SyntaxHighlightEnd\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"JavaScript\",\"Normal\"), 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}),(\"JavaScriptSyntaxHighlightStartTag\",Context {cName = \"JavaScriptSyntaxHighlightStartTag\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"JavaScriptSyntaxHighlightContent\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindHtmlStartTagAttributes\"), 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}),(\"LooseURL\",Context {cName = \"LooseURL\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = OtherTok, 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 = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"LooseURLWithinTemplate\",Context {cName = \"LooseURLWithinTemplate\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '}' '}', rAttribute = OtherTok, 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 = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"NoWiki\",Context {cName = \"NoWiki\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<!--[^-]*-->\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"</nowiki>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[<][^>]+[>]\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<pre>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"Pre\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Pre\",Context {cName = \"Pre\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = StringDetect \"</pre>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Section2\",Context {cName = \"Section2\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"[~]{3,4}\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindUrl\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTextDecorationsInHeader\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"{{{\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"TemplateParameter\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindWikiLink\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindHtmlEntities\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<nowiki>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"NoWiki\")]},Rule {rMatcher = StringDetect \"<pre>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"Pre\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindSyntaxHighlightingHtmlElement\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[<][^>]+[>]\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"={3,} *$\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"={2,2} *$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"={1,1} *$\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"=*[^=]+$\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Section3\",Context {cName = \"Section3\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"[~]{3,4}\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindUrl\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTextDecorationsInHeader\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"{{{\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"TemplateParameter\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindWikiLink\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindHtmlEntities\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<nowiki>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"NoWiki\")]},Rule {rMatcher = StringDetect \"<pre>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"Pre\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindSyntaxHighlightingHtmlElement\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[<][^>]+[>]\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"={4,} *$\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"={3,3} *$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"={1,2} *$\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"=*[^=]+$\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Section4\",Context {cName = \"Section4\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"[~]{3,4}\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindUrl\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTextDecorationsInHeader\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"{{{\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"TemplateParameter\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindWikiLink\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindHtmlEntities\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<nowiki>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"NoWiki\")]},Rule {rMatcher = StringDetect \"<pre>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"Pre\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindSyntaxHighlightingHtmlElement\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[<][^>]+[>]\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"={5,} *$\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"={4,4} *$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"={1,3} *$\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"=*[^=]+$\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Section5\",Context {cName = \"Section5\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"[~]{3,4}\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindUrl\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTextDecorationsInHeader\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"{{{\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"TemplateParameter\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindWikiLink\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindHtmlEntities\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<nowiki>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"NoWiki\")]},Rule {rMatcher = StringDetect \"<pre>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"Pre\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindSyntaxHighlightingHtmlElement\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[<][^>]+[>]\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"={6,} *$\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"={5,5} *$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"={1,4} *$\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"={1,4} *$\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"=*[^=]+$\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SourceEnd\",Context {cName = \"SourceEnd\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = StringDetect \"</source>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SourceStartTag\",Context {cName = \"SourceStartTag\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(^|\\\\s+)lang\\\\=(\\\"javascript\\\"|'javascript')\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"JavaScriptSourceStartTag\")]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"UnsupportedLanguageSourceStartTag\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindHtmlStartTagAttributes\"), 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}),(\"SyntaxHighlightEnd\",Context {cName = \"SyntaxHighlightEnd\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = StringDetect \"</syntaxhighlight>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SyntaxHighlightStartTag\",Context {cName = \"SyntaxHighlightStartTag\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(^|\\\\s+)lang\\\\=(\\\"javascript\\\"|'javascript')\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"JavaScriptSyntaxHighlightStartTag\")]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"UnsupportedLanguageSyntaxHighlightStartTag\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindHtmlStartTagAttributes\"), 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}),(\"TableContent\",Context {cName = \"TableContent\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"[=]{5,5}(?!=)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"MediaWiki\",\"Section5\")]},Rule {rMatcher = RegExpr (RE {reString = \"[=]{4,4}(?!=)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"MediaWiki\",\"Section4\")]},Rule {rMatcher = RegExpr (RE {reString = \"[=]{3,3}(?!=)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"MediaWiki\",\"Section3\")]},Rule {rMatcher = RegExpr (RE {reString = \"[=]{2,2}(?!=)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"MediaWiki\",\"Section2\")]},Rule {rMatcher = DetectChar ';', rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"MediaWiki\",\"DefinitionListHeader\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindListItem\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindUrl\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTextDecorations\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTable\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '|' '}', rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]},Rule {rMatcher = Detect2Chars '|' '-', rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = DetectChar '|', rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"{{{\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"TemplateParameter\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindWikiLink\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindHtmlEntities\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<nowiki>\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"NoWiki\")]},Rule {rMatcher = StringDetect \"<pre>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"Pre\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindSyntaxHighlightingHtmlElement\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[<][^>]+[>]\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\s]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"MediaWiki\",\"Unformatted\")]},Rule {rMatcher = RegExpr (RE {reString = \"[~]{3,4}\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[-]{4,}\", 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 = Just 0, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"TableHeader\",Context {cName = \"TableHeader\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = Detect2Chars '{' '|', rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindHtmlStartTagAttributes\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Push (\"MediaWiki\",\"TableContent\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Template\",Context {cName = \"Template\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = StringDetect \"|\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"TemplateParameterSlot\")]},Rule {rMatcher = Detect2Chars '}' '}', rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"TemplateParameter\",Context {cName = \"TemplateParameter\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = StringDetect \"}}}\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"TemplateParameterSlot\",Context {cName = \"TemplateParameterSlot\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = Detect2Chars '}' '}', rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"[~]{3,4}\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindListItem\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindUrlWithinTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTextDecorations\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"{{{\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"TemplateParameter\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindWikiLink\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindHtmlEntities\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<nowiki>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"NoWiki\")]},Rule {rMatcher = StringDetect \"<pre>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"Pre\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindSyntaxHighlightingHtmlElement\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[<][^>]+[>]\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"|\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[^{}|=]+(?=[=])\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"TemplateParameterSlotEqual\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"TemplateParameterSlotEqual\",Context {cName = \"TemplateParameterSlotEqual\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = Detect2Chars '}' '}', rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"|\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"=\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"TemplateParameterSlotValue\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"TemplateParameterSlotValue\",Context {cName = \"TemplateParameterSlotValue\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"[~]{3,4}\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindListItem\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindUrlWithinTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTextDecorations\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"{{{\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"TemplateParameter\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindWikiLink\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindHtmlEntities\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<nowiki>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"NoWiki\")]},Rule {rMatcher = StringDetect \"<pre>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"Pre\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindSyntaxHighlightingHtmlElement\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[<][^>]+[>]\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '}' '}', rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"|\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"URLTag\",Context {cName = \"URLTag\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTextDecorations\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ']', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Underlined\",Context {cName = \"Underlined\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"'''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"UnderlinedBold\")]},Rule {rMatcher = StringDetect \"''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"UnderlinedItalic\")]},Rule {rMatcher = RegExpr (RE {reString = \"</u *>\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindWikiLinkBeingUnderlined\"), 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}),(\"UnderlinedBold\",Context {cName = \"UnderlinedBold\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"'''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"BoldUnderlinedItalic\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindWikiLinkBeingBoldUnderlined\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"UnderlinedItalic\",Context {cName = \"UnderlinedItalic\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"'''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"ItalicUnderlinedBold\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindWikiLinkBeingItalicUnderlined\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Unformatted\",Context {cName = \"Unformatted\", cSyntax = \"MediaWiki\", cRules = [], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"UnsupportedLanguageSourceContent\",Context {cName = \"UnsupportedLanguageSourceContent\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"SourceEnd\"), 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}),(\"UnsupportedLanguageSourceStartTag\",Context {cName = \"UnsupportedLanguageSourceStartTag\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"UnsupportedLanguageSourceContent\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindHtmlStartTagAttributes\"), 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}),(\"UnsupportedLanguageSyntaxHighlightContent\",Context {cName = \"UnsupportedLanguageSyntaxHighlightContent\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"SyntaxHighlightEnd\"), 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}),(\"UnsupportedLanguageSyntaxHighlightStartTag\",Context {cName = \"UnsupportedLanguageSyntaxHighlightStartTag\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"UnsupportedLanguageSyntaxHighlightContent\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindHtmlStartTagAttributes\"), 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}),(\"ValueWithDoubleQuotes\",Context {cName = \"ValueWithDoubleQuotes\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindHtmlEntities\"), 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}),(\"ValueWithSingleQuotes\",Context {cName = \"ValueWithSingleQuotes\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindHtmlEntities\"), 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}),(\"WikiLink\",Context {cName = \"WikiLink\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkWithDescriptionRules\"), rAttribute = OtherTok, 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 (\"MediaWiki\",\"WikiLinkDescription\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WikiLinkBoldItalicUnderlinedWithDescription\",Context {cName = \"WikiLinkBoldItalicUnderlinedWithDescription\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkWithDescriptionRules\"), rAttribute = OtherTok, 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 (\"MediaWiki\",\"WikiLinkDescriptionBoldItalicUnderlined\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WikiLinkBoldItalicUnderlinedWithoutDescription\",Context {cName = \"WikiLinkBoldItalicUnderlinedWithoutDescription\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = DetectChar '#', rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkWithoutDescriptionRules\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WikiLinkBoldItalicWithDescription\",Context {cName = \"WikiLinkBoldItalicWithDescription\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkWithDescriptionRules\"), rAttribute = OtherTok, 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 (\"MediaWiki\",\"WikiLinkDescriptionBoldItalic\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WikiLinkBoldItalicWithoutDescription\",Context {cName = \"WikiLinkBoldItalicWithoutDescription\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkWithoutDescriptionRules\"), rAttribute = OtherTok, 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 = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WikiLinkBoldUnderlinedWithDescription\",Context {cName = \"WikiLinkBoldUnderlinedWithDescription\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkWithDescriptionRules\"), rAttribute = OtherTok, 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 (\"MediaWiki\",\"WikiLinkDescriptionBoldUnderlined\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WikiLinkBoldUnderlinedWithoutDescription\",Context {cName = \"WikiLinkBoldUnderlinedWithoutDescription\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkWithoutDescriptionRules\"), rAttribute = OtherTok, 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 = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WikiLinkBoldWithDescription\",Context {cName = \"WikiLinkBoldWithDescription\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkWithDescriptionRules\"), rAttribute = OtherTok, 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 (\"MediaWiki\",\"WikiLinkDescriptionBold\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WikiLinkBoldWithoutDescription\",Context {cName = \"WikiLinkBoldWithoutDescription\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkWithoutDescriptionRules\"), rAttribute = OtherTok, 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 = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WikiLinkDescription\",Context {cName = \"WikiLinkDescription\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkDescriptionRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTextDecorations\"), 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}),(\"WikiLinkDescriptionBold\",Context {cName = \"WikiLinkDescriptionBold\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkDescriptionRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"BoldItalic\")]},Rule {rMatcher = RegExpr (RE {reString = \"<u *>\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"BoldUnderlined\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WikiLinkDescriptionBoldItalic\",Context {cName = \"WikiLinkDescriptionBoldItalic\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkDescriptionRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"<u *>\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"BoldItalicUnderlined\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WikiLinkDescriptionBoldItalicUnderlined\",Context {cName = \"WikiLinkDescriptionBoldItalicUnderlined\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkDescriptionRules\"), 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}),(\"WikiLinkDescriptionBoldUnderlined\",Context {cName = \"WikiLinkDescriptionBoldUnderlined\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkDescriptionRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"BoldUnderlinedItalic\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WikiLinkDescriptionItalic\",Context {cName = \"WikiLinkDescriptionItalic\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkDescriptionRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"'''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"ItalicBold\")]},Rule {rMatcher = RegExpr (RE {reString = \"<u *>\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"ItalicUnderlined\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WikiLinkDescriptionItalicUnderlined\",Context {cName = \"WikiLinkDescriptionItalicUnderlined\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkDescriptionRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"'''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"ItalicUnderlinedBold\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WikiLinkDescriptionRules\",Context {cName = \"WikiLinkDescriptionRules\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindHtmlEntities\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars ']' ']', rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WikiLinkDescriptionUnderlined\",Context {cName = \"WikiLinkDescriptionUnderlined\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkDescriptionRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"'''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"UnderlinedBold\")]},Rule {rMatcher = StringDetect \"''\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"UnderlinedItalic\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WikiLinkItalicUnderlinedWithDescription\",Context {cName = \"WikiLinkItalicUnderlinedWithDescription\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkWithDescriptionRules\"), rAttribute = OtherTok, 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 (\"MediaWiki\",\"WikiLinkDescriptionItalicUnderlined\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WikiLinkItalicUnderlinedWithoutDescription\",Context {cName = \"WikiLinkItalicUnderlinedWithoutDescription\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkWithoutDescriptionRules\"), rAttribute = OtherTok, 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 = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WikiLinkItalicWithDescription\",Context {cName = \"WikiLinkItalicWithDescription\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkWithDescriptionRules\"), rAttribute = OtherTok, 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 (\"MediaWiki\",\"WikiLinkDescriptionItalic\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WikiLinkItalicWithoutDescription\",Context {cName = \"WikiLinkItalicWithoutDescription\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkWithoutDescriptionRules\"), rAttribute = OtherTok, 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 = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WikiLinkUnderlinedWithDescription\",Context {cName = \"WikiLinkUnderlinedWithDescription\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkWithDescriptionRules\"), rAttribute = OtherTok, 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 (\"MediaWiki\",\"WikiLinkDescriptionUnderlined\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WikiLinkUnderlinedWithoutDescription\",Context {cName = \"WikiLinkUnderlinedWithoutDescription\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkWithoutDescriptionRules\"), rAttribute = OtherTok, 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 = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WikiLinkWithDescriptionRules\",Context {cName = \"WikiLinkWithDescriptionRules\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"WikiLinkWithoutDescriptionRules\"), rAttribute = NormalTok, 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 = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WikiLinkWithoutDescriptionRules\",Context {cName = \"WikiLinkWithoutDescriptionRules\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindHtmlEntities\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '[' '[', rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars ']' ']', rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"comment\",Context {cName = \"comment\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = StringDetect \"-->\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"normal\",Context {cName = \"normal\", cSyntax = \"MediaWiki\", cRules = [Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"[=]{5,5}(?!=)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"MediaWiki\",\"Section5\")]},Rule {rMatcher = RegExpr (RE {reString = \"[=]{4,4}(?!=)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"MediaWiki\",\"Section4\")]},Rule {rMatcher = RegExpr (RE {reString = \"[=]{3,3}(?!=)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"MediaWiki\",\"Section3\")]},Rule {rMatcher = RegExpr (RE {reString = \"[=]{2,2}(?!=)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"MediaWiki\",\"Section2\")]},Rule {rMatcher = RegExpr (RE {reString = \"[~]{3,4}\", 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 = Just 0, rContextSwitch = [Push (\"MediaWiki\",\"DefinitionListHeader\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindListItem\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindUrl\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTextDecorations\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTable\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"{{{\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"TemplateParameter\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindTemplate\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindWikiLink\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindHtmlEntities\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<nowiki>\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"NoWiki\")]},Rule {rMatcher = StringDetect \"<pre>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MediaWiki\",\"Pre\")]},Rule {rMatcher = IncludeRules (\"MediaWiki\",\"FindSyntaxHighlightingHtmlElement\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[<][^>]+[>]\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\s]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"MediaWiki\",\"Unformatted\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"\", sVersion = \"3\", sLicense = \"FDL\", sExtensions = [\"*.mediawiki\"], sStartingContext = \"normal\"}"
diff --git a/src/Skylighting/Syntax/Metafont.hs b/src/Skylighting/Syntax/Metafont.hs
--- a/src/Skylighting/Syntax/Metafont.hs
+++ b/src/Skylighting/Syntax/Metafont.hs
@@ -2,1921 +2,6 @@
 module Skylighting.Syntax.Metafont (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Metapost/Metafont"
-  , sFilename = "metafont.xml"
-  , sShortname = "Metafont"
-  , sContexts =
-      fromList
-        [ ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "Metapost/Metafont"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(FIXME|TODO):?"
-                              , reCompiled = Just (compileRegex True "(FIXME|TODO):?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ContrSeq"
-          , Context
-              { cName = "ContrSeq"
-              , cSyntax = "Metapost/Metafont"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "verb*"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Metapost/Metafont" , "Verb" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "verb(?=[^a-zA-Z])"
-                              , reCompiled = Just (compileRegex True "verb(?=[^a-zA-Z])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Metapost/Metafont" , "Verb" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z]+(\\+?|\\*{0,3})"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z]+(\\+?|\\*{0,3})")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "[^a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "MathContrSeq"
-          , Context
-              { cName = "MathContrSeq"
-              , cSyntax = "Metapost/Metafont"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z]+\\*?"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z]+\\*?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^a-zA-Z]"
-                              , reCompiled = Just (compileRegex True "[^a-zA-Z]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "MathMode"
-          , Context
-              { cName = "MathMode"
-              , cSyntax = "Metapost/Metafont"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "$$"
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Metapost/Metafont" , "MathContrSeq" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ']'
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal Text"
-          , Context
-              { cName = "Normal Text"
-              , cSyntax = "Metapost/Metafont"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "and"
-                               , "charexists"
-                               , "false"
-                               , "known"
-                               , "not"
-                               , "odd"
-                               , "or"
-                               , "true"
-                               , "unknown"
-                               ])
-                      , rAttribute = KeywordTok
-                      , 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
-                               [ "abs"
-                               , "angle"
-                               , "ASCII"
-                               , "ceiling"
-                               , "cosd"
-                               , "directiontime"
-                               , "div"
-                               , "dotprod"
-                               , "floor"
-                               , "hex"
-                               , "length"
-                               , "max"
-                               , "mexp"
-                               , "min"
-                               , "mlog"
-                               , "mod"
-                               , "normaldeviate"
-                               , "oct"
-                               , "sind"
-                               , "sqrt"
-                               , "totalweight"
-                               , "turningnumber"
-                               , "uniformdeviate"
-                               , "xpart"
-                               , "xxpart"
-                               , "xypart"
-                               , "ypart"
-                               , "yxpart"
-                               , "yypart"
-                               ])
-                      , rAttribute = FunctionTok
-                      , 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
-                               [ "autorounding"
-                               , "boundarychar"
-                               , "charcode"
-                               , "chardp"
-                               , "chardx"
-                               , "chardy"
-                               , "charext"
-                               , "charht"
-                               , "charic"
-                               , "charwd"
-                               , "day"
-                               , "designsize"
-                               , "fillin"
-                               , "fontmaking"
-                               , "granularity"
-                               , "hppp"
-                               , "month"
-                               , "pausing"
-                               , "proofing"
-                               , "showstopping"
-                               , "smoothing"
-                               , "time"
-                               , "tracingcapsules"
-                               , "tracingchoices"
-                               , "tracingcommands"
-                               , "tracingedges"
-                               , "tracingequations"
-                               , "tracingmacros"
-                               , "tracingonline"
-                               , "tracingoutput"
-                               , "tracingpens"
-                               , "tracingrestores"
-                               , "tracingspecs"
-                               , "tracingstats"
-                               , "tracingtitles"
-                               , "turningcheck"
-                               , "vppp"
-                               , "warningcheck"
-                               , "xoffset"
-                               , "year"
-                               , "yoffset"
-                               ])
-                      , rAttribute = NormalTok
-                      , 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
-                               [ "of"
-                               , "penoffset"
-                               , "point"
-                               , "postcontrol"
-                               , "precontrol"
-                               , "rotated"
-                               , "scaled"
-                               , "shifted"
-                               , "slanted"
-                               , "transformed"
-                               , "xscaled"
-                               , "yscaled"
-                               , "zscaled"
-                               ])
-                      , rAttribute = NormalTok
-                      , 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
-                               [ "atleast"
-                               , "controls"
-                               , "curl"
-                               , "cycle"
-                               , "makepath"
-                               , "reverse"
-                               , "subpath"
-                               , "tension"
-                               ])
-                      , rAttribute = NormalTok
-                      , 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 [ "makepen" , "nullpen" , "pencircle" ])
-                      , rAttribute = NormalTok
-                      , 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 [ "nullpicture" ])
-                      , rAttribute = NormalTok
-                      , 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
-                               [ "char"
-                               , "decimal"
-                               , "jobname"
-                               , "readstring"
-                               , "str"
-                               , "substring"
-                               ])
-                      , rAttribute = NormalTok
-                      , 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
-                               [ "addto"
-                               , "also"
-                               , "at"
-                               , "batchmode"
-                               , "contour"
-                               , "cull"
-                               , "delimiters"
-                               , "display"
-                               , "doublepath"
-                               , "dropping"
-                               , "dump"
-                               , "end"
-                               , "errhelp"
-                               , "errmessage"
-                               , "errorstopmode"
-                               , "everyjob"
-                               , "from"
-                               , "interim"
-                               , "inwindow"
-                               , "keeping"
-                               , "let"
-                               , "message"
-                               , "newinternal"
-                               , "nonstopmode"
-                               , "numspecial"
-                               , "openwindow"
-                               , "outer"
-                               , "randomseed"
-                               , "save"
-                               , "scrollmode"
-                               , "shipout"
-                               , "show"
-                               , "showdependencies"
-                               , "showstats"
-                               , "showtoken"
-                               , "showvariable"
-                               , "special"
-                               , "to"
-                               , "withpen"
-                               , "withweight"
-                               ])
-                      , rAttribute = NormalTok
-                      , 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
-                               [ "boolean"
-                               , "numeric"
-                               , "pair"
-                               , "path"
-                               , "pen"
-                               , "picture"
-                               , "string"
-                               , "transform"
-                               ])
-                      , 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 True [])
-                      , rAttribute = NormalTok
-                      , 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
-                               [ "expr"
-                               , "primary"
-                               , "primarydef"
-                               , "secondary"
-                               , "secondarydef"
-                               , "suffix"
-                               , "tertiary"
-                               , "tertiarydef"
-                               , "text"
-                               ])
-                      , rAttribute = NormalTok
-                      , 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 [ "else" , "elseif" , "exitif" , "step" , "until" , "upto" ])
-                      , rAttribute = KeywordTok
-                      , 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
-                               [ "charlist"
-                               , "endinput"
-                               , "expandafter"
-                               , "extensible"
-                               , "fontdimen"
-                               , "headerbyte"
-                               , "inner"
-                               , "input"
-                               , "intersectiontimes"
-                               , "kern"
-                               , "ligtable"
-                               , "quote"
-                               , "scantokens"
-                               , "skipto"
-                               ])
-                      , rAttribute = NormalTok
-                      , 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
-                               [ "addto_currentpicture"
-                               , "aspect_ratio"
-                               , "base_name"
-                               , "base_version"
-                               , "blacker"
-                               , "blankpicture"
-                               , "bot"
-                               , "bye"
-                               , "byte"
-                               , "capsule_def"
-                               , "change_width"
-                               , "clear_pen_memory"
-                               , "clearit"
-                               , "clearpen"
-                               , "clearxy"
-                               , "counterclockwise"
-                               , "culldraw"
-                               , "cullit"
-                               , "currentpen"
-                               , "currentpen_path"
-                               , "currentpicture"
-                               , "currenttransform"
-                               , "currentwindow"
-                               , "cutdraw"
-                               , "cutoff"
-                               , "d"
-                               , "decr"
-                               , "define_blacker_pixels"
-                               , "define_corrected_pixels"
-                               , "define_good_x_pixels"
-                               , "define_good_y_pixels"
-                               , "define_horizontal_corrected_pixels"
-                               , "define_pixels"
-                               , "define_whole_blacker_pixels"
-                               , "define_whole_pixels"
-                               , "define_whole_vertical_blacker_pixels"
-                               , "define_whole_vertical_pixels"
-                               , "dir"
-                               , "direction"
-                               , "directionpoint"
-                               , "displaying"
-                               , "ditto"
-                               , "down"
-                               , "downto"
-                               , "draw"
-                               , "drawdot"
-                               , "eps"
-                               , "epsilon"
-                               , "erase"
-                               , "exitunless"
-                               , "extra_setup"
-                               , "fill"
-                               , "filldraw"
-                               , "fix_units"
-                               , "flex"
-                               , "font_coding_scheme"
-                               , "font_extra_space"
-                               , "font_identifier"
-                               , "font_normal_shrink"
-                               , "font_normal_space"
-                               , "font_normal_stretch"
-                               , "font_quad"
-                               , "font_setup"
-                               , "font_size"
-                               , "font_slant"
-                               , "font_x_height"
-                               , "fullcircle"
-                               , "generate"
-                               , "gfcorners"
-                               , "gobble"
-                               , "gobbled"
-                               , "grayfont"
-                               , "h"
-                               , "halfcircle"
-                               , "hide"
-                               , "hround"
-                               , "identity"
-                               , "image_rules"
-                               , "incr"
-                               , "infinity"
-                               , "interact"
-                               , "interpath"
-                               , "intersectionpoint"
-                               , "inverse"
-                               , "italcorr"
-                               , "join_radius"
-                               , "killtext"
-                               , "labelfont"
-                               , "labels"
-                               , "left"
-                               , "lft"
-                               , "localfont"
-                               , "loggingall"
-                               , "lowres"
-                               , "lowres_fix"
-                               , "mag"
-                               , "magstep"
-                               , "makebox"
-                               , "makegrid"
-                               , "makelabel"
-                               , "maketicks"
-                               , "mode"
-                               , "mode_def"
-                               , "mode_name"
-                               , "mode_setup"
-                               , "nodisplays"
-                               , "notransforms"
-                               , "number_of_modes"
-                               , "numtok"
-                               , "o_correction"
-                               , "openit"
-                               , "origin"
-                               , "pen_bot"
-                               , "pen_lft"
-                               , "pen_rt"
-                               , "pen_top"
-                               , "penlabels"
-                               , "penpos"
-                               , "penrazor"
-                               , "penspeck"
-                               , "pensquare"
-                               , "penstroke"
-                               , "pickup"
-                               , "pixels_per_inch"
-                               , "proof"
-                               , "proofoffset"
-                               , "proofrule"
-                               , "proofrulethickness"
-                               , "quartercircle"
-                               , "range"
-                               , "reflectedabout"
-                               , "relax"
-                               , "right"
-                               , "rotatedabout"
-                               , "rotatedaround"
-                               , "round"
-                               , "rt"
-                               , "rulepen"
-                               , "savepen"
-                               , "screen_cols"
-                               , "screen_rows"
-                               , "screenchars"
-                               , "screenrule"
-                               , "screenstrokes"
-                               , "shipit"
-                               , "showit"
-                               , "slantfont"
-                               , "smode"
-                               , "smoke"
-                               , "softjoin"
-                               , "solve"
-                               , "stop"
-                               , "superellipse"
-                               , "takepower"
-                               , "tensepath"
-                               , "titlefont"
-                               , "tolerance"
-                               , "top"
-                               , "tracingall"
-                               , "tracingnone"
-                               , "undraw"
-                               , "undrawdot"
-                               , "unfill"
-                               , "unfilldraw"
-                               , "unitpixel"
-                               , "unitsquare"
-                               , "unitvector"
-                               , "up"
-                               , "upto"
-                               , "vround"
-                               , "w"
-                               , "whatever"
-                               ])
-                      , rAttribute = KeywordTok
-                      , 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
-                               [ "bluepart"
-                               , "clip"
-                               , "color"
-                               , "dashed"
-                               , "fontsize"
-                               , "greenpart"
-                               , "infont"
-                               , "linecap"
-                               , "linejoin"
-                               , "llcorner"
-                               , "lrcorner"
-                               , "miterlimit"
-                               , "mpxbreak"
-                               , "prologues"
-                               , "redpart"
-                               , "setbounds"
-                               , "tracinglostchars"
-                               , "truecorners"
-                               , "ulcorner"
-                               , "urcorner"
-                               , "withcolor"
-                               ])
-                      , rAttribute = NormalTok
-                      , 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
-                               [ "ahangle"
-                               , "ahlength"
-                               , "arrowhead"
-                               , "background"
-                               , "base_name"
-                               , "base_version"
-                               , "bbox"
-                               , "bboxmargin"
-                               , "beveled"
-                               , "black"
-                               , "blacker"
-                               , "blankpicture"
-                               , "blue"
-                               , "bot"
-                               , "boxit"
-                               , "boxjoin"
-                               , "bpath"
-                               , "buildcycle"
-                               , "butt"
-                               , "bye"
-                               , "byte"
-                               , "capsule_def"
-                               , "center"
-                               , "change_width"
-                               , "circleit"
-                               , "circmargin"
-                               , "clear_pen_memory"
-                               , "clearit"
-                               , "clearpen"
-                               , "clearxy"
-                               , "counterclockwise"
-                               , "cullit"
-                               , "currentpen"
-                               , "currentpen_path"
-                               , "currentpicture"
-                               , "currenttransform"
-                               , "cutafter"
-                               , "cutbefore"
-                               , "cutdraw"
-                               , "cuttings"
-                               , "dashpattern"
-                               , "decr"
-                               , "defaultdx"
-                               , "defaultdy"
-                               , "defaultfont"
-                               , "defaultpen"
-                               , "defaultscale"
-                               , "define_blacker_pixels"
-                               , "define_corrected_pixels"
-                               , "define_good_x_pixels"
-                               , "define_good_y_pixels"
-                               , "define_horizontal_corrected_pixels"
-                               , "define_pixels"
-                               , "define_whole_blacker_pixels"
-                               , "define_whole_vertical_blacker_pixels"
-                               , "define_whole_vertical_pixels"
-                               , "dir"
-                               , "direction"
-                               , "directionpoint"
-                               , "ditto"
-                               , "dotlabel"
-                               , "dotlabels"
-                               , "down"
-                               , "downto"
-                               , "draw"
-                               , "drawarrow"
-                               , "drawboxed"
-                               , "drawboxes"
-                               , "drawdblarrow"
-                               , "drawdot"
-                               , "drawoptions"
-                               , "drawunboxed"
-                               , "EOF"
-                               , "eps"
-                               , "epsilon"
-                               , "erase"
-                               , "evenly"
-                               , "exitunless"
-                               , "extra_setup"
-                               , "fill"
-                               , "filldraw"
-                               , "fixpos"
-                               , "fixsize"
-                               , "flex"
-                               , "font_coding_scheme"
-                               , "font_extra_space"
-                               , "font_identifier"
-                               , "font_normal_shrink"
-                               , "font_normal_space"
-                               , "font_normal_stretch"
-                               , "font_quad"
-                               , "font_size"
-                               , "font_slant"
-                               , "font_x_height"
-                               , "fullcircle"
-                               , "gfcorners"
-                               , "gobble"
-                               , "gobbled"
-                               , "grayfont"
-                               , "green"
-                               , "halfcircle"
-                               , "hide"
-                               , "hround"
-                               , "identity"
-                               , "image"
-                               , "imagerules"
-                               , "incr"
-                               , "infinity"
-                               , "interact"
-                               , "interpath"
-                               , "intersectionpoint"
-                               , "inverse"
-                               , "italcorr"
-                               , "label"
-                               , "labelfont"
-                               , "labeloffset"
-                               , "labels"
-                               , "left"
-                               , "lft"
-                               , "llft"
-                               , "loggingall"
-                               , "lowres_fix"
-                               , "lrt"
-                               , "magstep"
-                               , "makebox"
-                               , "makegrid"
-                               , "makelabel"
-                               , "maketicks"
-                               , "mitered"
-                               , "mode_def"
-                               , "mode_setup"
-                               , "nodisplays"
-                               , "notransforms"
-                               , "numeric_pickup"
-                               , "numtok"
-                               , "o_correction"
-                               , "openit"
-                               , "origin"
-                               , "pen_bot"
-                               , "pen_lft"
-                               , "pen_rt"
-                               , "pen_top"
-                               , "penlabel"
-                               , "penpos"
-                               , "penrazor"
-                               , "penspeck"
-                               , "pensquare"
-                               , "penstroke"
-                               , "pic"
-                               , "pickup"
-                               , "proofoffset"
-                               , "proofrule"
-                               , "proofrulethickness"
-                               , "quartercircle"
-                               , "range"
-                               , "red"
-                               , "reflectedabout"
-                               , "relax"
-                               , "right"
-                               , "rotatedabout"
-                               , "rotatedaround"
-                               , "round"
-                               , "rounded"
-                               , "rt"
-                               , "rulepen"
-                               , "savepen"
-                               , "screenchars"
-                               , "screenrule"
-                               , "screenstrokes"
-                               , "shipit"
-                               , "showit"
-                               , "slantfont"
-                               , "smode"
-                               , "softjoin"
-                               , "solve"
-                               , "squared"
-                               , "stop"
-                               , "superellipse"
-                               , "takepower"
-                               , "tensepath"
-                               , "thelabel"
-                               , "thru"
-                               , "titlefont"
-                               , "top"
-                               , "tracingall"
-                               , "tracingnone"
-                               , "ulft"
-                               , "undraw"
-                               , "undrawdot"
-                               , "unfill"
-                               , "unfilldraw"
-                               , "unitpixel"
-                               , "unitsquare"
-                               , "unitvector"
-                               , "up"
-                               , "upto"
-                               , "urt"
-                               , "vround"
-                               , "whatever"
-                               , "white"
-                               , "withdots"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Metapost/Metafont" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Metapost/Metafont" , "string" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\+|\\-|\\*|\\/|\\=|\\:\\=)"
-                              , reCompiled =
-                                  Just (compileRegex True "(\\+|\\-|\\*|\\/|\\=|\\:\\=)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '.' '.'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(bp|cc|cm|dd|in|mm|pc|pt)\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b(bp|cc|cm|dd|in|mm|pc|pt)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b-?\\d+(bp|cc|cm|dd|in|mm|pc|pt)#?\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b-?\\d+(bp|cc|cm|dd|in|mm|pc|pt)#?\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b-?\\.\\d+(bp|cc|cm|dd|in|mm|pc|pt)#?\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "\\b-?\\.\\d+(bp|cc|cm|dd|in|mm|pc|pt)#?\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b-?\\d+\\.\\d+(bp|cc|cm|dd|in|mm|pc|pt)#?\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\b-?\\d+\\.\\d+(bp|cc|cm|dd|in|mm|pc|pt)#?\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[xy]\\d(\\w|\\')*"
-                              , reCompiled = Just (compileRegex True "\\b[xy]\\d(\\w|\\')*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bz\\d(\\w|\\')*"
-                              , reCompiled = Just (compileRegex True "\\bz\\d(\\w|\\')*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bp\\d(\\w|\\')*"
-                              , reCompiled = Just (compileRegex True "\\bp\\d(\\w|\\')*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(verbatimtex|btex)\\b"
-                              , reCompiled = Just (compileRegex False "\\b(verbatimtex|btex)\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Metapost/Metafont" , "TeXMode" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bbegin(group|fig|char)\\b"
-                              , reCompiled =
-                                  Just (compileRegex False "\\bbegin(group|fig|char)\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bend(group|fig|char)\\b"
-                              , reCompiled =
-                                  Just (compileRegex False "\\bend(group|fig|char)\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bextra_begin(group|fig|char)\\b"
-                              , reCompiled =
-                                  Just (compileRegex False "\\bextra_begin(group|fig|char)\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bextra_end(group|fig|char)\\b"
-                              , reCompiled =
-                                  Just (compileRegex False "\\bextra_end(group|fig|char)\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(def|vardef)\\b"
-                              , reCompiled = Just (compileRegex False "\\b(def|vardef)\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\benddef\\b"
-                              , reCompiled = Just (compileRegex False "\\benddef\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bif\\b"
-                              , reCompiled = Just (compileRegex False "\\bif\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bfi\\b"
-                              , reCompiled = Just (compileRegex False "\\bfi\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(for|forsuffixes|forever)\\b"
-                              , reCompiled =
-                                  Just (compileRegex False "\\b(for|forsuffixes|forever)\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bendfor\\b"
-                              , reCompiled = Just (compileRegex False "\\bendfor\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "TeXMode"
-          , Context
-              { cName = "TeXMode"
-              , cSyntax = "Metapost/Metafont"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Metapost/Metafont" , "ContrSeq" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Metapost/Metafont" , "MathMode" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\\("
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Metapost/Metafont" , "MathMode" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\betex\\b"
-                              , reCompiled = Just (compileRegex False "\\betex\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ToEndOfLine"
-          , Context
-              { cName = "ToEndOfLine"
-              , cSyntax = "Metapost/Metafont"
-              , cRules = []
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Verb"
-          , Context
-              { cName = "Verb"
-              , cSyntax = "Metapost/Metafont"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(.)"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Metapost/Metafont" , "VerbEnd" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "VerbEnd"
-          , Context
-              { cName = "VerbEnd"
-              , cSyntax = "Metapost/Metafont"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "%1"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\215'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^%1\\xd7]*"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "string"
-          , Context
-              { cName = "string"
-              , cSyntax = "Metapost/Metafont"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Yedvilun (yedvilun@gmail.com)"
-  , sVersion = "1"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.mp" , "*.mps" , "*.mpost" , "*.mf" ]
-  , sStartingContext = "Normal Text"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Metapost/Metafont\", sFilename = \"metafont.xml\", sShortname = \"Metafont\", sContexts = fromList [(\"Comment\",Context {cName = \"Comment\", cSyntax = \"Metapost/Metafont\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(FIXME|TODO):?\", reCaseSensitive = True}), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\215', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ContrSeq\",Context {cName = \"ContrSeq\", cSyntax = \"Metapost/Metafont\", cRules = [Rule {rMatcher = StringDetect \"verb*\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Metapost/Metafont\",\"Verb\")]},Rule {rMatcher = RegExpr (RE {reString = \"verb(?=[^a-zA-Z])\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Metapost/Metafont\",\"Verb\")]},Rule {rMatcher = DetectChar '\\215', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z]+(\\\\+?|\\\\*{0,3})\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[^a-zA-Z]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"MathContrSeq\",Context {cName = \"MathContrSeq\", cSyntax = \"Metapost/Metafont\", cRules = [Rule {rMatcher = DetectChar '\\215', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z]+\\\\*?\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[^a-zA-Z]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"MathMode\",Context {cName = \"MathMode\", cSyntax = \"Metapost/Metafont\", cRules = [Rule {rMatcher = StringDetect \"$$\", rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\\\', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Metapost/Metafont\",\"MathContrSeq\")]},Rule {rMatcher = DetectChar '$', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '\\\\' ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '\\\\' ']', rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal Text\",Context {cName = \"Normal Text\", cSyntax = \"Metapost/Metafont\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"and\",\"charexists\",\"false\",\"known\",\"not\",\"odd\",\"or\",\"true\",\"unknown\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"abs\",\"angle\",\"ASCII\",\"ceiling\",\"cosd\",\"directiontime\",\"div\",\"dotprod\",\"floor\",\"hex\",\"length\",\"max\",\"mexp\",\"min\",\"mlog\",\"mod\",\"normaldeviate\",\"oct\",\"sind\",\"sqrt\",\"totalweight\",\"turningnumber\",\"uniformdeviate\",\"xpart\",\"xxpart\",\"xypart\",\"ypart\",\"yxpart\",\"yypart\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"autorounding\",\"boundarychar\",\"charcode\",\"chardp\",\"chardx\",\"chardy\",\"charext\",\"charht\",\"charic\",\"charwd\",\"day\",\"designsize\",\"fillin\",\"fontmaking\",\"granularity\",\"hppp\",\"month\",\"pausing\",\"proofing\",\"showstopping\",\"smoothing\",\"time\",\"tracingcapsules\",\"tracingchoices\",\"tracingcommands\",\"tracingedges\",\"tracingequations\",\"tracingmacros\",\"tracingonline\",\"tracingoutput\",\"tracingpens\",\"tracingrestores\",\"tracingspecs\",\"tracingstats\",\"tracingtitles\",\"turningcheck\",\"vppp\",\"warningcheck\",\"xoffset\",\"year\",\"yoffset\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"of\",\"penoffset\",\"point\",\"postcontrol\",\"precontrol\",\"rotated\",\"scaled\",\"shifted\",\"slanted\",\"transformed\",\"xscaled\",\"yscaled\",\"zscaled\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"atleast\",\"controls\",\"curl\",\"cycle\",\"makepath\",\"reverse\",\"subpath\",\"tension\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"makepen\",\"nullpen\",\"pencircle\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"nullpicture\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"char\",\"decimal\",\"jobname\",\"readstring\",\"str\",\"substring\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"addto\",\"also\",\"at\",\"batchmode\",\"contour\",\"cull\",\"delimiters\",\"display\",\"doublepath\",\"dropping\",\"dump\",\"end\",\"errhelp\",\"errmessage\",\"errorstopmode\",\"everyjob\",\"from\",\"interim\",\"inwindow\",\"keeping\",\"let\",\"message\",\"newinternal\",\"nonstopmode\",\"numspecial\",\"openwindow\",\"outer\",\"randomseed\",\"save\",\"scrollmode\",\"shipout\",\"show\",\"showdependencies\",\"showstats\",\"showtoken\",\"showvariable\",\"special\",\"to\",\"withpen\",\"withweight\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"boolean\",\"numeric\",\"pair\",\"path\",\"pen\",\"picture\",\"string\",\"transform\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"expr\",\"primary\",\"primarydef\",\"secondary\",\"secondarydef\",\"suffix\",\"tertiary\",\"tertiarydef\",\"text\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"else\",\"elseif\",\"exitif\",\"step\",\"until\",\"upto\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"charlist\",\"endinput\",\"expandafter\",\"extensible\",\"fontdimen\",\"headerbyte\",\"inner\",\"input\",\"intersectiontimes\",\"kern\",\"ligtable\",\"quote\",\"scantokens\",\"skipto\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"addto_currentpicture\",\"aspect_ratio\",\"base_name\",\"base_version\",\"blacker\",\"blankpicture\",\"bot\",\"bye\",\"byte\",\"capsule_def\",\"change_width\",\"clear_pen_memory\",\"clearit\",\"clearpen\",\"clearxy\",\"counterclockwise\",\"culldraw\",\"cullit\",\"currentpen\",\"currentpen_path\",\"currentpicture\",\"currenttransform\",\"currentwindow\",\"cutdraw\",\"cutoff\",\"d\",\"decr\",\"define_blacker_pixels\",\"define_corrected_pixels\",\"define_good_x_pixels\",\"define_good_y_pixels\",\"define_horizontal_corrected_pixels\",\"define_pixels\",\"define_whole_blacker_pixels\",\"define_whole_pixels\",\"define_whole_vertical_blacker_pixels\",\"define_whole_vertical_pixels\",\"dir\",\"direction\",\"directionpoint\",\"displaying\",\"ditto\",\"down\",\"downto\",\"draw\",\"drawdot\",\"eps\",\"epsilon\",\"erase\",\"exitunless\",\"extra_setup\",\"fill\",\"filldraw\",\"fix_units\",\"flex\",\"font_coding_scheme\",\"font_extra_space\",\"font_identifier\",\"font_normal_shrink\",\"font_normal_space\",\"font_normal_stretch\",\"font_quad\",\"font_setup\",\"font_size\",\"font_slant\",\"font_x_height\",\"fullcircle\",\"generate\",\"gfcorners\",\"gobble\",\"gobbled\",\"grayfont\",\"h\",\"halfcircle\",\"hide\",\"hround\",\"identity\",\"image_rules\",\"incr\",\"infinity\",\"interact\",\"interpath\",\"intersectionpoint\",\"inverse\",\"italcorr\",\"join_radius\",\"killtext\",\"labelfont\",\"labels\",\"left\",\"lft\",\"localfont\",\"loggingall\",\"lowres\",\"lowres_fix\",\"mag\",\"magstep\",\"makebox\",\"makegrid\",\"makelabel\",\"maketicks\",\"mode\",\"mode_def\",\"mode_name\",\"mode_setup\",\"nodisplays\",\"notransforms\",\"number_of_modes\",\"numtok\",\"o_correction\",\"openit\",\"origin\",\"pen_bot\",\"pen_lft\",\"pen_rt\",\"pen_top\",\"penlabels\",\"penpos\",\"penrazor\",\"penspeck\",\"pensquare\",\"penstroke\",\"pickup\",\"pixels_per_inch\",\"proof\",\"proofoffset\",\"proofrule\",\"proofrulethickness\",\"quartercircle\",\"range\",\"reflectedabout\",\"relax\",\"right\",\"rotatedabout\",\"rotatedaround\",\"round\",\"rt\",\"rulepen\",\"savepen\",\"screen_cols\",\"screen_rows\",\"screenchars\",\"screenrule\",\"screenstrokes\",\"shipit\",\"showit\",\"slantfont\",\"smode\",\"smoke\",\"softjoin\",\"solve\",\"stop\",\"superellipse\",\"takepower\",\"tensepath\",\"titlefont\",\"tolerance\",\"top\",\"tracingall\",\"tracingnone\",\"undraw\",\"undrawdot\",\"unfill\",\"unfilldraw\",\"unitpixel\",\"unitsquare\",\"unitvector\",\"up\",\"upto\",\"vround\",\"w\",\"whatever\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"bluepart\",\"clip\",\"color\",\"dashed\",\"fontsize\",\"greenpart\",\"infont\",\"linecap\",\"linejoin\",\"llcorner\",\"lrcorner\",\"miterlimit\",\"mpxbreak\",\"prologues\",\"redpart\",\"setbounds\",\"tracinglostchars\",\"truecorners\",\"ulcorner\",\"urcorner\",\"withcolor\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"ahangle\",\"ahlength\",\"arrowhead\",\"background\",\"base_name\",\"base_version\",\"bbox\",\"bboxmargin\",\"beveled\",\"black\",\"blacker\",\"blankpicture\",\"blue\",\"bot\",\"boxit\",\"boxjoin\",\"bpath\",\"buildcycle\",\"butt\",\"bye\",\"byte\",\"capsule_def\",\"center\",\"change_width\",\"circleit\",\"circmargin\",\"clear_pen_memory\",\"clearit\",\"clearpen\",\"clearxy\",\"counterclockwise\",\"cullit\",\"currentpen\",\"currentpen_path\",\"currentpicture\",\"currenttransform\",\"cutafter\",\"cutbefore\",\"cutdraw\",\"cuttings\",\"dashpattern\",\"decr\",\"defaultdx\",\"defaultdy\",\"defaultfont\",\"defaultpen\",\"defaultscale\",\"define_blacker_pixels\",\"define_corrected_pixels\",\"define_good_x_pixels\",\"define_good_y_pixels\",\"define_horizontal_corrected_pixels\",\"define_pixels\",\"define_whole_blacker_pixels\",\"define_whole_vertical_blacker_pixels\",\"define_whole_vertical_pixels\",\"dir\",\"direction\",\"directionpoint\",\"ditto\",\"dotlabel\",\"dotlabels\",\"down\",\"downto\",\"draw\",\"drawarrow\",\"drawboxed\",\"drawboxes\",\"drawdblarrow\",\"drawdot\",\"drawoptions\",\"drawunboxed\",\"EOF\",\"eps\",\"epsilon\",\"erase\",\"evenly\",\"exitunless\",\"extra_setup\",\"fill\",\"filldraw\",\"fixpos\",\"fixsize\",\"flex\",\"font_coding_scheme\",\"font_extra_space\",\"font_identifier\",\"font_normal_shrink\",\"font_normal_space\",\"font_normal_stretch\",\"font_quad\",\"font_size\",\"font_slant\",\"font_x_height\",\"fullcircle\",\"gfcorners\",\"gobble\",\"gobbled\",\"grayfont\",\"green\",\"halfcircle\",\"hide\",\"hround\",\"identity\",\"image\",\"imagerules\",\"incr\",\"infinity\",\"interact\",\"interpath\",\"intersectionpoint\",\"inverse\",\"italcorr\",\"label\",\"labelfont\",\"labeloffset\",\"labels\",\"left\",\"lft\",\"llft\",\"loggingall\",\"lowres_fix\",\"lrt\",\"magstep\",\"makebox\",\"makegrid\",\"makelabel\",\"maketicks\",\"mitered\",\"mode_def\",\"mode_setup\",\"nodisplays\",\"notransforms\",\"numeric_pickup\",\"numtok\",\"o_correction\",\"openit\",\"origin\",\"pen_bot\",\"pen_lft\",\"pen_rt\",\"pen_top\",\"penlabel\",\"penpos\",\"penrazor\",\"penspeck\",\"pensquare\",\"penstroke\",\"pic\",\"pickup\",\"proofoffset\",\"proofrule\",\"proofrulethickness\",\"quartercircle\",\"range\",\"red\",\"reflectedabout\",\"relax\",\"right\",\"rotatedabout\",\"rotatedaround\",\"round\",\"rounded\",\"rt\",\"rulepen\",\"savepen\",\"screenchars\",\"screenrule\",\"screenstrokes\",\"shipit\",\"showit\",\"slantfont\",\"smode\",\"softjoin\",\"solve\",\"squared\",\"stop\",\"superellipse\",\"takepower\",\"tensepath\",\"thelabel\",\"thru\",\"titlefont\",\"top\",\"tracingall\",\"tracingnone\",\"ulft\",\"undraw\",\"undrawdot\",\"unfill\",\"unfilldraw\",\"unitpixel\",\"unitsquare\",\"unitvector\",\"up\",\"upto\",\"urt\",\"vround\",\"whatever\",\"white\",\"withdots\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '%', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Metapost/Metafont\",\"Comment\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Metapost/Metafont\",\"string\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\+|\\\\-|\\\\*|\\\\/|\\\\=|\\\\:\\\\=)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '.' '.', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(bp|cc|cm|dd|in|mm|pc|pt)\\\\b\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b-?\\\\d+(bp|cc|cm|dd|in|mm|pc|pt)#?\\\\b\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b-?\\\\.\\\\d+(bp|cc|cm|dd|in|mm|pc|pt)#?\\\\b\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b-?\\\\d+\\\\.\\\\d+(bp|cc|cm|dd|in|mm|pc|pt)#?\\\\b\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[xy]\\\\d(\\\\w|\\\\')*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bz\\\\d(\\\\w|\\\\')*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bp\\\\d(\\\\w|\\\\')*\", reCaseSensitive = True}), rAttribute = KeywordTok, 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 = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(verbatimtex|btex)\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Metapost/Metafont\",\"TeXMode\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bbegin(group|fig|char)\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bend(group|fig|char)\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bextra_begin(group|fig|char)\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bextra_end(group|fig|char)\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(def|vardef)\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\benddef\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bif\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bfi\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(for|forsuffixes|forever)\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bendfor\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"TeXMode\",Context {cName = \"TeXMode\", cSyntax = \"Metapost/Metafont\", cRules = [Rule {rMatcher = DetectChar '\\\\', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Metapost/Metafont\",\"ContrSeq\")]},Rule {rMatcher = DetectChar '$', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Metapost/Metafont\",\"MathMode\")]},Rule {rMatcher = StringDetect \"\\\\(\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Metapost/Metafont\",\"MathMode\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\betex\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ToEndOfLine\",Context {cName = \"ToEndOfLine\", cSyntax = \"Metapost/Metafont\", cRules = [], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Verb\",Context {cName = \"Verb\", cSyntax = \"Metapost/Metafont\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(.)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Metapost/Metafont\",\"VerbEnd\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"VerbEnd\",Context {cName = \"VerbEnd\", cSyntax = \"Metapost/Metafont\", cRules = [Rule {rMatcher = StringDetect \"%1\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = DetectChar '\\215', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[^%1\\\\xd7]*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop,Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"string\",Context {cName = \"string\", cSyntax = \"Metapost/Metafont\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Yedvilun (yedvilun@gmail.com)\", sVersion = \"1\", sLicense = \"LGPL\", sExtensions = [\"*.mp\",\"*.mps\",\"*.mpost\",\"*.mf\"], sStartingContext = \"Normal Text\"}"
diff --git a/src/Skylighting/Syntax/Mips.hs b/src/Skylighting/Syntax/Mips.hs
--- a/src/Skylighting/Syntax/Mips.hs
+++ b/src/Skylighting/Syntax/Mips.hs
@@ -2,641 +2,6 @@
 module Skylighting.Syntax.Mips (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "MIPS Assembler"
-  , sFilename = "mips.xml"
-  , sShortname = "Mips"
-  , sContexts =
-      fromList
-        [ ( "normal"
-          , Context
-              { cName = "normal"
-              , cSyntax = "MIPS Assembler"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "abs.d"
-                               , "abs.s"
-                               , "add"
-                               , "add.d"
-                               , "add.s"
-                               , "addi"
-                               , "addiu"
-                               , "addu"
-                               , "and"
-                               , "andi"
-                               , "bc0f"
-                               , "bc0t"
-                               , "bc1f"
-                               , "bc1t"
-                               , "bc2f"
-                               , "bc2t"
-                               , "bc3f"
-                               , "bc3t"
-                               , "beq"
-                               , "bgez"
-                               , "bgezal"
-                               , "bgtz"
-                               , "blez"
-                               , "bltz"
-                               , "bltzal"
-                               , "bne"
-                               , "break"
-                               , "c.eq.d"
-                               , "c.eq.s"
-                               , "c.le.d"
-                               , "c.le.s"
-                               , "c.lt.d"
-                               , "c.lt.s"
-                               , "c.ole.d"
-                               , "c.ole.s"
-                               , "c.olt.d"
-                               , "c.olt.s"
-                               , "c.seq.d"
-                               , "c.seq.s"
-                               , "c.ueq.d"
-                               , "c.ueq.s"
-                               , "c.ule.d"
-                               , "c.ule.s"
-                               , "c.ult.d"
-                               , "c.ult.s"
-                               , "c.un.d"
-                               , "c.un.s"
-                               , "cvt.d.s"
-                               , "cvt.d.w"
-                               , "cvt.s.d"
-                               , "cvt.s.w"
-                               , "cvt.w.d"
-                               , "cvt.w.s"
-                               , "div.d"
-                               , "div.s"
-                               , "j"
-                               , "jal"
-                               , "jalr"
-                               , "jr"
-                               , "lb"
-                               , "lbu"
-                               , "lh"
-                               , "lhu"
-                               , "lui"
-                               , "lw"
-                               , "lwc0"
-                               , "lwc1"
-                               , "lwc2"
-                               , "lwc3"
-                               , "lwl"
-                               , "lwr"
-                               , "mfc0"
-                               , "mfc1"
-                               , "mfc2"
-                               , "mfc3"
-                               , "mfhi"
-                               , "mflo"
-                               , "mtc0"
-                               , "mtc1"
-                               , "mtc2"
-                               , "mtc3"
-                               , "mthi"
-                               , "mtlo"
-                               , "mul.d"
-                               , "mul.s"
-                               , "mult"
-                               , "multu"
-                               , "nor"
-                               , "or"
-                               , "ori"
-                               , "rfe"
-                               , "sb"
-                               , "sh"
-                               , "sll"
-                               , "sllv"
-                               , "slt"
-                               , "slti"
-                               , "sltiu"
-                               , "sra"
-                               , "srav"
-                               , "srl"
-                               , "srlv"
-                               , "sub"
-                               , "sub.d"
-                               , "sub.s"
-                               , "subu"
-                               , "sw"
-                               , "swc0"
-                               , "swc1"
-                               , "swc2"
-                               , "swc3"
-                               , "swcl"
-                               , "swl"
-                               , "swr"
-                               , "syscall"
-                               , "xor"
-                               , "xori"
-                               ])
-                      , rAttribute = KeywordTok
-                      , 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
-                               [ "abs"
-                               , "b"
-                               , "beqz"
-                               , "bge"
-                               , "bgeu"
-                               , "bgt"
-                               , "bgtu"
-                               , "ble"
-                               , "bleu"
-                               , "blt"
-                               , "bltu"
-                               , "bnez"
-                               , "div"
-                               , "divu"
-                               , "l.d"
-                               , "l.s"
-                               , "la"
-                               , "ld"
-                               , "li"
-                               , "li.d"
-                               , "li.s"
-                               , "mfc0.d"
-                               , "mfc1.d"
-                               , "mfc2.d"
-                               , "mfc3.d"
-                               , "mov.d"
-                               , "mov.s"
-                               , "move"
-                               , "mul"
-                               , "mulo"
-                               , "mulou"
-                               , "neg"
-                               , "neg.d"
-                               , "neg.s"
-                               , "negu"
-                               , "nop"
-                               , "not"
-                               , "rem"
-                               , "remu"
-                               , "rol"
-                               , "ror"
-                               , "s.d"
-                               , "s.s"
-                               , "sd"
-                               , "seq"
-                               , "sge"
-                               , "sgeu"
-                               , "sgt"
-                               , "sgtu"
-                               , "sle"
-                               , "sleu"
-                               , "sne"
-                               , "ulh"
-                               , "ulhu"
-                               , "ulw"
-                               , "ush"
-                               , "usw"
-                               ])
-                      , rAttribute = FunctionTok
-                      , 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
-                               [ "$0"
-                               , "$1"
-                               , "$10"
-                               , "$11"
-                               , "$12"
-                               , "$13"
-                               , "$14"
-                               , "$15"
-                               , "$16"
-                               , "$17"
-                               , "$18"
-                               , "$19"
-                               , "$2"
-                               , "$20"
-                               , "$21"
-                               , "$22"
-                               , "$23"
-                               , "$24"
-                               , "$25"
-                               , "$26"
-                               , "$27"
-                               , "$28"
-                               , "$29"
-                               , "$3"
-                               , "$30"
-                               , "$31"
-                               , "$4"
-                               , "$5"
-                               , "$6"
-                               , "$7"
-                               , "$8"
-                               , "$9"
-                               , "$t0"
-                               , "$t1"
-                               , "$t2"
-                               , "$t3"
-                               , "$t4"
-                               , "$t5"
-                               , "$t6"
-                               , "$t7"
-                               , "$t8"
-                               , "$t9"
-                               , "$zero"
-                               ])
-                      , 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
-                               [ "$a0"
-                               , "$a1"
-                               , "$a2"
-                               , "$a3"
-                               , "$at"
-                               , "$fp"
-                               , "$gp"
-                               , "$k0"
-                               , "$k1"
-                               , "$ra"
-                               , "$s0"
-                               , "$s1"
-                               , "$s2"
-                               , "$s3"
-                               , "$s4"
-                               , "$s5"
-                               , "$s6"
-                               , "$s7"
-                               , "$sp"
-                               , "$v0"
-                               , "$v1"
-                               ])
-                      , 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
-                               [ "$f0"
-                               , "$f1"
-                               , "$f10"
-                               , "$f11"
-                               , "$f12"
-                               , "$f13"
-                               , "$f14"
-                               , "$f15"
-                               , "$f16"
-                               , "$f17"
-                               , "$f18"
-                               , "$f19"
-                               , "$f2"
-                               , "$f20"
-                               , "$f21"
-                               , "$f22"
-                               , "$f23"
-                               , "$f24"
-                               , "$f25"
-                               , "$f26"
-                               , "$f27"
-                               , "$f28"
-                               , "$f29"
-                               , "$f3"
-                               , "$f30"
-                               , "$f31"
-                               , "$f4"
-                               , "$f5"
-                               , "$f6"
-                               , "$f7"
-                               , "$f8"
-                               , "$f9"
-                               ])
-                      , rAttribute = FloatTok
-                      , 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 [ ".data" , ".kdata" , ".ktext" , ".text" ])
-                      , rAttribute = KeywordTok
-                      , 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
-                               [ ".align"
-                               , ".ascii"
-                               , ".asciiz"
-                               , ".byte"
-                               , ".double"
-                               , ".extern"
-                               , ".float"
-                               , ".globl"
-                               , ".half"
-                               , ".sdata"
-                               , ".set"
-                               , ".space"
-                               , ".word"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*BEGIN.*$"
-                              , reCompiled = Just (compileRegex True "#\\s*BEGIN.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*END.*$"
-                              , reCompiled = Just (compileRegex True "#\\s*END.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#.*$"
-                              , reCompiled = Just (compileRegex True "#.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , 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 = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MIPS Assembler" , "string" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "string"
-          , Context
-              { cName = "string"
-              , cSyntax = "MIPS Assembler"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\."
-                              , reCompiled = Just (compileRegex True "\\\\.")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Dominik Haumann (dhdev@gmx.de)"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.s" ]
-  , sStartingContext = "normal"
-  }
+syntax = read $! "Syntax {sName = \"MIPS Assembler\", sFilename = \"mips.xml\", sShortname = \"Mips\", sContexts = fromList [(\"normal\",Context {cName = \"normal\", cSyntax = \"MIPS Assembler\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"abs.d\",\"abs.s\",\"add\",\"add.d\",\"add.s\",\"addi\",\"addiu\",\"addu\",\"and\",\"andi\",\"bc0f\",\"bc0t\",\"bc1f\",\"bc1t\",\"bc2f\",\"bc2t\",\"bc3f\",\"bc3t\",\"beq\",\"bgez\",\"bgezal\",\"bgtz\",\"blez\",\"bltz\",\"bltzal\",\"bne\",\"break\",\"c.eq.d\",\"c.eq.s\",\"c.le.d\",\"c.le.s\",\"c.lt.d\",\"c.lt.s\",\"c.ole.d\",\"c.ole.s\",\"c.olt.d\",\"c.olt.s\",\"c.seq.d\",\"c.seq.s\",\"c.ueq.d\",\"c.ueq.s\",\"c.ule.d\",\"c.ule.s\",\"c.ult.d\",\"c.ult.s\",\"c.un.d\",\"c.un.s\",\"cvt.d.s\",\"cvt.d.w\",\"cvt.s.d\",\"cvt.s.w\",\"cvt.w.d\",\"cvt.w.s\",\"div.d\",\"div.s\",\"j\",\"jal\",\"jalr\",\"jr\",\"lb\",\"lbu\",\"lh\",\"lhu\",\"lui\",\"lw\",\"lwc0\",\"lwc1\",\"lwc2\",\"lwc3\",\"lwl\",\"lwr\",\"mfc0\",\"mfc1\",\"mfc2\",\"mfc3\",\"mfhi\",\"mflo\",\"mtc0\",\"mtc1\",\"mtc2\",\"mtc3\",\"mthi\",\"mtlo\",\"mul.d\",\"mul.s\",\"mult\",\"multu\",\"nor\",\"or\",\"ori\",\"rfe\",\"sb\",\"sh\",\"sll\",\"sllv\",\"slt\",\"slti\",\"sltiu\",\"sra\",\"srav\",\"srl\",\"srlv\",\"sub\",\"sub.d\",\"sub.s\",\"subu\",\"sw\",\"swc0\",\"swc1\",\"swc2\",\"swc3\",\"swcl\",\"swl\",\"swr\",\"syscall\",\"xor\",\"xori\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"abs\",\"b\",\"beqz\",\"bge\",\"bgeu\",\"bgt\",\"bgtu\",\"ble\",\"bleu\",\"blt\",\"bltu\",\"bnez\",\"div\",\"divu\",\"l.d\",\"l.s\",\"la\",\"ld\",\"li\",\"li.d\",\"li.s\",\"mfc0.d\",\"mfc1.d\",\"mfc2.d\",\"mfc3.d\",\"mov.d\",\"mov.s\",\"move\",\"mul\",\"mulo\",\"mulou\",\"neg\",\"neg.d\",\"neg.s\",\"negu\",\"nop\",\"not\",\"rem\",\"remu\",\"rol\",\"ror\",\"s.d\",\"s.s\",\"sd\",\"seq\",\"sge\",\"sgeu\",\"sgt\",\"sgtu\",\"sle\",\"sleu\",\"sne\",\"ulh\",\"ulhu\",\"ulw\",\"ush\",\"usw\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"$0\",\"$1\",\"$10\",\"$11\",\"$12\",\"$13\",\"$14\",\"$15\",\"$16\",\"$17\",\"$18\",\"$19\",\"$2\",\"$20\",\"$21\",\"$22\",\"$23\",\"$24\",\"$25\",\"$26\",\"$27\",\"$28\",\"$29\",\"$3\",\"$30\",\"$31\",\"$4\",\"$5\",\"$6\",\"$7\",\"$8\",\"$9\",\"$t0\",\"$t1\",\"$t2\",\"$t3\",\"$t4\",\"$t5\",\"$t6\",\"$t7\",\"$t8\",\"$t9\",\"$zero\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"$a0\",\"$a1\",\"$a2\",\"$a3\",\"$at\",\"$fp\",\"$gp\",\"$k0\",\"$k1\",\"$ra\",\"$s0\",\"$s1\",\"$s2\",\"$s3\",\"$s4\",\"$s5\",\"$s6\",\"$s7\",\"$sp\",\"$v0\",\"$v1\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"$f0\",\"$f1\",\"$f10\",\"$f11\",\"$f12\",\"$f13\",\"$f14\",\"$f15\",\"$f16\",\"$f17\",\"$f18\",\"$f19\",\"$f2\",\"$f20\",\"$f21\",\"$f22\",\"$f23\",\"$f24\",\"$f25\",\"$f26\",\"$f27\",\"$f28\",\"$f29\",\"$f3\",\"$f30\",\"$f31\",\"$f4\",\"$f5\",\"$f6\",\"$f7\",\"$f8\",\"$f9\"])), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\".data\",\".kdata\",\".ktext\",\".text\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\".align\",\".ascii\",\".asciiz\",\".byte\",\".double\",\".extern\",\".float\",\".globl\",\".half\",\".sdata\",\".set\",\".space\",\".word\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*BEGIN.*$\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*END.*$\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#.*$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\w_\\\\.]+:\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MIPS Assembler\",\"string\")]},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"string\",Context {cName = \"string\", cSyntax = \"MIPS Assembler\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Dominik Haumann (dhdev@gmx.de)\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [\"*.s\"], sStartingContext = \"normal\"}"
diff --git a/src/Skylighting/Syntax/Modelines.hs b/src/Skylighting/Syntax/Modelines.hs
--- a/src/Skylighting/Syntax/Modelines.hs
+++ b/src/Skylighting/Syntax/Modelines.hs
@@ -2,565 +2,6 @@
 module Skylighting.Syntax.Modelines (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Modelines"
-  , sFilename = "modelines.xml"
-  , sShortname = "Modelines"
-  , sContexts =
-      fromList
-        [ ( "Booleans"
-          , Context
-              { cName = "Booleans"
-              , cSyntax = "Modelines"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,./;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "1" , "on" , "true" ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,./;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "0" , "false" , "off" ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ';'
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Integrals"
-          , Context
-              { cName = "Integrals"
-              , cSyntax = "Modelines"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ';'
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Modeline"
-          , Context
-              { cName = "Modeline"
-              , cSyntax = "Modelines"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,./;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "auto-brackets"
-                               , "automatic-spell-checking"
-                               , "backspace-indents"
-                               , "block-selection"
-                               , "bom"
-                               , "bookmark-sorting"
-                               , "byte-order-marker"
-                               , "dynamic-word-wrap"
-                               , "folding-markers"
-                               , "folding-preview"
-                               , "icon-border"
-                               , "indent-pasted-text"
-                               , "keep-extra-spaces"
-                               , "line-numbers"
-                               , "newline-at-eof"
-                               , "overwrite-mode"
-                               , "persistent-selection"
-                               , "replace-tabs"
-                               , "replace-tabs-save"
-                               , "replace-trailing-space-save"
-                               , "scrollbar-minimap"
-                               , "scrollbar-preview"
-                               , "show-tabs"
-                               , "show-trailing-spaces"
-                               , "smart-home"
-                               , "space-indent"
-                               , "tab-indents"
-                               , "word-wrap"
-                               , "wrap-cursor"
-                               ])
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Modelines" , "Booleans" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,./;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "auto-center-lines"
-                               , "font-size"
-                               , "indent-mode"
-                               , "indent-width"
-                               , "tab-width"
-                               , "undo-steps"
-                               , "word-wrap-column"
-                               ])
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Modelines" , "Integrals" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,./;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "background-color"
-                               , "bracket-highlight-color"
-                               , "current-line-color"
-                               , "default-dictionary"
-                               , "encoding"
-                               , "end-of-line"
-                               , "eol"
-                               , "font"
-                               , "hl"
-                               , "icon-bar-color"
-                               , "mode"
-                               , "scheme"
-                               , "selection-color"
-                               , "syntax"
-                               , "word-wrap-marker-color"
-                               ])
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Modelines" , "Strings" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,./;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "remove-trailing-spaces" ])
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Modelines" , "RemoveSpaces" ) ]
-                      }
-                  , Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Modelines"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,./;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "kate:" ])
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Modelines" , "Modeline" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "kate-(mimetype|wildcard)\\(.*\\):"
-                              , reCompiled =
-                                  Just (compileRegex True "kate-(mimetype|wildcard)\\(.*\\):")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AnnotationTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Modelines" , "Modeline" ) ]
-                      }
-                  , Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "RemoveSpaces"
-          , Context
-              { cName = "RemoveSpaces"
-              , cSyntax = "Modelines"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,./;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "*"
-                               , "+"
-                               , "-"
-                               , "0"
-                               , "1"
-                               , "2"
-                               , "all"
-                               , "mod"
-                               , "modified"
-                               , "none"
-                               ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ';'
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Strings"
-          , Context
-              { cName = "Strings"
-              , cSyntax = "Modelines"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = DetectChar ';'
-                      , rAttribute = CommentVarTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Alex Turbov (i.zaufi@gmail.com)"
-  , sVersion = "3"
-  , sLicense = "LGPL"
-  , sExtensions = []
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"Modelines\", sFilename = \"modelines.xml\", sShortname = \"Modelines\", sContexts = fromList [(\"Booleans\",Context {cName = \"Booleans\", cSyntax = \"Modelines\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,./;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"1\",\"on\",\"true\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,./;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"0\",\"false\",\"off\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ';', rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = LineContinue, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Integrals\",Context {cName = \"Integrals\", cSyntax = \"Modelines\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ';', rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = LineContinue, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Modeline\",Context {cName = \"Modeline\", cSyntax = \"Modelines\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,./;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"auto-brackets\",\"automatic-spell-checking\",\"backspace-indents\",\"block-selection\",\"bom\",\"bookmark-sorting\",\"byte-order-marker\",\"dynamic-word-wrap\",\"folding-markers\",\"folding-preview\",\"icon-border\",\"indent-pasted-text\",\"keep-extra-spaces\",\"line-numbers\",\"newline-at-eof\",\"overwrite-mode\",\"persistent-selection\",\"replace-tabs\",\"replace-tabs-save\",\"replace-trailing-space-save\",\"scrollbar-minimap\",\"scrollbar-preview\",\"show-tabs\",\"show-trailing-spaces\",\"smart-home\",\"space-indent\",\"tab-indents\",\"word-wrap\",\"wrap-cursor\"])), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Modelines\",\"Booleans\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,./;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"auto-center-lines\",\"font-size\",\"indent-mode\",\"indent-width\",\"tab-width\",\"undo-steps\",\"word-wrap-column\"])), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Modelines\",\"Integrals\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,./;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"background-color\",\"bracket-highlight-color\",\"current-line-color\",\"default-dictionary\",\"encoding\",\"end-of-line\",\"eol\",\"font\",\"hl\",\"icon-bar-color\",\"mode\",\"scheme\",\"selection-color\",\"syntax\",\"word-wrap-marker-color\"])), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Modelines\",\"Strings\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,./;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"remove-trailing-spaces\"])), rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Modelines\",\"RemoveSpaces\")]},Rule {rMatcher = LineContinue, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Modelines\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,./;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"kate:\"])), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Modelines\",\"Modeline\")]},Rule {rMatcher = RegExpr (RE {reString = \"kate-(mimetype|wildcard)\\\\(.*\\\\):\", reCaseSensitive = True}), rAttribute = AnnotationTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Modelines\",\"Modeline\")]},Rule {rMatcher = LineContinue, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"RemoveSpaces\",Context {cName = \"RemoveSpaces\", cSyntax = \"Modelines\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,./;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"*\",\"+\",\"-\",\"0\",\"1\",\"2\",\"all\",\"mod\",\"modified\",\"none\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar ';', rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = LineContinue, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Strings\",Context {cName = \"Strings\", cSyntax = \"Modelines\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[^; ]\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ';', rAttribute = CommentVarTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Alex Turbov (i.zaufi@gmail.com)\", sVersion = \"3\", sLicense = \"LGPL\", sExtensions = [], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Modula2.hs b/src/Skylighting/Syntax/Modula2.hs
--- a/src/Skylighting/Syntax/Modula2.hs
+++ b/src/Skylighting/Syntax/Modula2.hs
@@ -2,426 +2,6 @@
 module Skylighting.Syntax.Modula2 (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Modula-2"
-  , sFilename = "modula-2.xml"
-  , sShortname = "Modula2"
-  , sContexts =
-      fromList
-        [ ( "Comment2"
-          , Context
-              { cName = "Comment2"
-              , cSyntax = "Modula-2"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' ')'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment3"
-          , Context
-              { cName = "Comment3"
-              , cSyntax = "Modula-2"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Modula-2"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ABS"
-                               , "AND"
-                               , "ARRAY"
-                               , "ASM"
-                               , "BEGIN"
-                               , "BITSET"
-                               , "BY"
-                               , "CAP"
-                               , "CASE"
-                               , "CHR"
-                               , "CONST"
-                               , "DEC"
-                               , "DEFINITION"
-                               , "DIV"
-                               , "DO"
-                               , "ELSE"
-                               , "ELSIF"
-                               , "END"
-                               , "EXCL"
-                               , "EXIT"
-                               , "EXPORT"
-                               , "FALSE"
-                               , "FOR"
-                               , "FOREIGN"
-                               , "FROM"
-                               , "HALT"
-                               , "HIGH"
-                               , "IF"
-                               , "IMPLEMENTATION"
-                               , "IMPORT"
-                               , "IN"
-                               , "INC"
-                               , "INCL"
-                               , "IOTRANSFER"
-                               , "LOOP"
-                               , "MAX"
-                               , "MIN"
-                               , "MOD"
-                               , "MODULE"
-                               , "NEWPROCESS"
-                               , "NIL"
-                               , "NOT"
-                               , "ODD"
-                               , "OF"
-                               , "OR"
-                               , "ORD"
-                               , "PROC"
-                               , "PROCEDURE"
-                               , "QUALIFIED"
-                               , "RECORD"
-                               , "REPEAT"
-                               , "RETURN"
-                               , "SET"
-                               , "THEN"
-                               , "TO"
-                               , "TRANSFER"
-                               , "TRUE"
-                               , "TRUNC"
-                               , "TYPE"
-                               , "UNTIL"
-                               , "VAL"
-                               , "VAR"
-                               , "WHILE"
-                               , "WITH"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ALLOCATE"
-                               , "ASSEMBLER"
-                               , "Accessible"
-                               , "Append"
-                               , "Assign"
-                               , "CAPS"
-                               , "Close"
-                               , "Concat"
-                               , "Copy"
-                               , "DEALLOCATE"
-                               , "Delete"
-                               , "Done"
-                               , "EOF"
-                               , "EmptyString"
-                               , "Erase"
-                               , "GetArgs"
-                               , "GetCard"
-                               , "GetChar"
-                               , "GetEnv"
-                               , "GetInt"
-                               , "GetLongReal"
-                               , "GetReal"
-                               , "GetString"
-                               , "Insert"
-                               , "Length"
-                               , "Open"
-                               , "OpenInput"
-                               , "OpenOutput"
-                               , "PutBf"
-                               , "PutCard"
-                               , "PutChar"
-                               , "PutInt"
-                               , "PutLn"
-                               , "PutLongReal"
-                               , "PutReal"
-                               , "PutString"
-                               , "Read"
-                               , "ReadCard"
-                               , "ReadInt"
-                               , "ReadLongReal"
-                               , "ReadReal"
-                               , "ReadString"
-                               , "ResetClock"
-                               , "SIZE"
-                               , "StrEq"
-                               , "SystemTime"
-                               , "UserTime"
-                               , "Write"
-                               , "WriteBf"
-                               , "WriteCard"
-                               , "WriteInt"
-                               , "WriteLn"
-                               , "WriteLongReal"
-                               , "WriteReal"
-                               , "WriteString"
-                               , "compare"
-                               , "pos"
-                               ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ADDRESS"
-                               , "ADR"
-                               , "BOOLEAN"
-                               , "CARDINAL"
-                               , "CHAR"
-                               , "File"
-                               , "INTEGER"
-                               , "LONGINT"
-                               , "LONGREAL"
-                               , "POINTER"
-                               , "REAL"
-                               , "SHORTCARD"
-                               , "SHORTINT"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Modula-2" , "String1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Modula-2" , "String2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "(*$"
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Modula-2" , "Prep1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '(' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Modula-2" , "Comment2" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Prep1"
-          , Context
-              { cName = "Prep1"
-              , cSyntax = "Modula-2"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "$*)"
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Modula-2" , "Prep1" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String1"
-          , Context
-              { cName = "String1"
-              , cSyntax = "Modula-2"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String2"
-          , Context
-              { cName = "String2"
-              , cSyntax = "Modula-2"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = ""
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.mod" , "*.def" , "*.mi" , "*.md" ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"Modula-2\", sFilename = \"modula-2.xml\", sShortname = \"Modula2\", sContexts = fromList [(\"Comment2\",Context {cName = \"Comment2\", cSyntax = \"Modula-2\", cRules = [Rule {rMatcher = Detect2Chars '*' ')', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment3\",Context {cName = \"Comment3\", cSyntax = \"Modula-2\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Modula-2\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"ABS\",\"AND\",\"ARRAY\",\"ASM\",\"BEGIN\",\"BITSET\",\"BY\",\"CAP\",\"CASE\",\"CHR\",\"CONST\",\"DEC\",\"DEFINITION\",\"DIV\",\"DO\",\"ELSE\",\"ELSIF\",\"END\",\"EXCL\",\"EXIT\",\"EXPORT\",\"FALSE\",\"FOR\",\"FOREIGN\",\"FROM\",\"HALT\",\"HIGH\",\"IF\",\"IMPLEMENTATION\",\"IMPORT\",\"IN\",\"INC\",\"INCL\",\"IOTRANSFER\",\"LOOP\",\"MAX\",\"MIN\",\"MOD\",\"MODULE\",\"NEWPROCESS\",\"NIL\",\"NOT\",\"ODD\",\"OF\",\"OR\",\"ORD\",\"PROC\",\"PROCEDURE\",\"QUALIFIED\",\"RECORD\",\"REPEAT\",\"RETURN\",\"SET\",\"THEN\",\"TO\",\"TRANSFER\",\"TRUE\",\"TRUNC\",\"TYPE\",\"UNTIL\",\"VAL\",\"VAR\",\"WHILE\",\"WITH\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"ALLOCATE\",\"ASSEMBLER\",\"Accessible\",\"Append\",\"Assign\",\"CAPS\",\"Close\",\"Concat\",\"Copy\",\"DEALLOCATE\",\"Delete\",\"Done\",\"EOF\",\"EmptyString\",\"Erase\",\"GetArgs\",\"GetCard\",\"GetChar\",\"GetEnv\",\"GetInt\",\"GetLongReal\",\"GetReal\",\"GetString\",\"Insert\",\"Length\",\"Open\",\"OpenInput\",\"OpenOutput\",\"PutBf\",\"PutCard\",\"PutChar\",\"PutInt\",\"PutLn\",\"PutLongReal\",\"PutReal\",\"PutString\",\"Read\",\"ReadCard\",\"ReadInt\",\"ReadLongReal\",\"ReadReal\",\"ReadString\",\"ResetClock\",\"SIZE\",\"StrEq\",\"SystemTime\",\"UserTime\",\"Write\",\"WriteBf\",\"WriteCard\",\"WriteInt\",\"WriteLn\",\"WriteLongReal\",\"WriteReal\",\"WriteString\",\"compare\",\"pos\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"ADDRESS\",\"ADR\",\"BOOLEAN\",\"CARDINAL\",\"CHAR\",\"File\",\"INTEGER\",\"LONGINT\",\"LONGREAL\",\"POINTER\",\"REAL\",\"SHORTCARD\",\"SHORTINT\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Modula-2\",\"String1\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Modula-2\",\"String2\")]},Rule {rMatcher = StringDetect \"(*$\", rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Modula-2\",\"Prep1\")]},Rule {rMatcher = Detect2Chars '(' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Modula-2\",\"Comment2\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Prep1\",Context {cName = \"Prep1\", cSyntax = \"Modula-2\", cRules = [Rule {rMatcher = StringDetect \"$*)\", rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Modula-2\",\"Prep1\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String1\",Context {cName = \"String1\", cSyntax = \"Modula-2\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String2\",Context {cName = \"String2\", cSyntax = \"Modula-2\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.mod\",\"*.def\",\"*.mi\",\"*.md\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Modula3.hs b/src/Skylighting/Syntax/Modula3.hs
--- a/src/Skylighting/Syntax/Modula3.hs
+++ b/src/Skylighting/Syntax/Modula3.hs
@@ -2,664 +2,6 @@
 module Skylighting.Syntax.Modula3 (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Modula-3"
-  , sFilename = "modula-3.xml"
-  , sShortname = "Modula3"
-  , sContexts =
-      fromList
-        [ ( "Comment2"
-          , Context
-              { cName = "Comment2"
-              , cSyntax = "Modula-3"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '(' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Modula-3" , "Comment2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '*' ')'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Modula-3"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "PROCEDURE[\\s].*\\("
-                              , reCompiled = Just (compileRegex True "PROCEDURE[\\s].*\\(")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "END\\s*[A-Za-z][A-Za-z0-9_]*\\;"
-                              , reCompiled =
-                                  Just (compileRegex True "END\\s*[A-Za-z][A-Za-z0-9_]*\\;")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b(RECORD|OBJECT|TRY|WHILE|FOR|REPEAT|LOOP|IF|CASE|WITH)\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\b(RECORD|OBJECT|TRY|WHILE|FOR|REPEAT|LOOP|IF|CASE|WITH)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(END;|END)\\b"
-                              , reCompiled = Just (compileRegex True "\\b(END;|END)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ANY"
-                               , "ARRAY"
-                               , "AS"
-                               , "BEGIN"
-                               , "BITS"
-                               , "BRANDED"
-                               , "BY"
-                               , "CASE"
-                               , "CONST"
-                               , "DO"
-                               , "ELSE"
-                               , "ELSIF"
-                               , "END"
-                               , "EVAL"
-                               , "EXCEPT"
-                               , "EXCEPTION"
-                               , "EXIT"
-                               , "EXPORTS"
-                               , "FINALLY"
-                               , "FOR"
-                               , "FROM"
-                               , "GENERIC"
-                               , "IF"
-                               , "IMPORT"
-                               , "INTERFACE"
-                               , "LOCK"
-                               , "LOOP"
-                               , "METHODS"
-                               , "MODULE"
-                               , "OBJECT"
-                               , "OF"
-                               , "OVERRIDES"
-                               , "PROCEDURE"
-                               , "RAISE"
-                               , "RAISES"
-                               , "READONLY"
-                               , "RECORD"
-                               , "REF"
-                               , "REPEAT"
-                               , "RETURN"
-                               , "REVEAL"
-                               , "ROOT"
-                               , "SET"
-                               , "THEN"
-                               , "TO"
-                               , "TRY"
-                               , "TYPE"
-                               , "TYPECASE"
-                               , "UNSAFE"
-                               , "UNTIL"
-                               , "UNTRACED"
-                               , "VALUE"
-                               , "VAR"
-                               , "WHILE"
-                               , "WITH"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "#"
-                               , "&"
-                               , "("
-                               , ")"
-                               , "*"
-                               , "+"
-                               , ","
-                               , "-"
-                               , "."
-                               , ".."
-                               , "/"
-                               , ":"
-                               , ":="
-                               , ";"
-                               , "<"
-                               , "<:"
-                               , "<="
-                               , "="
-                               , "=>"
-                               , ">"
-                               , ">="
-                               , "AND"
-                               , "DIV"
-                               , "IN"
-                               , "MOD"
-                               , "NOT"
-                               , "OR"
-                               , "["
-                               , "]"
-                               , "^"
-                               , "{"
-                               , "|"
-                               , "}"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ADDRESS"
-                               , "BOOLEAN"
-                               , "CARDINAL"
-                               , "CHAR"
-                               , "EXTENDED"
-                               , "INTEGER"
-                               , "LONGREAL"
-                               , "MUTEX"
-                               , "NULL"
-                               , "REAL"
-                               , "REFANY"
-                               , "T"
-                               , "TEXT"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "FALSE" , "NIL" , "TRUE" ])
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ABS"
-                               , "ADR"
-                               , "ADRSIZE"
-                               , "BITSIZE"
-                               , "BYTESIZE"
-                               , "CEILING"
-                               , "DEC"
-                               , "DISPOSE"
-                               , "FIRST"
-                               , "FLOAT"
-                               , "FLOOR"
-                               , "INC"
-                               , "ISTYPE"
-                               , "LAST"
-                               , "LOOPHOLE"
-                               , "MAX"
-                               , "MIN"
-                               , "NARROW"
-                               , "NEW"
-                               , "NUMBER"
-                               , "ORD"
-                               , "ROUND"
-                               , "SUBARRAY"
-                               , "TRUNC"
-                               , "TYPECODE"
-                               , "VAL"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Env"
-                               , "Env.Count"
-                               , "Env.Get"
-                               , "Env.GetNth"
-                               , "Fmt"
-                               , "Fmt.Bool"
-                               , "Fmt.Char"
-                               , "Fmt.Extended"
-                               , "Fmt.F"
-                               , "Fmt.FN"
-                               , "Fmt.Int"
-                               , "Fmt.LongReal"
-                               , "Fmt.Pad"
-                               , "Fmt.Real"
-                               , "Fmt.Unsigned"
-                               , "IO"
-                               , "IO.EOF"
-                               , "IO.GetChar"
-                               , "IO.GetInt"
-                               , "IO.GetLine"
-                               , "IO.GetReal"
-                               , "IO.GetWideChar"
-                               , "IO.OpenRead"
-                               , "IO.OpenWrite"
-                               , "IO.Put"
-                               , "IO.PutChar"
-                               , "IO.PutInt"
-                               , "IO.PutReal"
-                               , "IO.PutWideChar"
-                               , "Lex"
-                               , "Lex.Bool"
-                               , "Lex.Extended"
-                               , "Lex.Int"
-                               , "Lex.LongReal"
-                               , "Lex.Match"
-                               , "Lex.Real"
-                               , "Lex.Scan"
-                               , "Lex.Skip"
-                               , "Lex.Unsigned"
-                               , "Params"
-                               , "Params.Count"
-                               , "Params.Get"
-                               , "Rd"
-                               , "Rd.CharsReady"
-                               , "Rd.Close"
-                               , "Rd.Closed"
-                               , "Rd.EOF"
-                               , "Rd.GetChar"
-                               , "Rd.GetLine"
-                               , "Rd.GetSub"
-                               , "Rd.GetSubLine"
-                               , "Rd.GetText"
-                               , "Rd.GetWideChar"
-                               , "Rd.GetWideLine"
-                               , "Rd.GetWideSub"
-                               , "Rd.GetWideSubLine"
-                               , "Rd.GetWideText"
-                               , "Rd.Index"
-                               , "Rd.Intermittend"
-                               , "Rd.Length"
-                               , "Rd.Seek"
-                               , "Rd.Seekable"
-                               , "Rd.UnGetChar"
-                               , "Scan"
-                               , "Scan.Bool"
-                               , "Scan.Extended"
-                               , "Scan.Int"
-                               , "Scan.LongReal"
-                               , "Scan.Real"
-                               , "Scan.Unsigned"
-                               , "Text"
-                               , "Text.Cat"
-                               , "Text.Compare"
-                               , "Text.Empty"
-                               , "Text.Equal"
-                               , "Text.FindChar"
-                               , "Text.FindCharR"
-                               , "Text.FindWideChar"
-                               , "Text.FindWideCharR"
-                               , "Text.FromChars"
-                               , "Text.FromWideChars"
-                               , "Text.GetChar"
-                               , "Text.GetWideChar"
-                               , "Text.HasWideChar"
-                               , "Text.Hash"
-                               , "Text.Length"
-                               , "Text.SetChars"
-                               , "Text.SetWideChars"
-                               , "Text.Sub"
-                               , "Wr"
-                               , "Wr.Buffered"
-                               , "Wr.Close"
-                               , "Wr.Closed"
-                               , "Wr.Flush"
-                               , "Wr.Index"
-                               , "Wr.Length"
-                               , "Wr.PutChar"
-                               , "Wr.PutString"
-                               , "Wr.PutText"
-                               , "Wr.PutWideChar"
-                               , "Wr.PutWideString"
-                               , "Wr.PutWideText"
-                               , "Wr.Seek"
-                               , "Wr.Seekable"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b[\\+|\\-]{0,1}[0-9]{1,}\\.[0-9]{1,}([E|e|D|d|X|x][\\+|\\-]{0,1}[0-9]{1,}){0,1}\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\b[\\+|\\-]{0,1}[0-9]{1,}\\.[0-9]{1,}([E|e|D|d|X|x][\\+|\\-]{0,1}[0-9]{1,}){0,1}\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b([\\+|\\-]{0,1}[0-9]{1,}|([2-9]|1[0-6])\\_[0-9A-Fa-f]{1,})\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\b([\\+|\\-]{0,1}[0-9]{1,}|([2-9]|1[0-6])\\_[0-9A-Fa-f]{1,})\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Modula-3" , "String1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\'(.|\\\\[ntrf\\\\'\"]|\\\\[0-7]{3})\\'"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "\\'(.|\\\\[ntrf\\\\'\"]|\\\\[0-7]{3})\\'")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '<' '*'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Modula-3" , "Prep1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '(' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Modula-3" , "Comment2" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Prep1"
-          , Context
-              { cName = "Prep1"
-              , cSyntax = "Modula-3"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '>'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String1"
-          , Context
-              { cName = "String1"
-              , cSyntax = "Modula-3"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = ""
-  , sVersion = "1.01"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.m3" , "*.i3" , "*.ig" , "*.mg" ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"Modula-3\", sFilename = \"modula-3.xml\", sShortname = \"Modula3\", sContexts = fromList [(\"Comment2\",Context {cName = \"Comment2\", cSyntax = \"Modula-3\", cRules = [Rule {rMatcher = Detect2Chars '(' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Modula-3\",\"Comment2\")]},Rule {rMatcher = Detect2Chars '*' ')', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Modula-3\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"PROCEDURE[\\\\s].*\\\\(\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"END\\\\s*[A-Za-z][A-Za-z0-9_]*\\\\;\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(RECORD|OBJECT|TRY|WHILE|FOR|REPEAT|LOOP|IF|CASE|WITH)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(END;|END)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"ANY\",\"ARRAY\",\"AS\",\"BEGIN\",\"BITS\",\"BRANDED\",\"BY\",\"CASE\",\"CONST\",\"DO\",\"ELSE\",\"ELSIF\",\"END\",\"EVAL\",\"EXCEPT\",\"EXCEPTION\",\"EXIT\",\"EXPORTS\",\"FINALLY\",\"FOR\",\"FROM\",\"GENERIC\",\"IF\",\"IMPORT\",\"INTERFACE\",\"LOCK\",\"LOOP\",\"METHODS\",\"MODULE\",\"OBJECT\",\"OF\",\"OVERRIDES\",\"PROCEDURE\",\"RAISE\",\"RAISES\",\"READONLY\",\"RECORD\",\"REF\",\"REPEAT\",\"RETURN\",\"REVEAL\",\"ROOT\",\"SET\",\"THEN\",\"TO\",\"TRY\",\"TYPE\",\"TYPECASE\",\"UNSAFE\",\"UNTIL\",\"UNTRACED\",\"VALUE\",\"VAR\",\"WHILE\",\"WITH\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"#\",\"&\",\"(\",\")\",\"*\",\"+\",\",\",\"-\",\".\",\"..\",\"/\",\":\",\":=\",\";\",\"<\",\"<:\",\"<=\",\"=\",\"=>\",\">\",\">=\",\"AND\",\"DIV\",\"IN\",\"MOD\",\"NOT\",\"OR\",\"[\",\"]\",\"^\",\"{\",\"|\",\"}\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"ADDRESS\",\"BOOLEAN\",\"CARDINAL\",\"CHAR\",\"EXTENDED\",\"INTEGER\",\"LONGREAL\",\"MUTEX\",\"NULL\",\"REAL\",\"REFANY\",\"T\",\"TEXT\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"FALSE\",\"NIL\",\"TRUE\"])), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"ABS\",\"ADR\",\"ADRSIZE\",\"BITSIZE\",\"BYTESIZE\",\"CEILING\",\"DEC\",\"DISPOSE\",\"FIRST\",\"FLOAT\",\"FLOOR\",\"INC\",\"ISTYPE\",\"LAST\",\"LOOPHOLE\",\"MAX\",\"MIN\",\"NARROW\",\"NEW\",\"NUMBER\",\"ORD\",\"ROUND\",\"SUBARRAY\",\"TRUNC\",\"TYPECODE\",\"VAL\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"Env\",\"Env.Count\",\"Env.Get\",\"Env.GetNth\",\"Fmt\",\"Fmt.Bool\",\"Fmt.Char\",\"Fmt.Extended\",\"Fmt.F\",\"Fmt.FN\",\"Fmt.Int\",\"Fmt.LongReal\",\"Fmt.Pad\",\"Fmt.Real\",\"Fmt.Unsigned\",\"IO\",\"IO.EOF\",\"IO.GetChar\",\"IO.GetInt\",\"IO.GetLine\",\"IO.GetReal\",\"IO.GetWideChar\",\"IO.OpenRead\",\"IO.OpenWrite\",\"IO.Put\",\"IO.PutChar\",\"IO.PutInt\",\"IO.PutReal\",\"IO.PutWideChar\",\"Lex\",\"Lex.Bool\",\"Lex.Extended\",\"Lex.Int\",\"Lex.LongReal\",\"Lex.Match\",\"Lex.Real\",\"Lex.Scan\",\"Lex.Skip\",\"Lex.Unsigned\",\"Params\",\"Params.Count\",\"Params.Get\",\"Rd\",\"Rd.CharsReady\",\"Rd.Close\",\"Rd.Closed\",\"Rd.EOF\",\"Rd.GetChar\",\"Rd.GetLine\",\"Rd.GetSub\",\"Rd.GetSubLine\",\"Rd.GetText\",\"Rd.GetWideChar\",\"Rd.GetWideLine\",\"Rd.GetWideSub\",\"Rd.GetWideSubLine\",\"Rd.GetWideText\",\"Rd.Index\",\"Rd.Intermittend\",\"Rd.Length\",\"Rd.Seek\",\"Rd.Seekable\",\"Rd.UnGetChar\",\"Scan\",\"Scan.Bool\",\"Scan.Extended\",\"Scan.Int\",\"Scan.LongReal\",\"Scan.Real\",\"Scan.Unsigned\",\"Text\",\"Text.Cat\",\"Text.Compare\",\"Text.Empty\",\"Text.Equal\",\"Text.FindChar\",\"Text.FindCharR\",\"Text.FindWideChar\",\"Text.FindWideCharR\",\"Text.FromChars\",\"Text.FromWideChars\",\"Text.GetChar\",\"Text.GetWideChar\",\"Text.HasWideChar\",\"Text.Hash\",\"Text.Length\",\"Text.SetChars\",\"Text.SetWideChars\",\"Text.Sub\",\"Wr\",\"Wr.Buffered\",\"Wr.Close\",\"Wr.Closed\",\"Wr.Flush\",\"Wr.Index\",\"Wr.Length\",\"Wr.PutChar\",\"Wr.PutString\",\"Wr.PutText\",\"Wr.PutWideChar\",\"Wr.PutWideString\",\"Wr.PutWideText\",\"Wr.Seek\",\"Wr.Seekable\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[\\\\+|\\\\-]{0,1}[0-9]{1,}\\\\.[0-9]{1,}([E|e|D|d|X|x][\\\\+|\\\\-]{0,1}[0-9]{1,}){0,1}\\\\b\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b([\\\\+|\\\\-]{0,1}[0-9]{1,}|([2-9]|1[0-6])\\\\_[0-9A-Fa-f]{1,})\\\\b\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Modula-3\",\"String1\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\'(.|\\\\\\\\[ntrf\\\\\\\\'\\\"]|\\\\\\\\[0-7]{3})\\\\'\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '<' '*', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Modula-3\",\"Prep1\")]},Rule {rMatcher = Detect2Chars '(' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Modula-3\",\"Comment2\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Prep1\",Context {cName = \"Prep1\", cSyntax = \"Modula-3\", cRules = [Rule {rMatcher = Detect2Chars '*' '>', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String1\",Context {cName = \"String1\", cSyntax = \"Modula-3\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"\", sVersion = \"1.01\", sLicense = \"LGPL\", sExtensions = [\"*.m3\",\"*.i3\",\"*.ig\",\"*.mg\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Monobasic.hs b/src/Skylighting/Syntax/Monobasic.hs
--- a/src/Skylighting/Syntax/Monobasic.hs
+++ b/src/Skylighting/Syntax/Monobasic.hs
@@ -2,986 +2,6 @@
 module Skylighting.Syntax.Monobasic (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "MonoBasic"
-  , sFilename = "monobasic.xml"
-  , sShortname = "Monobasic"
-  , sContexts =
-      fromList
-        [ ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "MonoBasic"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "MonoBasic"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "AddHandler"
-                               , "And"
-                               , "AndAlso"
-                               , "As"
-                               , "ByRef"
-                               , "ByVal"
-                               , "Call"
-                               , "Catch"
-                               , "Const"
-                               , "Declare"
-                               , "Default"
-                               , "Delegate"
-                               , "Dim"
-                               , "Else"
-                               , "Error"
-                               , "Event"
-                               , "Explicit"
-                               , "False"
-                               , "Finaly"
-                               , "Friend"
-                               , "Goto"
-                               , "Imports"
-                               , "Inherits"
-                               , "Me"
-                               , "MustInherit"
-                               , "MustOverride"
-                               , "MyBase"
-                               , "MyClass"
-                               , "New"
-                               , "Not"
-                               , "Nothing"
-                               , "NotInheritable"
-                               , "NotOverridable"
-                               , "On"
-                               , "Option"
-                               , "Optional"
-                               , "Or"
-                               , "OrElse"
-                               , "Overloads"
-                               , "Overrides"
-                               , "ParamArray"
-                               , "Private"
-                               , "Protected"
-                               , "Public"
-                               , "RaiseEvent"
-                               , "ReadOnly"
-                               , "Redim"
-                               , "Resume"
-                               , "Return"
-                               , "Shadows"
-                               , "Shared"
-                               , "Step"
-                               , "Strict"
-                               , "Then"
-                               , "Throw"
-                               , "To"
-                               , "True"
-                               , "When"
-                               , "WithEvents"
-                               , "WriteOnly"
-                               , "Xor"
-                               ])
-                      , rAttribute = KeywordTok
-                      , 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
-                               [ "Boolean"
-                               , "Byte"
-                               , "Char"
-                               , "Date"
-                               , "DateTime"
-                               , "Decimal"
-                               , "Double"
-                               , "Exception"
-                               , "Guid"
-                               , "Int16"
-                               , "Int32"
-                               , "Int64"
-                               , "Integer"
-                               , "IntPtr"
-                               , "Long"
-                               , "Object"
-                               , "ParamArray"
-                               , "Single"
-                               , "String"
-                               , "TimeSpan"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MonoBasic" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "MonoBasic" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(Namespace)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(Namespace)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "End.Namespace.*$"
-                              , reCompiled = Just (compileRegex False "End.Namespace.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(Module)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(Module)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "End.Module.*$"
-                              , reCompiled = Just (compileRegex False "End.Module.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(Class)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(Class)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "End.Class.*$"
-                              , reCompiled = Just (compileRegex False "End.Class.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(Interface)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(Interface)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "End.Interface.*$"
-                              , reCompiled = Just (compileRegex False "End.Interface.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(Structure)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(Structure)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "End.Structure.*$"
-                              , reCompiled = Just (compileRegex False "End.Structure.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(Enum)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(Enum)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "End.Enum.*$"
-                              , reCompiled = Just (compileRegex False "End.Enum.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(Property)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(Property)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "End.Property.*$"
-                              , reCompiled = Just (compileRegex False "End.Property.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(Get)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(Get)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "End.Get.*$"
-                              , reCompiled = Just (compileRegex False "End.Get.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(Set)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(Set)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "End.Set.*$"
-                              , reCompiled = Just (compileRegex False "End.Set.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(Sub)([.\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(Sub)([.\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "End.Sub.*$"
-                              , reCompiled = Just (compileRegex False "End.Sub.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "Exit.Sub.*$"
-                              , reCompiled = Just (compileRegex False "Exit.Sub.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(Function)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(Function)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "End.Function.*$"
-                              , reCompiled = Just (compileRegex False "End.Function.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "Exit.Function.*$"
-                              , reCompiled = Just (compileRegex False "Exit.Function.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(Try)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(Try)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "End.Try.*$"
-                              , reCompiled = Just (compileRegex False "End.Try.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(If)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(If)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "End.If.*$"
-                              , reCompiled = Just (compileRegex False "End.If.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "Select.Case.*$"
-                              , reCompiled = Just (compileRegex False "Select.Case.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "End.Select.*$"
-                              , reCompiled = Just (compileRegex False "End.Select.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(For)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(For)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(Next)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(Next)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(Do)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(Do)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(Loop)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(Loop)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(While)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(While)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "End.While.*$"
-                              , reCompiled = Just (compileRegex False "End.While.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "Exit.While.*$"
-                              , reCompiled = Just (compileRegex False "Exit.While.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#Region.*$"
-                              , reCompiled = Just (compileRegex False "#Region.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#End.Region.*$"
-                              , reCompiled = Just (compileRegex False "#End.Region.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#If.*$"
-                              , reCompiled = Just (compileRegex False "#If.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#End.If.*$"
-                              , reCompiled = Just (compileRegex False "#End.If.*$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "MonoBasic"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Davide Bettio (davide.bettio@kdemail.net)"
-  , sVersion = "2"
-  , sLicense = "GPL"
-  , sExtensions = [ "*.vb" ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"MonoBasic\", sFilename = \"monobasic.xml\", sShortname = \"Monobasic\", sContexts = fromList [(\"Comment\",Context {cName = \"Comment\", cSyntax = \"MonoBasic\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"MonoBasic\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"AddHandler\",\"And\",\"AndAlso\",\"As\",\"ByRef\",\"ByVal\",\"Call\",\"Catch\",\"Const\",\"Declare\",\"Default\",\"Delegate\",\"Dim\",\"Else\",\"Error\",\"Event\",\"Explicit\",\"False\",\"Finaly\",\"Friend\",\"Goto\",\"Imports\",\"Inherits\",\"Me\",\"MustInherit\",\"MustOverride\",\"MyBase\",\"MyClass\",\"New\",\"Not\",\"Nothing\",\"NotInheritable\",\"NotOverridable\",\"On\",\"Option\",\"Optional\",\"Or\",\"OrElse\",\"Overloads\",\"Overrides\",\"ParamArray\",\"Private\",\"Protected\",\"Public\",\"RaiseEvent\",\"ReadOnly\",\"Redim\",\"Resume\",\"Return\",\"Shadows\",\"Shared\",\"Step\",\"Strict\",\"Then\",\"Throw\",\"To\",\"True\",\"When\",\"WithEvents\",\"WriteOnly\",\"Xor\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"Boolean\",\"Byte\",\"Char\",\"Date\",\"DateTime\",\"Decimal\",\"Double\",\"Exception\",\"Guid\",\"Int16\",\"Int32\",\"Int64\",\"Integer\",\"IntPtr\",\"Long\",\"Object\",\"ParamArray\",\"Single\",\"String\",\"TimeSpan\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MonoBasic\",\"String\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"MonoBasic\",\"Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(Namespace)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"End.Namespace.*$\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(Module)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"End.Module.*$\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(Class)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"End.Class.*$\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(Interface)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"End.Interface.*$\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(Structure)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"End.Structure.*$\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(Enum)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"End.Enum.*$\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(Property)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"End.Property.*$\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(Get)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"End.Get.*$\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(Set)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"End.Set.*$\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(Sub)([.\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"End.Sub.*$\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"Exit.Sub.*$\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(Function)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"End.Function.*$\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"Exit.Function.*$\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(Try)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"End.Try.*$\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(If)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"End.If.*$\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"Select.Case.*$\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"End.Select.*$\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(For)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(Next)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(Do)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(Loop)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(While)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"End.While.*$\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"Exit.While.*$\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#Region.*$\", reCaseSensitive = False}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#End.Region.*$\", reCaseSensitive = False}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#If.*$\", reCaseSensitive = False}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#End.If.*$\", reCaseSensitive = False}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"MonoBasic\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = HlCStringChar, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Davide Bettio (davide.bettio@kdemail.net)\", sVersion = \"2\", sLicense = \"GPL\", sExtensions = [\"*.vb\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Nasm.hs b/src/Skylighting/Syntax/Nasm.hs
--- a/src/Skylighting/Syntax/Nasm.hs
+++ b/src/Skylighting/Syntax/Nasm.hs
@@ -2,1155 +2,6 @@
 module Skylighting.Syntax.Nasm (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Intel x86 (NASM)"
-  , sFilename = "nasm.xml"
-  , sShortname = "Nasm"
-  , sContexts =
-      fromList
-        [ ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "Intel x86 (NASM)"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Intel x86 (NASM)"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "ah"
-                               , "al"
-                               , "ax"
-                               , "bh"
-                               , "bl"
-                               , "bp"
-                               , "bx"
-                               , "ch"
-                               , "cl"
-                               , "cr0"
-                               , "cr2"
-                               , "cr3"
-                               , "cr4"
-                               , "cs"
-                               , "cx"
-                               , "dh"
-                               , "di"
-                               , "dl"
-                               , "dr0"
-                               , "dr1"
-                               , "dr2"
-                               , "dr3"
-                               , "dr6"
-                               , "dr7"
-                               , "ds"
-                               , "dx"
-                               , "eax"
-                               , "ebp"
-                               , "ebx"
-                               , "ecx"
-                               , "edi"
-                               , "edx"
-                               , "es"
-                               , "esi"
-                               , "esp"
-                               , "fs"
-                               , "gs"
-                               , "mm0"
-                               , "mm1"
-                               , "mm2"
-                               , "mm3"
-                               , "mm4"
-                               , "mm5"
-                               , "mm6"
-                               , "mm7"
-                               , "si"
-                               , "sp"
-                               , "ss"
-                               , "st"
-                               , "xmm0"
-                               , "xmm1"
-                               , "xmm2"
-                               , "xmm3"
-                               , "xmm4"
-                               , "xmm5"
-                               , "xmm6"
-                               , "xmm7"
-                               ])
-                      , rAttribute = KeywordTok
-                      , 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
-                               [ "byte"
-                               , "db"
-                               , "dd"
-                               , "dq"
-                               , "dt"
-                               , "dw"
-                               , "dword"
-                               , "equ"
-                               , "incbin"
-                               , "ptr"
-                               , "qword"
-                               , "resb"
-                               , "resd"
-                               , "resq"
-                               , "rest"
-                               , "resw"
-                               , "short"
-                               , "times"
-                               , "word"
-                               ])
-                      , 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
-                               [ "aaa"
-                               , "aad"
-                               , "aam"
-                               , "aas"
-                               , "adc"
-                               , "add"
-                               , "addpd"
-                               , "addps"
-                               , "addsd"
-                               , "addss"
-                               , "addsubpd"
-                               , "addsubps"
-                               , "and"
-                               , "andnpd"
-                               , "andnps"
-                               , "andpd"
-                               , "andps"
-                               , "arpl"
-                               , "bound"
-                               , "bsf"
-                               , "bsr"
-                               , "bswap"
-                               , "bt"
-                               , "btc"
-                               , "btr"
-                               , "bts"
-                               , "call"
-                               , "cbw"
-                               , "cdq"
-                               , "cdqe"
-                               , "clc"
-                               , "cld"
-                               , "clflush"
-                               , "clgi"
-                               , "cli"
-                               , "clts"
-                               , "cmc"
-                               , "cmova"
-                               , "cmovae"
-                               , "cmovb"
-                               , "cmovbe"
-                               , "cmovc"
-                               , "cmove"
-                               , "cmovg"
-                               , "cmovge"
-                               , "cmovl"
-                               , "cmovle"
-                               , "cmovna"
-                               , "cmovnae"
-                               , "cmovnb"
-                               , "cmovnbe"
-                               , "cmovnc"
-                               , "cmovne"
-                               , "cmovng"
-                               , "cmovnge"
-                               , "cmovnl"
-                               , "cmovnle"
-                               , "cmovno"
-                               , "cmovnp"
-                               , "cmovns"
-                               , "cmovnz"
-                               , "cmovo"
-                               , "cmovp"
-                               , "cmovpe"
-                               , "cmovpo"
-                               , "cmovs"
-                               , "cmovz"
-                               , "cmp"
-                               , "cmpeqpd"
-                               , "cmpeqps"
-                               , "cmpeqsd"
-                               , "cmpeqss"
-                               , "cmplepd"
-                               , "cmpleps"
-                               , "cmplesd"
-                               , "cmpless"
-                               , "cmpltpd"
-                               , "cmpltps"
-                               , "cmpltsd"
-                               , "cmpltss"
-                               , "cmpneqpd"
-                               , "cmpneqps"
-                               , "cmpneqsd"
-                               , "cmpneqss"
-                               , "cmpnlepd"
-                               , "cmpnleps"
-                               , "cmpnlesd"
-                               , "cmpnless"
-                               , "cmpnltpd"
-                               , "cmpnltps"
-                               , "cmpnltsd"
-                               , "cmpnltss"
-                               , "cmpordpd"
-                               , "cmpordps"
-                               , "cmpordsd"
-                               , "cmpordss"
-                               , "cmppd"
-                               , "cmpps"
-                               , "cmps"
-                               , "cmpsb"
-                               , "cmpsd"
-                               , "cmpss"
-                               , "cmpsw"
-                               , "cmpunordpd"
-                               , "cmpunordps"
-                               , "cmpunordsd"
-                               , "cmpunordss"
-                               , "cmpxchg"
-                               , "cmpxchg16b"
-                               , "cmpxchg486"
-                               , "cmpxchg8b"
-                               , "comisd"
-                               , "comiss"
-                               , "cpuid"
-                               , "cqo"
-                               , "cvtdq2pd"
-                               , "cvtdq2ps"
-                               , "cvtpd2dq"
-                               , "cvtpd2pi"
-                               , "cvtpd2ps"
-                               , "cvtpi2pd"
-                               , "cvtpi2ps"
-                               , "cvtps2dq"
-                               , "cvtps2pd"
-                               , "cvtps2pi"
-                               , "cvtsd2si"
-                               , "cvtsd2ss"
-                               , "cvtsi2sd"
-                               , "cvtsi2ss"
-                               , "cvtss2sd"
-                               , "cvtss2si"
-                               , "cvttpd2dq"
-                               , "cvttpd2pi"
-                               , "cvttps2dq"
-                               , "cvttps2pi"
-                               , "cvttsd2si"
-                               , "cvttss2si"
-                               , "cwd"
-                               , "cwde"
-                               , "daa"
-                               , "das"
-                               , "dec"
-                               , "div"
-                               , "divpd"
-                               , "divps"
-                               , "divsd"
-                               , "divss"
-                               , "emms"
-                               , "enter"
-                               , "f2xm1"
-                               , "fabs"
-                               , "fadd"
-                               , "faddp"
-                               , "fbld"
-                               , "fbstp"
-                               , "fchs"
-                               , "fclex"
-                               , "fcmovb"
-                               , "fcmovbe"
-                               , "fcmove"
-                               , "fcmovnb"
-                               , "fcmovnbe"
-                               , "fcmovne"
-                               , "fcmovnu"
-                               , "fcmovu"
-                               , "fcom"
-                               , "fcomi"
-                               , "fcomip"
-                               , "fcomp"
-                               , "fcompp"
-                               , "fcos"
-                               , "fdecstp"
-                               , "fdisi"
-                               , "fdiv"
-                               , "fdivp"
-                               , "fdivr"
-                               , "fdivrp"
-                               , "femms"
-                               , "feni"
-                               , "ffree"
-                               , "ffreep"
-                               , "fiadd"
-                               , "ficom"
-                               , "ficomp"
-                               , "fidiv"
-                               , "fidivr"
-                               , "fild"
-                               , "fimul"
-                               , "fincstp"
-                               , "finit"
-                               , "fist"
-                               , "fistp"
-                               , "fisttp"
-                               , "fisub"
-                               , "fisubr"
-                               , "fld"
-                               , "fld1"
-                               , "fldcw"
-                               , "fldenv"
-                               , "fldl2e"
-                               , "fldl2t"
-                               , "fldlg2"
-                               , "fldln2"
-                               , "fldpi"
-                               , "fldz"
-                               , "fmul"
-                               , "fmulp"
-                               , "fnclex"
-                               , "fndisi"
-                               , "fneni"
-                               , "fninit"
-                               , "fnop"
-                               , "fnsave"
-                               , "fnstcw"
-                               , "fnstenv"
-                               , "fnstsw"
-                               , "fnwait"
-                               , "fpatan"
-                               , "fprem"
-                               , "fprem1"
-                               , "fptan"
-                               , "frndint"
-                               , "frstor"
-                               , "fsave"
-                               , "fscale"
-                               , "fsetpm"
-                               , "fsin"
-                               , "fsincos"
-                               , "fsqrt"
-                               , "fst"
-                               , "fstcw"
-                               , "fstenv"
-                               , "fstp"
-                               , "fstsw"
-                               , "fsub"
-                               , "fsubp"
-                               , "fsubr"
-                               , "fsubrp"
-                               , "ftst"
-                               , "fucom"
-                               , "fucomi"
-                               , "fucomip"
-                               , "fucomp"
-                               , "fucompp"
-                               , "fwait"
-                               , "fxam"
-                               , "fxch"
-                               , "fxrstor"
-                               , "fxsave"
-                               , "fxtract"
-                               , "fyl2x"
-                               , "fyl2xp1"
-                               , "haddpd"
-                               , "haddps"
-                               , "hlt"
-                               , "hsubpd"
-                               , "hsubps"
-                               , "ibts"
-                               , "idiv"
-                               , "imul"
-                               , "in"
-                               , "inc"
-                               , "ins"
-                               , "insb"
-                               , "insd"
-                               , "insw"
-                               , "int"
-                               , "int1"
-                               , "int3"
-                               , "into"
-                               , "invd"
-                               , "invlpg"
-                               , "invlpga"
-                               , "iret"
-                               , "iretd"
-                               , "iretq"
-                               , "iretw"
-                               , "ja"
-                               , "jae"
-                               , "jb"
-                               , "jbe"
-                               , "jc"
-                               , "jcxz"
-                               , "je"
-                               , "jecxz"
-                               , "jg"
-                               , "jge"
-                               , "jl"
-                               , "jle"
-                               , "jmp"
-                               , "jna"
-                               , "jnae"
-                               , "jnb"
-                               , "jnbe"
-                               , "jnc"
-                               , "jne"
-                               , "jng"
-                               , "jnge"
-                               , "jnl"
-                               , "jnle"
-                               , "jno"
-                               , "jnp"
-                               , "jns"
-                               , "jnz"
-                               , "jo"
-                               , "jp"
-                               , "jpe"
-                               , "jpo"
-                               , "jrcxz"
-                               , "js"
-                               , "jz"
-                               , "lahf"
-                               , "lar"
-                               , "lddqu"
-                               , "ldmxcsr"
-                               , "lds"
-                               , "lea"
-                               , "leave"
-                               , "les"
-                               , "lfence"
-                               , "lfs"
-                               , "lgdt"
-                               , "lgs"
-                               , "lidt"
-                               , "lldt"
-                               , "lmsw"
-                               , "loadall"
-                               , "loadall286"
-                               , "lods"
-                               , "lodsb"
-                               , "lodsd"
-                               , "lodsq"
-                               , "lodsw"
-                               , "loop"
-                               , "loope"
-                               , "loopne"
-                               , "loopnz"
-                               , "loopz"
-                               , "lsl"
-                               , "lss"
-                               , "ltr"
-                               , "maskmovdqu"
-                               , "maskmovq"
-                               , "maxpd"
-                               , "maxps"
-                               , "maxsd"
-                               , "maxss"
-                               , "mfence"
-                               , "minpd"
-                               , "minps"
-                               , "minsd"
-                               , "minss"
-                               , "monitor"
-                               , "mov"
-                               , "movapd"
-                               , "movaps"
-                               , "movd"
-                               , "movddup"
-                               , "movdq2q"
-                               , "movdqa"
-                               , "movdqu"
-                               , "movhlps"
-                               , "movhpd"
-                               , "movhps"
-                               , "movlhps"
-                               , "movlpd"
-                               , "movlps"
-                               , "movmskpd"
-                               , "movmskps"
-                               , "movntdq"
-                               , "movnti"
-                               , "movntpd"
-                               , "movntps"
-                               , "movntq"
-                               , "movq"
-                               , "movq2dq"
-                               , "movs"
-                               , "movsb"
-                               , "movsd"
-                               , "movshdup"
-                               , "movsldup"
-                               , "movsq"
-                               , "movss"
-                               , "movsw"
-                               , "movsx"
-                               , "movsxd"
-                               , "movupd"
-                               , "movups"
-                               , "movzx"
-                               , "mul"
-                               , "mulpd"
-                               , "mulps"
-                               , "mulsd"
-                               , "mulss"
-                               , "mwait"
-                               , "neg"
-                               , "nop"
-                               , "not"
-                               , "or"
-                               , "orpd"
-                               , "orps"
-                               , "out"
-                               , "outs"
-                               , "outsb"
-                               , "outsd"
-                               , "outsw"
-                               , "packssdw"
-                               , "packsswb"
-                               , "packuswb"
-                               , "paddb"
-                               , "paddd"
-                               , "paddq"
-                               , "paddsb"
-                               , "paddsw"
-                               , "paddusb"
-                               , "paddusw"
-                               , "paddw"
-                               , "pand"
-                               , "pandn"
-                               , "pause"
-                               , "pavgb"
-                               , "pavgusb"
-                               , "pavgw"
-                               , "pcmpeqb"
-                               , "pcmpeqd"
-                               , "pcmpeqw"
-                               , "pcmpgtb"
-                               , "pcmpgtd"
-                               , "pcmpgtw"
-                               , "pdistib"
-                               , "pextrw"
-                               , "pf2id"
-                               , "pf2iw"
-                               , "pfacc"
-                               , "pfadd"
-                               , "pfcmpeq"
-                               , "pfcmpge"
-                               , "pfcmpgt"
-                               , "pfmax"
-                               , "pfmin"
-                               , "pfmul"
-                               , "pfnacc"
-                               , "pfpnacc"
-                               , "pfrcp"
-                               , "pfrcpit1"
-                               , "pfrcpit2"
-                               , "pfrsqit1"
-                               , "pfrsqrt"
-                               , "pfsub"
-                               , "pfsubr"
-                               , "pi2fd"
-                               , "pi2fw"
-                               , "pinsrw"
-                               , "pmachriw"
-                               , "pmaddwd"
-                               , "pmagw"
-                               , "pmaxsw"
-                               , "pmaxub"
-                               , "pminsw"
-                               , "pminub"
-                               , "pmovmskb"
-                               , "pmulhrw"
-                               , "pmulhuw"
-                               , "pmulhw"
-                               , "pmullw"
-                               , "pmuludq"
-                               , "pmvgezb"
-                               , "pmvlzb"
-                               , "pmvnzb"
-                               , "pmvzb"
-                               , "pop"
-                               , "popa"
-                               , "popad"
-                               , "popaw"
-                               , "popf"
-                               , "popfd"
-                               , "popfq"
-                               , "popfw"
-                               , "por"
-                               , "prefetch"
-                               , "prefetchnta"
-                               , "prefetcht0"
-                               , "prefetcht1"
-                               , "prefetcht2"
-                               , "prefetchw"
-                               , "psadbw"
-                               , "pshufd"
-                               , "pshufhw"
-                               , "pshuflw"
-                               , "pshufw"
-                               , "pslld"
-                               , "pslldq"
-                               , "psllq"
-                               , "psllw"
-                               , "psrad"
-                               , "psraw"
-                               , "psrld"
-                               , "psrldq"
-                               , "psrlq"
-                               , "psrlw"
-                               , "psubb"
-                               , "psubd"
-                               , "psubq"
-                               , "psubsb"
-                               , "psubsiw"
-                               , "psubsw"
-                               , "psubusb"
-                               , "psubusw"
-                               , "psubw"
-                               , "pswapd"
-                               , "punpckhbw"
-                               , "punpckhdq"
-                               , "punpckhqdq"
-                               , "punpckhwd"
-                               , "punpcklbw"
-                               , "punpckldq"
-                               , "punpcklqdq"
-                               , "punpcklwd"
-                               , "push"
-                               , "pusha"
-                               , "pushad"
-                               , "pushaw"
-                               , "pushf"
-                               , "pushfd"
-                               , "pushfq"
-                               , "pushfw"
-                               , "pxor"
-                               , "rcl"
-                               , "rcpps"
-                               , "rcpss"
-                               , "rcr"
-                               , "rdmsr"
-                               , "rdpmc"
-                               , "rdshr"
-                               , "rdtsc"
-                               , "rdtscp"
-                               , "ret"
-                               , "retf"
-                               , "retn"
-                               , "rol"
-                               , "ror"
-                               , "rsdc"
-                               , "rsldt"
-                               , "rsm"
-                               , "rsqrtps"
-                               , "rsqrtss"
-                               , "rsts"
-                               , "sahf"
-                               , "sal"
-                               , "salc"
-                               , "sar"
-                               , "sbb"
-                               , "scas"
-                               , "scasb"
-                               , "scasd"
-                               , "scasq"
-                               , "scasw"
-                               , "seta"
-                               , "setae"
-                               , "setb"
-                               , "setbe"
-                               , "setc"
-                               , "sete"
-                               , "setg"
-                               , "setge"
-                               , "setl"
-                               , "setle"
-                               , "setna"
-                               , "setnae"
-                               , "setnb"
-                               , "setnbe"
-                               , "setnc"
-                               , "setne"
-                               , "setng"
-                               , "setnge"
-                               , "setnl"
-                               , "setnle"
-                               , "setno"
-                               , "setnp"
-                               , "setns"
-                               , "setnz"
-                               , "seto"
-                               , "setp"
-                               , "setpe"
-                               , "setpo"
-                               , "sets"
-                               , "setz"
-                               , "sfence"
-                               , "sgdt"
-                               , "shl"
-                               , "shld"
-                               , "shr"
-                               , "shrd"
-                               , "shufpd"
-                               , "shufps"
-                               , "sidt"
-                               , "skinit"
-                               , "sldt"
-                               , "smi"
-                               , "smint"
-                               , "smintold"
-                               , "smsw"
-                               , "sqrtpd"
-                               , "sqrtps"
-                               , "sqrtsd"
-                               , "sqrtss"
-                               , "stc"
-                               , "std"
-                               , "stgi"
-                               , "sti"
-                               , "stmxcsr"
-                               , "stos"
-                               , "stosb"
-                               , "stosd"
-                               , "stosq"
-                               , "stosw"
-                               , "str"
-                               , "sub"
-                               , "subpd"
-                               , "subps"
-                               , "subsd"
-                               , "subss"
-                               , "svdc"
-                               , "svldt"
-                               , "svts"
-                               , "swapgs"
-                               , "syscall"
-                               , "sysenter"
-                               , "sysexit"
-                               , "sysret"
-                               , "test"
-                               , "ucomisd"
-                               , "ucomiss"
-                               , "ud0"
-                               , "ud1"
-                               , "ud2"
-                               , "umov"
-                               , "unpckhpd"
-                               , "unpckhps"
-                               , "unpcklpd"
-                               , "unpcklps"
-                               , "verr"
-                               , "verw"
-                               , "vmload"
-                               , "vmmcall"
-                               , "vmrun"
-                               , "vmsave"
-                               , "wait"
-                               , "wbinvd"
-                               , "wrmsr"
-                               , "wrshr"
-                               , "xadd"
-                               , "xbts"
-                               , "xchg"
-                               , "xlat"
-                               , "xlatb"
-                               , "xor"
-                               , "xorpd"
-                               , "xorps"
-                               ])
-                      , rAttribute = KeywordTok
-                      , 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
-                               [ "___NASM_PATCHLEVEL__"
-                               , "__FILE__"
-                               , "__LINE__"
-                               , "__NASM_MAJOR__"
-                               , "__NASM_MINOR__"
-                               , "__NASM_SUBMINOR__"
-                               , "__NASM_VER__"
-                               , "__NASM_VERSION_ID__"
-                               , "__SECT__"
-                               , "absolute"
-                               , "align"
-                               , "alignb"
-                               , "at"
-                               , "bits"
-                               , "common"
-                               , "endstruc"
-                               , "extern"
-                               , "global"
-                               , "iend"
-                               , "istruc"
-                               , "org"
-                               , "section"
-                               , "seg"
-                               , "segment"
-                               , "strict"
-                               , "struc"
-                               , "use16"
-                               , "use32"
-                               , "wrt"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ';'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Intel x86 (NASM)" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Intel x86 (NASM)" , "Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "\"'"
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Intel x86 (NASM)" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*[A-Za-z0-9_.$]+:"
-                              , reCompiled = Just (compileRegex True "\\s*[A-Za-z0-9_.$]+:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(cmov|fcmov|j|loop|set)(a|ae|b|be|c|e|g|ge|l|le|na|nae|nb|nbe|nc|ne|ng|nge|nl|nle|no|np|ns|nz|o|p|pe|po|s|z)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(cmov|fcmov|j|loop|set)(a|ae|b|be|c|e|g|ge|l|le|na|nae|nb|nbe|nc|ne|ng|nge|nl|nle|no|np|ns|nz|o|p|pe|po|s|z)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "cpu (pentium|ppro|p2|p3|katmai|p4|willamette|prescott|ia64)*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "cpu (pentium|ppro|p2|p3|katmai|p4|willamette|prescott|ia64)*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(^|[ \\t,]+)((\\$|0x){1}[0-9]+[a-f0-9]*|[0-9]+[a-f0-9]*h)([ \\t,]+|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "(^|[ \\t,]+)((\\$|0x){1}[0-9]+[a-f0-9]*|[0-9]+[a-f0-9]*h)([ \\t,]+|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(^|[ \\t,]+)([0-7]+(q|o)|[01]+b)([ \\t,]+|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False "(^|[ \\t,]+)([0-7]+(q|o)|[01]+b)([ \\t,]+|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Preprocessor"
-          , Context
-              { cName = "Preprocessor"
-              , cSyntax = "Intel x86 (NASM)"
-              , cRules = []
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Intel x86 (NASM)"
-              , cRules =
-                  [ Rule
-                      { rMatcher = AnyChar "\"'"
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Nicola Gigante (nicola.gigante@gmail.com)"
-  , sVersion = "3"
-  , sLicense = "GPLv2+"
-  , sExtensions = [ "*.asm" ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Intel x86 (NASM)\", sFilename = \"nasm.xml\", sShortname = \"Nasm\", sContexts = fromList [(\"Comment\",Context {cName = \"Comment\", cSyntax = \"Intel x86 (NASM)\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Intel x86 (NASM)\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"ah\",\"al\",\"ax\",\"bh\",\"bl\",\"bp\",\"bx\",\"ch\",\"cl\",\"cr0\",\"cr2\",\"cr3\",\"cr4\",\"cs\",\"cx\",\"dh\",\"di\",\"dl\",\"dr0\",\"dr1\",\"dr2\",\"dr3\",\"dr6\",\"dr7\",\"ds\",\"dx\",\"eax\",\"ebp\",\"ebx\",\"ecx\",\"edi\",\"edx\",\"es\",\"esi\",\"esp\",\"fs\",\"gs\",\"mm0\",\"mm1\",\"mm2\",\"mm3\",\"mm4\",\"mm5\",\"mm6\",\"mm7\",\"si\",\"sp\",\"ss\",\"st\",\"xmm0\",\"xmm1\",\"xmm2\",\"xmm3\",\"xmm4\",\"xmm5\",\"xmm6\",\"xmm7\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"byte\",\"db\",\"dd\",\"dq\",\"dt\",\"dw\",\"dword\",\"equ\",\"incbin\",\"ptr\",\"qword\",\"resb\",\"resd\",\"resq\",\"rest\",\"resw\",\"short\",\"times\",\"word\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"aaa\",\"aad\",\"aam\",\"aas\",\"adc\",\"add\",\"addpd\",\"addps\",\"addsd\",\"addss\",\"addsubpd\",\"addsubps\",\"and\",\"andnpd\",\"andnps\",\"andpd\",\"andps\",\"arpl\",\"bound\",\"bsf\",\"bsr\",\"bswap\",\"bt\",\"btc\",\"btr\",\"bts\",\"call\",\"cbw\",\"cdq\",\"cdqe\",\"clc\",\"cld\",\"clflush\",\"clgi\",\"cli\",\"clts\",\"cmc\",\"cmova\",\"cmovae\",\"cmovb\",\"cmovbe\",\"cmovc\",\"cmove\",\"cmovg\",\"cmovge\",\"cmovl\",\"cmovle\",\"cmovna\",\"cmovnae\",\"cmovnb\",\"cmovnbe\",\"cmovnc\",\"cmovne\",\"cmovng\",\"cmovnge\",\"cmovnl\",\"cmovnle\",\"cmovno\",\"cmovnp\",\"cmovns\",\"cmovnz\",\"cmovo\",\"cmovp\",\"cmovpe\",\"cmovpo\",\"cmovs\",\"cmovz\",\"cmp\",\"cmpeqpd\",\"cmpeqps\",\"cmpeqsd\",\"cmpeqss\",\"cmplepd\",\"cmpleps\",\"cmplesd\",\"cmpless\",\"cmpltpd\",\"cmpltps\",\"cmpltsd\",\"cmpltss\",\"cmpneqpd\",\"cmpneqps\",\"cmpneqsd\",\"cmpneqss\",\"cmpnlepd\",\"cmpnleps\",\"cmpnlesd\",\"cmpnless\",\"cmpnltpd\",\"cmpnltps\",\"cmpnltsd\",\"cmpnltss\",\"cmpordpd\",\"cmpordps\",\"cmpordsd\",\"cmpordss\",\"cmppd\",\"cmpps\",\"cmps\",\"cmpsb\",\"cmpsd\",\"cmpss\",\"cmpsw\",\"cmpunordpd\",\"cmpunordps\",\"cmpunordsd\",\"cmpunordss\",\"cmpxchg\",\"cmpxchg16b\",\"cmpxchg486\",\"cmpxchg8b\",\"comisd\",\"comiss\",\"cpuid\",\"cqo\",\"cvtdq2pd\",\"cvtdq2ps\",\"cvtpd2dq\",\"cvtpd2pi\",\"cvtpd2ps\",\"cvtpi2pd\",\"cvtpi2ps\",\"cvtps2dq\",\"cvtps2pd\",\"cvtps2pi\",\"cvtsd2si\",\"cvtsd2ss\",\"cvtsi2sd\",\"cvtsi2ss\",\"cvtss2sd\",\"cvtss2si\",\"cvttpd2dq\",\"cvttpd2pi\",\"cvttps2dq\",\"cvttps2pi\",\"cvttsd2si\",\"cvttss2si\",\"cwd\",\"cwde\",\"daa\",\"das\",\"dec\",\"div\",\"divpd\",\"divps\",\"divsd\",\"divss\",\"emms\",\"enter\",\"f2xm1\",\"fabs\",\"fadd\",\"faddp\",\"fbld\",\"fbstp\",\"fchs\",\"fclex\",\"fcmovb\",\"fcmovbe\",\"fcmove\",\"fcmovnb\",\"fcmovnbe\",\"fcmovne\",\"fcmovnu\",\"fcmovu\",\"fcom\",\"fcomi\",\"fcomip\",\"fcomp\",\"fcompp\",\"fcos\",\"fdecstp\",\"fdisi\",\"fdiv\",\"fdivp\",\"fdivr\",\"fdivrp\",\"femms\",\"feni\",\"ffree\",\"ffreep\",\"fiadd\",\"ficom\",\"ficomp\",\"fidiv\",\"fidivr\",\"fild\",\"fimul\",\"fincstp\",\"finit\",\"fist\",\"fistp\",\"fisttp\",\"fisub\",\"fisubr\",\"fld\",\"fld1\",\"fldcw\",\"fldenv\",\"fldl2e\",\"fldl2t\",\"fldlg2\",\"fldln2\",\"fldpi\",\"fldz\",\"fmul\",\"fmulp\",\"fnclex\",\"fndisi\",\"fneni\",\"fninit\",\"fnop\",\"fnsave\",\"fnstcw\",\"fnstenv\",\"fnstsw\",\"fnwait\",\"fpatan\",\"fprem\",\"fprem1\",\"fptan\",\"frndint\",\"frstor\",\"fsave\",\"fscale\",\"fsetpm\",\"fsin\",\"fsincos\",\"fsqrt\",\"fst\",\"fstcw\",\"fstenv\",\"fstp\",\"fstsw\",\"fsub\",\"fsubp\",\"fsubr\",\"fsubrp\",\"ftst\",\"fucom\",\"fucomi\",\"fucomip\",\"fucomp\",\"fucompp\",\"fwait\",\"fxam\",\"fxch\",\"fxrstor\",\"fxsave\",\"fxtract\",\"fyl2x\",\"fyl2xp1\",\"haddpd\",\"haddps\",\"hlt\",\"hsubpd\",\"hsubps\",\"ibts\",\"idiv\",\"imul\",\"in\",\"inc\",\"ins\",\"insb\",\"insd\",\"insw\",\"int\",\"int1\",\"int3\",\"into\",\"invd\",\"invlpg\",\"invlpga\",\"iret\",\"iretd\",\"iretq\",\"iretw\",\"ja\",\"jae\",\"jb\",\"jbe\",\"jc\",\"jcxz\",\"je\",\"jecxz\",\"jg\",\"jge\",\"jl\",\"jle\",\"jmp\",\"jna\",\"jnae\",\"jnb\",\"jnbe\",\"jnc\",\"jne\",\"jng\",\"jnge\",\"jnl\",\"jnle\",\"jno\",\"jnp\",\"jns\",\"jnz\",\"jo\",\"jp\",\"jpe\",\"jpo\",\"jrcxz\",\"js\",\"jz\",\"lahf\",\"lar\",\"lddqu\",\"ldmxcsr\",\"lds\",\"lea\",\"leave\",\"les\",\"lfence\",\"lfs\",\"lgdt\",\"lgs\",\"lidt\",\"lldt\",\"lmsw\",\"loadall\",\"loadall286\",\"lods\",\"lodsb\",\"lodsd\",\"lodsq\",\"lodsw\",\"loop\",\"loope\",\"loopne\",\"loopnz\",\"loopz\",\"lsl\",\"lss\",\"ltr\",\"maskmovdqu\",\"maskmovq\",\"maxpd\",\"maxps\",\"maxsd\",\"maxss\",\"mfence\",\"minpd\",\"minps\",\"minsd\",\"minss\",\"monitor\",\"mov\",\"movapd\",\"movaps\",\"movd\",\"movddup\",\"movdq2q\",\"movdqa\",\"movdqu\",\"movhlps\",\"movhpd\",\"movhps\",\"movlhps\",\"movlpd\",\"movlps\",\"movmskpd\",\"movmskps\",\"movntdq\",\"movnti\",\"movntpd\",\"movntps\",\"movntq\",\"movq\",\"movq2dq\",\"movs\",\"movsb\",\"movsd\",\"movshdup\",\"movsldup\",\"movsq\",\"movss\",\"movsw\",\"movsx\",\"movsxd\",\"movupd\",\"movups\",\"movzx\",\"mul\",\"mulpd\",\"mulps\",\"mulsd\",\"mulss\",\"mwait\",\"neg\",\"nop\",\"not\",\"or\",\"orpd\",\"orps\",\"out\",\"outs\",\"outsb\",\"outsd\",\"outsw\",\"packssdw\",\"packsswb\",\"packuswb\",\"paddb\",\"paddd\",\"paddq\",\"paddsb\",\"paddsw\",\"paddusb\",\"paddusw\",\"paddw\",\"pand\",\"pandn\",\"pause\",\"pavgb\",\"pavgusb\",\"pavgw\",\"pcmpeqb\",\"pcmpeqd\",\"pcmpeqw\",\"pcmpgtb\",\"pcmpgtd\",\"pcmpgtw\",\"pdistib\",\"pextrw\",\"pf2id\",\"pf2iw\",\"pfacc\",\"pfadd\",\"pfcmpeq\",\"pfcmpge\",\"pfcmpgt\",\"pfmax\",\"pfmin\",\"pfmul\",\"pfnacc\",\"pfpnacc\",\"pfrcp\",\"pfrcpit1\",\"pfrcpit2\",\"pfrsqit1\",\"pfrsqrt\",\"pfsub\",\"pfsubr\",\"pi2fd\",\"pi2fw\",\"pinsrw\",\"pmachriw\",\"pmaddwd\",\"pmagw\",\"pmaxsw\",\"pmaxub\",\"pminsw\",\"pminub\",\"pmovmskb\",\"pmulhrw\",\"pmulhuw\",\"pmulhw\",\"pmullw\",\"pmuludq\",\"pmvgezb\",\"pmvlzb\",\"pmvnzb\",\"pmvzb\",\"pop\",\"popa\",\"popad\",\"popaw\",\"popf\",\"popfd\",\"popfq\",\"popfw\",\"por\",\"prefetch\",\"prefetchnta\",\"prefetcht0\",\"prefetcht1\",\"prefetcht2\",\"prefetchw\",\"psadbw\",\"pshufd\",\"pshufhw\",\"pshuflw\",\"pshufw\",\"pslld\",\"pslldq\",\"psllq\",\"psllw\",\"psrad\",\"psraw\",\"psrld\",\"psrldq\",\"psrlq\",\"psrlw\",\"psubb\",\"psubd\",\"psubq\",\"psubsb\",\"psubsiw\",\"psubsw\",\"psubusb\",\"psubusw\",\"psubw\",\"pswapd\",\"punpckhbw\",\"punpckhdq\",\"punpckhqdq\",\"punpckhwd\",\"punpcklbw\",\"punpckldq\",\"punpcklqdq\",\"punpcklwd\",\"push\",\"pusha\",\"pushad\",\"pushaw\",\"pushf\",\"pushfd\",\"pushfq\",\"pushfw\",\"pxor\",\"rcl\",\"rcpps\",\"rcpss\",\"rcr\",\"rdmsr\",\"rdpmc\",\"rdshr\",\"rdtsc\",\"rdtscp\",\"ret\",\"retf\",\"retn\",\"rol\",\"ror\",\"rsdc\",\"rsldt\",\"rsm\",\"rsqrtps\",\"rsqrtss\",\"rsts\",\"sahf\",\"sal\",\"salc\",\"sar\",\"sbb\",\"scas\",\"scasb\",\"scasd\",\"scasq\",\"scasw\",\"seta\",\"setae\",\"setb\",\"setbe\",\"setc\",\"sete\",\"setg\",\"setge\",\"setl\",\"setle\",\"setna\",\"setnae\",\"setnb\",\"setnbe\",\"setnc\",\"setne\",\"setng\",\"setnge\",\"setnl\",\"setnle\",\"setno\",\"setnp\",\"setns\",\"setnz\",\"seto\",\"setp\",\"setpe\",\"setpo\",\"sets\",\"setz\",\"sfence\",\"sgdt\",\"shl\",\"shld\",\"shr\",\"shrd\",\"shufpd\",\"shufps\",\"sidt\",\"skinit\",\"sldt\",\"smi\",\"smint\",\"smintold\",\"smsw\",\"sqrtpd\",\"sqrtps\",\"sqrtsd\",\"sqrtss\",\"stc\",\"std\",\"stgi\",\"sti\",\"stmxcsr\",\"stos\",\"stosb\",\"stosd\",\"stosq\",\"stosw\",\"str\",\"sub\",\"subpd\",\"subps\",\"subsd\",\"subss\",\"svdc\",\"svldt\",\"svts\",\"swapgs\",\"syscall\",\"sysenter\",\"sysexit\",\"sysret\",\"test\",\"ucomisd\",\"ucomiss\",\"ud0\",\"ud1\",\"ud2\",\"umov\",\"unpckhpd\",\"unpckhps\",\"unpcklpd\",\"unpcklps\",\"verr\",\"verw\",\"vmload\",\"vmmcall\",\"vmrun\",\"vmsave\",\"wait\",\"wbinvd\",\"wrmsr\",\"wrshr\",\"xadd\",\"xbts\",\"xchg\",\"xlat\",\"xlatb\",\"xor\",\"xorpd\",\"xorps\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"___NASM_PATCHLEVEL__\",\"__FILE__\",\"__LINE__\",\"__NASM_MAJOR__\",\"__NASM_MINOR__\",\"__NASM_SUBMINOR__\",\"__NASM_VER__\",\"__NASM_VERSION_ID__\",\"__SECT__\",\"absolute\",\"align\",\"alignb\",\"at\",\"bits\",\"common\",\"endstruc\",\"extern\",\"global\",\"iend\",\"istruc\",\"org\",\"section\",\"seg\",\"segment\",\"strict\",\"struc\",\"use16\",\"use32\",\"wrt\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ';', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Intel x86 (NASM)\",\"Comment\")]},Rule {rMatcher = DetectChar '%', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Intel x86 (NASM)\",\"Preprocessor\")]},Rule {rMatcher = AnyChar \"\\\"'\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Intel x86 (NASM)\",\"String\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*[A-Za-z0-9_.$]+:\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(cmov|fcmov|j|loop|set)(a|ae|b|be|c|e|g|ge|l|le|na|nae|nb|nbe|nc|ne|ng|nge|nl|nle|no|np|ns|nz|o|p|pe|po|s|z)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"cpu (pentium|ppro|p2|p3|katmai|p4|willamette|prescott|ia64)*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(^|[ \\\\t,]+)((\\\\$|0x){1}[0-9]+[a-f0-9]*|[0-9]+[a-f0-9]*h)([ \\\\t,]+|$)\", reCaseSensitive = False}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(^|[ \\\\t,]+)([0-7]+(q|o)|[01]+b)([ \\\\t,]+|$)\", reCaseSensitive = False}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, 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 = []},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Preprocessor\",Context {cName = \"Preprocessor\", cSyntax = \"Intel x86 (NASM)\", cRules = [], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Intel x86 (NASM)\", cRules = [Rule {rMatcher = AnyChar \"\\\"'\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Nicola Gigante (nicola.gigante@gmail.com)\", sVersion = \"3\", sLicense = \"GPLv2+\", sExtensions = [\"*.asm\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Noweb.hs b/src/Skylighting/Syntax/Noweb.hs
--- a/src/Skylighting/Syntax/Noweb.hs
+++ b/src/Skylighting/Syntax/Noweb.hs
@@ -2,302 +2,6 @@
 module Skylighting.Syntax.Noweb (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "noweb"
-  , sFilename = "noweb.xml"
-  , sShortname = "Noweb"
-  , sContexts =
-      fromList
-        [ ( "CodeQuote"
-          , Context
-              { cName = "CodeQuote"
-              , cSyntax = "noweb"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '@' ']'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\]\\](?!\\])"
-                              , reCompiled = Just (compileRegex True "\\]\\](?!\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "noweb" , "SectionNames" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "C++" , "" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = True
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CodeSection"
-          , Context
-              { cName = "CodeSection"
-              , cSyntax = "noweb"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@$"
-                              , reCompiled = Just (compileRegex True "@$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "noweb" , "RawDocumentation" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@(?=[\\s%])"
-                              , reCompiled = Just (compileRegex True "@(?=[\\s%])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "noweb" , "RawDocumentation" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<<.*>>=$"
-                              , reCompiled = Just (compileRegex True "<<.*>>=$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "noweb" , "RawDocumentation" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "noweb" , "SectionNames" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "C++" , "" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = True
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "RawDocumentation"
-          , Context
-              { cName = "RawDocumentation"
-              , cSyntax = "noweb"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<<.*>>=$"
-                              , reCompiled = Just (compileRegex True "<<.*>>=$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "noweb" , "CodeSection" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '@' '['
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '[' '['
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "noweb" , "CodeQuote" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "HTML" , "" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = True
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SectionNames"
-          , Context
-              { cName = "SectionNames"
-              , cSyntax = "noweb"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@<<"
-                              , reCompiled = Just (compileRegex True "@<<")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<<.*[^@]>>(?!=)"
-                              , reCompiled = Just (compileRegex True "<<.*[^@]>>(?!=)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Scott Collins (scc@scottcollins.net)"
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.w" , "*.nw" ]
-  , sStartingContext = "RawDocumentation"
-  }
+syntax = read $! "Syntax {sName = \"noweb\", sFilename = \"noweb.xml\", sShortname = \"Noweb\", sContexts = fromList [(\"CodeQuote\",Context {cName = \"CodeQuote\", cSyntax = \"noweb\", cRules = [Rule {rMatcher = Detect2Chars '@' ']', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\]\\\\](?!\\\\])\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"noweb\",\"SectionNames\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"C++\",\"\"), rAttribute = NormalTok, rIncludeAttribute = True, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CodeSection\",Context {cName = \"CodeSection\", cSyntax = \"noweb\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"@$\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"noweb\",\"RawDocumentation\")]},Rule {rMatcher = RegExpr (RE {reString = \"@(?=[\\\\s%])\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"noweb\",\"RawDocumentation\")]},Rule {rMatcher = RegExpr (RE {reString = \"<<.*>>=$\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"noweb\",\"RawDocumentation\")]},Rule {rMatcher = IncludeRules (\"noweb\",\"SectionNames\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"C++\",\"\"), rAttribute = NormalTok, rIncludeAttribute = True, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"RawDocumentation\",Context {cName = \"RawDocumentation\", cSyntax = \"noweb\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<<.*>>=$\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"noweb\",\"CodeSection\")]},Rule {rMatcher = Detect2Chars '@' '[', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '[' '[', rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"noweb\",\"CodeQuote\")]},Rule {rMatcher = IncludeRules (\"HTML\",\"\"), rAttribute = NormalTok, rIncludeAttribute = True, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SectionNames\",Context {cName = \"SectionNames\", cSyntax = \"noweb\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"@<<\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"<<.*[^@]>>(?!=)\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Scott Collins (scc@scottcollins.net)\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.w\",\"*.nw\"], sStartingContext = \"RawDocumentation\"}"
diff --git a/src/Skylighting/Syntax/Objectivec.hs b/src/Skylighting/Syntax/Objectivec.hs
--- a/src/Skylighting/Syntax/Objectivec.hs
+++ b/src/Skylighting/Syntax/Objectivec.hs
@@ -2,602 +2,6 @@
 module Skylighting.Syntax.Objectivec (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Objective-C"
-  , sFilename = "objectivec.xml"
-  , sShortname = "Objectivec"
-  , sContexts =
-      fromList
-        [ ( "Default"
-          , Context
-              { cName = "Default"
-              , cSyntax = "Objective-C"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "@class"
-                               , "@defs"
-                               , "@encode"
-                               , "@end"
-                               , "@implementation"
-                               , "@interface"
-                               , "@private"
-                               , "@protected"
-                               , "@protocol"
-                               , "@public"
-                               , "@selector"
-                               , "break"
-                               , "case"
-                               , "continue"
-                               , "default"
-                               , "do"
-                               , "else"
-                               , "enum"
-                               , "extern"
-                               , "for"
-                               , "goto"
-                               , "if"
-                               , "return"
-                               , "self"
-                               , "sizeof"
-                               , "struct"
-                               , "super"
-                               , "switch"
-                               , "typedef"
-                               , "union"
-                               , "while"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "auto"
-                               , "char"
-                               , "const"
-                               , "double"
-                               , "float"
-                               , "int"
-                               , "long"
-                               , "register"
-                               , "short"
-                               , "signed"
-                               , "static"
-                               , "unsigned"
-                               , "void"
-                               , "volatile"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = AnyChar "fF"
-                              , rAttribute = FloatTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = True
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = StringDetect "ULL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LUL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LLU"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "UL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LU"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "U"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "L"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective-C" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective-C" , "SingleLineComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective-C" , "MultiLineComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ":!%&()+,-/.*<=>?[]|~^;"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#"
-                              , reCompiled = Just (compileRegex True "#")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Objective-C" , "Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '@' '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective-C" , "String" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "MultiLineComment"
-          , Context
-              { cName = "MultiLineComment"
-              , cSyntax = "Objective-C"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "MultiLineCommentPrep"
-          , Context
-              { cName = "MultiLineCommentPrep"
-              , cSyntax = "Objective-C"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Preprocessor"
-          , Context
-              { cName = "Preprocessor"
-              , cSyntax = "Objective-C"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '"' '"'
-                      , rAttribute = ImportTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '<' '>'
-                      , rAttribute = ImportTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "" )
-                      , rAttribute = PreprocessorTok
-                      , 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 ( "Objective-C" , "SingleLineComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Objective-C" , "MultiLineCommentPrep" ) ]
-                      }
-                  ]
-              , cAttribute = PreprocessorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "Objective-C" , "Default" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SingleLineComment"
-          , Context
-              { cName = "SingleLineComment"
-              , cSyntax = "Objective-C"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Objective-C"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = ""
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.m" , "*.h" ]
-  , sStartingContext = "Default"
-  }
+syntax = read $! "Syntax {sName = \"Objective-C\", sFilename = \"objectivec.xml\", sShortname = \"Objectivec\", sContexts = fromList [(\"Default\",Context {cName = \"Default\", cSyntax = \"Objective-C\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"@class\",\"@defs\",\"@encode\",\"@end\",\"@implementation\",\"@interface\",\"@private\",\"@protected\",\"@protocol\",\"@public\",\"@selector\",\"break\",\"case\",\"continue\",\"default\",\"do\",\"else\",\"enum\",\"extern\",\"for\",\"goto\",\"if\",\"return\",\"self\",\"sizeof\",\"struct\",\"super\",\"switch\",\"typedef\",\"union\",\"while\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"auto\",\"char\",\"const\",\"double\",\"float\",\"int\",\"long\",\"register\",\"short\",\"signed\",\"static\",\"unsigned\",\"void\",\"volatile\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [Rule {rMatcher = AnyChar \"fF\", rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [Rule {rMatcher = StringDetect \"ULL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LUL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LLU\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"UL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LU\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"U\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"L\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective-C\",\"String\")]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective-C\",\"SingleLineComment\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective-C\",\"MultiLineComment\")]},Rule {rMatcher = AnyChar \":!%&()+,-/.*<=>?[]|~^;\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Objective-C\",\"Preprocessor\")]},Rule {rMatcher = Detect2Chars '@' '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective-C\",\"String\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"MultiLineComment\",Context {cName = \"MultiLineComment\", cSyntax = \"Objective-C\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"MultiLineCommentPrep\",Context {cName = \"MultiLineCommentPrep\", cSyntax = \"Objective-C\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Preprocessor\",Context {cName = \"Preprocessor\", cSyntax = \"Objective-C\", cRules = [Rule {rMatcher = LineContinue, rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RangeDetect '\"' '\"', rAttribute = ImportTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RangeDetect '<' '>', rAttribute = ImportTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Doxygen\",\"\"), rAttribute = PreprocessorTok, 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 (\"Objective-C\",\"SingleLineComment\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective-C\",\"MultiLineCommentPrep\")]}], cAttribute = PreprocessorTok, cLineEmptyContext = [], cLineEndContext = [Push (\"Objective-C\",\"Default\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SingleLineComment\",Context {cName = \"SingleLineComment\", cSyntax = \"Objective-C\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Objective-C\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCStringChar, rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.m\",\"*.h\"], sStartingContext = \"Default\"}"
diff --git a/src/Skylighting/Syntax/Objectivecpp.hs b/src/Skylighting/Syntax/Objectivecpp.hs
--- a/src/Skylighting/Syntax/Objectivecpp.hs
+++ b/src/Skylighting/Syntax/Objectivecpp.hs
@@ -2,1352 +2,6 @@
 module Skylighting.Syntax.Objectivecpp (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Objective-C++"
-  , sFilename = "objectivecpp.xml"
-  , sShortname = "Objectivecpp"
-  , sContexts =
-      fromList
-        [ ( "Commentar 1"
-          , Context
-              { cName = "Commentar 1"
-              , cSyntax = "Objective-C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Commentar 2"
-          , Context
-              { cName = "Commentar 2"
-              , cSyntax = "Objective-C++"
-              , 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
-              }
-          )
-        , ( "Default"
-          , Context
-              { cName = "Default"
-              , cSyntax = "Objective-C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*if\\s+0"
-                              , reCompiled = Just (compileRegex True "#\\s*if\\s+0")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective-C++" , "Outscoped" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective-C++" , "Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "//BEGIN"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective-C++" , "Region Marker" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "//END"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective-C++" , "Region Marker" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "@class"
-                               , "@defs"
-                               , "@encode"
-                               , "@end"
-                               , "@implementation"
-                               , "@interface"
-                               , "@private"
-                               , "@protected"
-                               , "@protocol"
-                               , "@public"
-                               , "@selector"
-                               , "and"
-                               , "and_eq"
-                               , "asm"
-                               , "bad_cast"
-                               , "bad_typeid"
-                               , "bitand"
-                               , "bitor"
-                               , "break"
-                               , "case"
-                               , "catch"
-                               , "class"
-                               , "compl"
-                               , "const_cast"
-                               , "continue"
-                               , "default"
-                               , "delete"
-                               , "do"
-                               , "dynamic_cast"
-                               , "else"
-                               , "enum"
-                               , "explicit"
-                               , "export"
-                               , "extern"
-                               , "false"
-                               , "for"
-                               , "friend"
-                               , "goto"
-                               , "if"
-                               , "inline"
-                               , "namespace"
-                               , "new"
-                               , "not"
-                               , "not_eq"
-                               , "operator"
-                               , "or"
-                               , "or_eq"
-                               , "private"
-                               , "protected"
-                               , "public"
-                               , "qobject_cast"
-                               , "reinterpret_cast"
-                               , "return"
-                               , "self"
-                               , "sizeof"
-                               , "static_cast"
-                               , "struct"
-                               , "super"
-                               , "switch"
-                               , "template"
-                               , "this"
-                               , "throw"
-                               , "true"
-                               , "try"
-                               , "type_info"
-                               , "typedef"
-                               , "typeid"
-                               , "typename"
-                               , "union"
-                               , "using"
-                               , "virtual"
-                               , "while"
-                               , "xor"
-                               , "xor_eq"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "auto"
-                               , "bool"
-                               , "char"
-                               , "const"
-                               , "double"
-                               , "float"
-                               , "int"
-                               , "int16_t"
-                               , "int32_t"
-                               , "int64_t"
-                               , "int8_t"
-                               , "long"
-                               , "mutable"
-                               , "register"
-                               , "short"
-                               , "signed"
-                               , "static"
-                               , "uchar"
-                               , "uint"
-                               , "uint16_t"
-                               , "uint32_t"
-                               , "uint64_t"
-                               , "uint8_t"
-                               , "unsigned"
-                               , "void"
-                               , "volatile"
-                               , "wchar_t"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = AnyChar "fF"
-                              , rAttribute = FloatTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = True
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = StringDetect "ULL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LUL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LLU"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "UL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LU"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "U"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "L"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective-C++" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Objective-C++" , "SingleLineComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Objective-C++" , "MultiLineComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#"
-                              , reCompiled = Just (compileRegex True "#")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Objective-C++" , "Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '@' '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective-C++" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "FALSE"
-                               , "K_DCOP"
-                               , "Q_ARG"
-                               , "Q_ASSERT"
-                               , "Q_ASSERT_X"
-                               , "Q_CLASSINFO"
-                               , "Q_CLEANUP_RESOURCE"
-                               , "Q_D"
-                               , "Q_DECLARE_FLAGS"
-                               , "Q_DECLARE_INTERFACE"
-                               , "Q_DECLARE_OPERATORS_FOR_FLAGS"
-                               , "Q_DECLARE_PRIVATE"
-                               , "Q_DECLARE_PUBLIC"
-                               , "Q_DECLARE_SHARED"
-                               , "Q_DECLARE_TYPEINFO"
-                               , "Q_DISABLE_COPY"
-                               , "Q_ENUMS"
-                               , "Q_EXPORT"
-                               , "Q_FLAGS"
-                               , "Q_FOREACH"
-                               , "Q_FOREVER"
-                               , "Q_GADGET"
-                               , "Q_GLOBAL_STATIC"
-                               , "Q_GLOBAL_STATIC_WITH_ARGS"
-                               , "Q_INIT_RESOURCE"
-                               , "Q_INTERFACES"
-                               , "Q_INVOKABLE"
-                               , "Q_OBJECT"
-                               , "Q_OVERRIDE"
-                               , "Q_PROPERTY"
-                               , "Q_Q"
-                               , "Q_RETURN_ARG"
-                               , "Q_SCRIPTABLE"
-                               , "Q_SETS"
-                               , "Q_SIGNALS"
-                               , "Q_SLOTS"
-                               , "SIGNAL"
-                               , "SLOT"
-                               , "TRUE"
-                               , "connect"
-                               , "disconnect"
-                               , "emit"
-                               , "foreach"
-                               , "forever"
-                               , "signals"
-                               , "slots"
-                               ])
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "" )
-                      , rAttribute = NormalTok
-                      , 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 ( "Objective-C++" , "Commentar 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective-C++" , "Commentar 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ":!%&()+,-/.*<=>?[]{|}~^;"
-                      , 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
-              }
-          )
-        , ( "Define"
-          , Context
-              { cName = "Define"
-              , cSyntax = "Objective-C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = PreprocessorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "MultiLineComment"
-          , Context
-              { cName = "MultiLineComment"
-              , cSyntax = "Objective-C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "MultiLineCommentPrep"
-          , Context
-              { cName = "MultiLineCommentPrep"
-              , cSyntax = "Objective-C++"
-              , 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 , Pop ]
-                      }
-                  , 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
-              }
-          )
-        , ( "Outscoped"
-          , Context
-              { cName = "Outscoped"
-              , cSyntax = "Objective-C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective-C++" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "" )
-                      , 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 = [ Push ( "Objective-C++" , "Commentar 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective-C++" , "Commentar 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*if"
-                              , reCompiled = Just (compileRegex True "#\\s*if")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Objective-C++" , "Outscoped intern" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*(endif|else|elif)"
-                              , reCompiled = Just (compileRegex True "#\\s*(endif|else|elif)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Outscoped intern"
-          , Context
-              { cName = "Outscoped intern"
-              , cSyntax = "Objective-C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective-C++" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "" )
-                      , 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 = [ Push ( "Objective-C++" , "Commentar 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective-C++" , "Commentar 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*if"
-                              , reCompiled = Just (compileRegex True "#\\s*if")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Objective-C++" , "Outscoped intern" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*endif"
-                              , reCompiled = Just (compileRegex True "#\\s*endif")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Preprocessor"
-          , Context
-              { cName = "Preprocessor"
-              , cSyntax = "Objective-C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "define.*((?=\\\\))"
-                              , reCompiled = Just (compileRegex True "define.*((?=\\\\))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective-C++" , "Define" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "define.*"
-                              , reCompiled = Just (compileRegex True "define.*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '"' '"'
-                      , rAttribute = ImportTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '<' '>'
-                      , rAttribute = ImportTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "" )
-                      , rAttribute = PreprocessorTok
-                      , 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 ( "Objective-C++" , "Commentar 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Objective-C++" , "MultiLineCommentPrep" ) ]
-                      }
-                  ]
-              , cAttribute = PreprocessorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Region Marker"
-          , Context
-              { cName = "Region Marker"
-              , cSyntax = "Objective-C++"
-              , cRules = []
-              , cAttribute = RegionMarkerTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SingleLineComment"
-          , Context
-              { cName = "SingleLineComment"
-              , cSyntax = "Objective-C++"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Objective-C++"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Gennady Telegin (gepo@lvk.cs.msu.su"
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.mm" , "*.M" , "*.h" ]
-  , sStartingContext = "Default"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Objective-C++\", sFilename = \"objectivecpp.xml\", sShortname = \"Objectivecpp\", sContexts = fromList [(\"Commentar 1\",Context {cName = \"Commentar 1\", cSyntax = \"Objective-C++\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},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 = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Commentar 2\",Context {cName = \"Commentar 2\", cSyntax = \"Objective-C++\", 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}),(\"Default\",Context {cName = \"Default\", cSyntax = \"Objective-C++\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*if\\\\s+0\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Objective-C++\",\"Outscoped\")]},Rule {rMatcher = DetectChar '#', rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Objective-C++\",\"Preprocessor\")]},Rule {rMatcher = StringDetect \"//BEGIN\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Objective-C++\",\"Region Marker\")]},Rule {rMatcher = StringDetect \"//END\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Objective-C++\",\"Region Marker\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"@class\",\"@defs\",\"@encode\",\"@end\",\"@implementation\",\"@interface\",\"@private\",\"@protected\",\"@protocol\",\"@public\",\"@selector\",\"and\",\"and_eq\",\"asm\",\"bad_cast\",\"bad_typeid\",\"bitand\",\"bitor\",\"break\",\"case\",\"catch\",\"class\",\"compl\",\"const_cast\",\"continue\",\"default\",\"delete\",\"do\",\"dynamic_cast\",\"else\",\"enum\",\"explicit\",\"export\",\"extern\",\"false\",\"for\",\"friend\",\"goto\",\"if\",\"inline\",\"namespace\",\"new\",\"not\",\"not_eq\",\"operator\",\"or\",\"or_eq\",\"private\",\"protected\",\"public\",\"qobject_cast\",\"reinterpret_cast\",\"return\",\"self\",\"sizeof\",\"static_cast\",\"struct\",\"super\",\"switch\",\"template\",\"this\",\"throw\",\"true\",\"try\",\"type_info\",\"typedef\",\"typeid\",\"typename\",\"union\",\"using\",\"virtual\",\"while\",\"xor\",\"xor_eq\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"auto\",\"bool\",\"char\",\"const\",\"double\",\"float\",\"int\",\"int16_t\",\"int32_t\",\"int64_t\",\"int8_t\",\"long\",\"mutable\",\"register\",\"short\",\"signed\",\"static\",\"uchar\",\"uint\",\"uint16_t\",\"uint32_t\",\"uint64_t\",\"uint8_t\",\"unsigned\",\"void\",\"volatile\",\"wchar_t\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [Rule {rMatcher = AnyChar \"fF\", rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [Rule {rMatcher = StringDetect \"ULL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LUL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LLU\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"UL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LU\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"U\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"L\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective-C++\",\"String\")]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective-C++\",\"SingleLineComment\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective-C++\",\"MultiLineComment\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Objective-C++\",\"Preprocessor\")]},Rule {rMatcher = Detect2Chars '@' '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective-C++\",\"String\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"FALSE\",\"K_DCOP\",\"Q_ARG\",\"Q_ASSERT\",\"Q_ASSERT_X\",\"Q_CLASSINFO\",\"Q_CLEANUP_RESOURCE\",\"Q_D\",\"Q_DECLARE_FLAGS\",\"Q_DECLARE_INTERFACE\",\"Q_DECLARE_OPERATORS_FOR_FLAGS\",\"Q_DECLARE_PRIVATE\",\"Q_DECLARE_PUBLIC\",\"Q_DECLARE_SHARED\",\"Q_DECLARE_TYPEINFO\",\"Q_DISABLE_COPY\",\"Q_ENUMS\",\"Q_EXPORT\",\"Q_FLAGS\",\"Q_FOREACH\",\"Q_FOREVER\",\"Q_GADGET\",\"Q_GLOBAL_STATIC\",\"Q_GLOBAL_STATIC_WITH_ARGS\",\"Q_INIT_RESOURCE\",\"Q_INTERFACES\",\"Q_INVOKABLE\",\"Q_OBJECT\",\"Q_OVERRIDE\",\"Q_PROPERTY\",\"Q_Q\",\"Q_RETURN_ARG\",\"Q_SCRIPTABLE\",\"Q_SETS\",\"Q_SIGNALS\",\"Q_SLOTS\",\"SIGNAL\",\"SLOT\",\"TRUE\",\"connect\",\"disconnect\",\"emit\",\"foreach\",\"forever\",\"signals\",\"slots\"])), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Doxygen\",\"\"), rAttribute = NormalTok, 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 (\"Objective-C++\",\"Commentar 1\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective-C++\",\"Commentar 2\")]},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \":!%&()+,-/.*<=>?[]{|}~^;\", 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}),(\"Define\",Context {cName = \"Define\", cSyntax = \"Objective-C++\", cRules = [Rule {rMatcher = LineContinue, rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = PreprocessorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"MultiLineComment\",Context {cName = \"MultiLineComment\", cSyntax = \"Objective-C++\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"MultiLineCommentPrep\",Context {cName = \"MultiLineCommentPrep\", cSyntax = \"Objective-C++\", 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,Pop]},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}),(\"Outscoped\",Context {cName = \"Outscoped\", cSyntax = \"Objective-C++\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},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 = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective-C++\",\"String\")]},Rule {rMatcher = IncludeRules (\"Doxygen\",\"\"), 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 = [Push (\"Objective-C++\",\"Commentar 1\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective-C++\",\"Commentar 2\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*if\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Objective-C++\",\"Outscoped intern\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*(endif|else|elif)\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Outscoped intern\",Context {cName = \"Outscoped intern\", cSyntax = \"Objective-C++\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},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 = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective-C++\",\"String\")]},Rule {rMatcher = IncludeRules (\"Doxygen\",\"\"), 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 = [Push (\"Objective-C++\",\"Commentar 1\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective-C++\",\"Commentar 2\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*if\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Objective-C++\",\"Outscoped intern\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*endif\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Preprocessor\",Context {cName = \"Preprocessor\", cSyntax = \"Objective-C++\", cRules = [Rule {rMatcher = LineContinue, rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"define.*((?=\\\\\\\\))\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective-C++\",\"Define\")]},Rule {rMatcher = RegExpr (RE {reString = \"define.*\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RangeDetect '\"' '\"', rAttribute = ImportTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RangeDetect '<' '>', rAttribute = ImportTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Doxygen\",\"\"), rAttribute = PreprocessorTok, 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 (\"Objective-C++\",\"Commentar 1\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective-C++\",\"MultiLineCommentPrep\")]}], cAttribute = PreprocessorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Region Marker\",Context {cName = \"Region Marker\", cSyntax = \"Objective-C++\", cRules = [], cAttribute = RegionMarkerTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SingleLineComment\",Context {cName = \"SingleLineComment\", cSyntax = \"Objective-C++\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Objective-C++\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCStringChar, rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Gennady Telegin (gepo@lvk.cs.msu.su\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.mm\",\"*.M\",\"*.h\"], sStartingContext = \"Default\"}"
diff --git a/src/Skylighting/Syntax/Ocaml.hs b/src/Skylighting/Syntax/Ocaml.hs
--- a/src/Skylighting/Syntax/Ocaml.hs
+++ b/src/Skylighting/Syntax/Ocaml.hs
@@ -2,2222 +2,6 @@
 module Skylighting.Syntax.Ocaml (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Objective Caml"
-  , sFilename = "ocaml.xml"
-  , sShortname = "Ocaml"
-  , sContexts =
-      fromList
-        [ ( "Camlp4 Quotation"
-          , Context
-              { cName = "Camlp4 Quotation"
-              , cSyntax = "Objective Caml"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '>' '>'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '<' '<'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Objective Caml" , "Camlp4 Quotation" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "<:`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*<"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "<:`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*<")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Objective Caml" , "Camlp4 Quotation" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(\\\\|>>|<<)"
-                              , reCompiled = Just (compileRegex True "\\\\(\\\\|>>|<<)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\<:`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*<"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\<:`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*<")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Code"
-          , Context
-              { cName = "Code"
-              , cSyntax = "Objective Caml"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective Caml" , "Nested Code 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective Caml" , "Nested Code 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "(**)"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "(**"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective Caml" , "Ocamldoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\(\\*\\$(T|Q|R|=)"
-                              , reCompiled = Just (compileRegex True "\\(\\*\\$(T|Q|R|=)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective Caml" , "qtest header" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '(' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective Caml" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "#`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*.*$"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "#`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective Caml" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "'((\\\\[ntbr'\"\\\\]|\\\\[0-9]{3}|\\\\x[0-9A-Fa-f]{2})|[^'])'"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "'((\\\\[ntbr'\"\\\\]|\\\\[0-9]{3}|\\\\x[0-9A-Fa-f]{2})|[^'])'")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '<' '<'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Objective Caml" , "Camlp4 Quotation" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "<:`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*<"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "<:`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*<")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Objective Caml" , "Camlp4 Quotation" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "and"
-                               , "as"
-                               , "asr"
-                               , "assert"
-                               , "begin"
-                               , "class"
-                               , "closed"
-                               , "constraint"
-                               , "do"
-                               , "done"
-                               , "downto"
-                               , "else"
-                               , "end"
-                               , "exception"
-                               , "external"
-                               , "false"
-                               , "for"
-                               , "fun"
-                               , "function"
-                               , "functor"
-                               , "if"
-                               , "in"
-                               , "include"
-                               , "inherit"
-                               , "land"
-                               , "lazy"
-                               , "let"
-                               , "lor"
-                               , "lsl"
-                               , "lsr"
-                               , "lxor"
-                               , "match"
-                               , "method"
-                               , "mod"
-                               , "module"
-                               , "mutable"
-                               , "new"
-                               , "object"
-                               , "of"
-                               , "open"
-                               , "or"
-                               , "parser"
-                               , "private"
-                               , "rec"
-                               , "sig"
-                               , "struct"
-                               , "then"
-                               , "to"
-                               , "true"
-                               , "try"
-                               , "type"
-                               , "val"
-                               , "virtual"
-                               , "when"
-                               , "while"
-                               , "with"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "declare" , "value" , "where" ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True [ "exit" , "failwith" , "invalid_arg" , "raise" ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "abs"
-                               , "abs_float"
-                               , "acos"
-                               , "asin"
-                               , "at_exit"
-                               , "atan"
-                               , "atan2"
-                               , "bool_of_string"
-                               , "ceil"
-                               , "char_of_int"
-                               , "classify_float"
-                               , "close_in"
-                               , "close_in_noerr"
-                               , "close_out"
-                               , "close_out_noerr"
-                               , "compare"
-                               , "cos"
-                               , "cosh"
-                               , "decr"
-                               , "do_at_exit"
-                               , "epsilon_float"
-                               , "exp"
-                               , "float"
-                               , "float_of_int"
-                               , "float_of_string"
-                               , "floor"
-                               , "flush"
-                               , "flush_all"
-                               , "format_of_string"
-                               , "frexp"
-                               , "fst"
-                               , "ignore"
-                               , "in_channel_length"
-                               , "incr"
-                               , "infinity"
-                               , "input"
-                               , "input_binary_int"
-                               , "input_byte"
-                               , "input_char"
-                               , "input_line"
-                               , "input_value"
-                               , "int_of_char"
-                               , "int_of_float"
-                               , "int_of_string"
-                               , "ldexp"
-                               , "lnot"
-                               , "log"
-                               , "log10"
-                               , "max"
-                               , "max_float"
-                               , "max_int"
-                               , "min"
-                               , "min_float"
-                               , "min_int"
-                               , "mod_float"
-                               , "modf"
-                               , "nan"
-                               , "neg_infinity"
-                               , "not"
-                               , "open_in"
-                               , "open_in_bin"
-                               , "open_in_gen"
-                               , "open_out"
-                               , "open_out_bin"
-                               , "open_out_gen"
-                               , "out_channel_length"
-                               , "output"
-                               , "output_binary_int"
-                               , "output_byte"
-                               , "output_char"
-                               , "output_string"
-                               , "output_value"
-                               , "pos_in"
-                               , "pos_out"
-                               , "pred"
-                               , "prerr_char"
-                               , "prerr_endline"
-                               , "prerr_float"
-                               , "prerr_int"
-                               , "prerr_newline"
-                               , "prerr_string"
-                               , "print_char"
-                               , "print_endline"
-                               , "print_float"
-                               , "print_int"
-                               , "print_newline"
-                               , "print_string"
-                               , "read_float"
-                               , "read_int"
-                               , "read_line"
-                               , "really_input"
-                               , "ref"
-                               , "seek_in"
-                               , "seek_out"
-                               , "set_binary_mode_in"
-                               , "set_binary_mode_out"
-                               , "sin"
-                               , "sinh"
-                               , "snd"
-                               , "sqrt"
-                               , "stderr"
-                               , "stdin"
-                               , "stdout"
-                               , "string_of_bool"
-                               , "string_of_float"
-                               , "string_of_format"
-                               , "string_of_int"
-                               , "succ"
-                               , "tan"
-                               , "tanh"
-                               , "truncate"
-                               , "unsafe_really_input"
-                               , "valid_float_lexem"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "array"
-                               , "bool"
-                               , "char"
-                               , "exn"
-                               , "format4"
-                               , "fpclass"
-                               , "in_channel"
-                               , "int"
-                               , "int32"
-                               , "int64"
-                               , "lazy_t"
-                               , "list"
-                               , "nativeint"
-                               , "open_flag"
-                               , "option"
-                               , "out_channel"
-                               , "real"
-                               , "ref"
-                               , "string"
-                               , "unit"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Assert_failure"
-                               , "Division_by_zero"
-                               , "End_of_file"
-                               , "Exit"
-                               , "Failure"
-                               , "Invalid_argument"
-                               , "Match_failure"
-                               , "Not_found"
-                               , "Out_of_memory"
-                               , "Stack_overflow"
-                               , "Sys_blocked_io"
-                               , "Sys_error"
-                               , "Undefined_recursive_module"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "FP_infinite"
-                               , "FP_nan"
-                               , "FP_normal"
-                               , "FP_subnormal"
-                               , "FP_zero"
-                               , "None"
-                               , "Open_append"
-                               , "Open_binary"
-                               , "Open_creat"
-                               , "Open_excl"
-                               , "Open_nonblock"
-                               , "Open_rdonly"
-                               , "Open_text"
-                               , "Open_trunc"
-                               , "Open_wronly"
-                               , "Some"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Arg"
-                               , "Array"
-                               , "ArrayLabels"
-                               , "Buffer"
-                               , "Callback"
-                               , "Char"
-                               , "Complex"
-                               , "Digest"
-                               , "Filename"
-                               , "Format"
-                               , "Gc"
-                               , "Genlex"
-                               , "Hashtbl"
-                               , "Int32"
-                               , "Int64"
-                               , "Lazy"
-                               , "Lexing"
-                               , "List"
-                               , "ListLabels"
-                               , "Map"
-                               , "Marshal"
-                               , "MoreLabels"
-                               , "Nativeint"
-                               , "Oo"
-                               , "Parsing"
-                               , "Printexc"
-                               , "Printf"
-                               , "Queue"
-                               , "Random"
-                               , "Scanf"
-                               , "Set"
-                               , "Sort"
-                               , "Stack"
-                               , "StdLabels"
-                               , "Stream"
-                               , "String"
-                               , "StringLabels"
-                               , "Sys"
-                               , "Weak"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "[a-z\\300-\\326\\330-\\337_][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "[a-z\\300-\\326\\330-\\337_][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "`?[A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "`?[A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-?0[xX][0-9A-Fa-f_]+"
-                              , reCompiled = Just (compileRegex True "-?0[xX][0-9A-Fa-f_]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-?0[oO][0-7_]+"
-                              , reCompiled = Just (compileRegex True "-?0[oO][0-7_]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-?0[bB][01_]+"
-                              , reCompiled = Just (compileRegex True "-?0[bB][01_]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "-?[0-9][0-9_]*(\\.[0-9][0-9_]*([eE][-+]?[0-9][0-9_]*)?|[eE][-+]?[0-9][0-9_]*)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "-?[0-9][0-9_]*(\\.[0-9][0-9_]*([eE][-+]?[0-9][0-9_]*)?|[eE][-+]?[0-9][0-9_]*)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-?[0-9][0-9_]*"
-                              , reCompiled = Just (compileRegex True "-?[0-9][0-9_]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Objective Caml" , "Unmatched Closing Brackets" )
-                      , 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 = "Objective Caml"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' ')'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '(' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective Caml" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Objective Caml" , "String in Comment" ) ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Nested Code 1"
-          , Context
-              { cName = "Nested Code 1"
-              , cSyntax = "Objective Caml"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Objective Caml" , "Code" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = True
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Nested Code 2"
-          , Context
-              { cName = "Nested Code 2"
-              , cSyntax = "Objective Caml"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Objective Caml" , "Code" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = True
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Nested Ocamldoc"
-          , Context
-              { cName = "Nested Ocamldoc"
-              , cSyntax = "Objective Caml"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '*' ')'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Objective Caml" , "Ocamldoc" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = True
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Ocamldoc"
-          , Context
-              { cName = "Ocamldoc"
-              , cSyntax = "Objective Caml"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' ')'
-                      , rAttribute = CommentTok
-                      , 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 = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "(**)"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "(**"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective Caml" , "Ocamldoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '(' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective Caml" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Objective Caml" , "String in Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective Caml" , "Ocamldoc Code" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '{' '['
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Objective Caml" , "Ocamldoc Preformatted" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '{' '%'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective Caml" , "Ocamldoc LaTeX" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '{' '^'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Objective Caml" , "Nested Ocamldoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[{]v(\\s|$)"
-                              , reCompiled = Just (compileRegex True "[{]v(\\s|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Objective Caml" , "Ocamldoc Verbatim" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[{]b(\\s|$)"
-                              , reCompiled = Just (compileRegex True "[{]b(\\s|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective Caml" , "Ocamldoc Bold" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[{]i(\\s|$)"
-                              , reCompiled = Just (compileRegex True "[{]i(\\s|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Objective Caml" , "Ocamldoc Italic" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[{]e(\\s|$)"
-                              , reCompiled = Just (compileRegex True "[{]e(\\s|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Objective Caml" , "Ocamldoc Emphasised" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "[{][0-9]+(:`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*)?\\s"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "[{][0-9]+(:`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*)?\\s")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Objective Caml" , "Ocamldoc Heading" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "[{][{]:`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*[}]"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "[{][{]:`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*[}]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective Caml" , "Ocamldoc Link" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[{]!([a-z]+:)?"
-                              , reCompiled = Just (compileRegex True "[{]!([a-z]+:)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Objective Caml" , "Ocamldoc References" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "[{]`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*(\\s|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "[{]`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*(\\s|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Objective Caml" , "Nested Ocamldoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@see\\s*(<[^>]*>|\"[^\"]*\"|'[^']*')"
-                              , reCompiled =
-                                  Just (compileRegex True "@see\\s*(<[^>]*>|\"[^\"]*\"|'[^']*')")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@(param|raise)\\s*"
-                              , reCompiled = Just (compileRegex True "@(param|raise)\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Objective Caml" , "Ocamldoc Identifier" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@(author|deprecated|return|since|version)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "@(author|deprecated|return|since|version)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "@`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "@`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , 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 = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Objective Caml" , "Unmatched Closing Brackets" )
-                      , 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
-              }
-          )
-        , ( "Ocamldoc Bold"
-          , Context
-              { cName = "Ocamldoc Bold"
-              , cSyntax = "Objective Caml"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Objective Caml" , "Nested Ocamldoc" )
-                      , 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
-              }
-          )
-        , ( "Ocamldoc Code"
-          , Context
-              { cName = "Ocamldoc Code"
-              , cSyntax = "Objective Caml"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Objective Caml" , "Code" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = True
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Ocamldoc Emphasised"
-          , Context
-              { cName = "Ocamldoc Emphasised"
-              , cSyntax = "Objective Caml"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Objective Caml" , "Nested Ocamldoc" )
-                      , 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
-              }
-          )
-        , ( "Ocamldoc Heading"
-          , Context
-              { cName = "Ocamldoc Heading"
-              , cSyntax = "Objective Caml"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Objective Caml" , "Nested Ocamldoc" )
-                      , 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
-              }
-          )
-        , ( "Ocamldoc Identifier"
-          , Context
-              { cName = "Ocamldoc Identifier"
-              , cSyntax = "Objective Caml"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*(\\.`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*)*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*(\\.`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*)*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '*' ')'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Ocamldoc Italic"
-          , Context
-              { cName = "Ocamldoc Italic"
-              , cSyntax = "Objective Caml"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Objective Caml" , "Nested Ocamldoc" )
-                      , 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
-              }
-          )
-        , ( "Ocamldoc LaTeX"
-          , Context
-              { cName = "Ocamldoc LaTeX"
-              , cSyntax = "Objective Caml"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '%' '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "LaTeX" , "" )
-                      , 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
-              }
-          )
-        , ( "Ocamldoc Link"
-          , Context
-              { cName = "Ocamldoc Link"
-              , cSyntax = "Objective Caml"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Objective Caml" , "Nested Ocamldoc" )
-                      , 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
-              }
-          )
-        , ( "Ocamldoc Preformatted"
-          , Context
-              { cName = "Ocamldoc Preformatted"
-              , cSyntax = "Objective Caml"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars ']' '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Objective Caml" , "Code" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = True
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Ocamldoc References"
-          , Context
-              { cName = "Ocamldoc References"
-              , cSyntax = "Objective Caml"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '*' ')'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*(\\.`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*)*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*(\\.`?[a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\377][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*)*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Ocamldoc Verbatim"
-          , Context
-              { cName = "Ocamldoc Verbatim"
-              , cSyntax = "Objective Caml"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars 'v' '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Objective Caml"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\\\[ntbr'\"\\\\]|\\\\[0-9]{3}|\\\\x[0-9A-Fa-f]{2})"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(\\\\[ntbr'\"\\\\]|\\\\[0-9]{3}|\\\\x[0-9A-Fa-f]{2})")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\$"
-                              , reCompiled = Just (compileRegex True "\\\\$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String in Comment"
-          , Context
-              { cName = "String in Comment"
-              , cSyntax = "Objective Caml"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Objective Caml" , "String" )
-                      , 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
-              }
-          )
-        , ( "Unmatched Closing Brackets"
-          , Context
-              { cName = "Unmatched Closing Brackets"
-              , cSyntax = "Objective Caml"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' ')'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars 'v' '}'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars ']' '}'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '%' '}'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , 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
-              }
-          )
-        , ( "qtest"
-          , Context
-              { cName = "qtest"
-              , cSyntax = "Objective Caml"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Objective Caml" , "Code" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = True
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "qtest header"
-          , Context
-              { cName = "qtest header"
-              , cSyntax = "Objective Caml"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "as" , "forall" , "in" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '&'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Objective Caml" , "qtest param" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "[a-z\\300-\\326\\330-\\337_][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "[a-z\\300-\\326\\330-\\337_][a-z\\300-\\326\\330-\\337A-Z\\340-\\366\\370-\\3770-9_']*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "Objective Caml" , "qtest" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "qtest param"
-          , Context
-              { cName = "qtest param"
-              , cSyntax = "Objective Caml"
-              , cRules = []
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "Objective Caml" , "qtest" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor =
-      "Glyn Webster (glynwebster@orcon.net.nz) and Vincent Hugot (vincent.hugot@gmail.com)"
-  , sVersion = "3"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.ml" , "*.mli" ]
-  , sStartingContext = "Code"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Objective Caml\", sFilename = \"ocaml.xml\", sShortname = \"Ocaml\", sContexts = fromList [(\"Camlp4 Quotation\",Context {cName = \"Camlp4 Quotation\", cSyntax = \"Objective Caml\", cRules = [Rule {rMatcher = Detect2Chars '>' '>', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '<' '<', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Camlp4 Quotation\")]},Rule {rMatcher = RegExpr (RE {reString = \"<:`?[a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\377][a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\3770-9_']*<\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Camlp4 Quotation\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(\\\\\\\\|>>|<<)\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\<:`?[a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\377][a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\3770-9_']*<\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Code\",Context {cName = \"Code\", cSyntax = \"Objective Caml\", cRules = [Rule {rMatcher = DetectChar '[', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Nested Code 1\")]},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Nested Code 2\")]},Rule {rMatcher = StringDetect \"(**)\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"(**\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Ocamldoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\(\\\\*\\\\$(T|Q|R|=)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"qtest header\")]},Rule {rMatcher = Detect2Chars '(' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"#`?[a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\377][a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\3770-9_']*.*$\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"String\")]},Rule {rMatcher = RegExpr (RE {reString = \"'((\\\\\\\\[ntbr'\\\"\\\\\\\\]|\\\\\\\\[0-9]{3}|\\\\\\\\x[0-9A-Fa-f]{2})|[^'])'\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '<' '<', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Camlp4 Quotation\")]},Rule {rMatcher = RegExpr (RE {reString = \"<:`?[a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\377][a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\3770-9_']*<\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Camlp4 Quotation\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"and\",\"as\",\"asr\",\"assert\",\"begin\",\"class\",\"closed\",\"constraint\",\"do\",\"done\",\"downto\",\"else\",\"end\",\"exception\",\"external\",\"false\",\"for\",\"fun\",\"function\",\"functor\",\"if\",\"in\",\"include\",\"inherit\",\"land\",\"lazy\",\"let\",\"lor\",\"lsl\",\"lsr\",\"lxor\",\"match\",\"method\",\"mod\",\"module\",\"mutable\",\"new\",\"object\",\"of\",\"open\",\"or\",\"parser\",\"private\",\"rec\",\"sig\",\"struct\",\"then\",\"to\",\"true\",\"try\",\"type\",\"val\",\"virtual\",\"when\",\"while\",\"with\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"declare\",\"value\",\"where\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"exit\",\"failwith\",\"invalid_arg\",\"raise\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"abs\",\"abs_float\",\"acos\",\"asin\",\"at_exit\",\"atan\",\"atan2\",\"bool_of_string\",\"ceil\",\"char_of_int\",\"classify_float\",\"close_in\",\"close_in_noerr\",\"close_out\",\"close_out_noerr\",\"compare\",\"cos\",\"cosh\",\"decr\",\"do_at_exit\",\"epsilon_float\",\"exp\",\"float\",\"float_of_int\",\"float_of_string\",\"floor\",\"flush\",\"flush_all\",\"format_of_string\",\"frexp\",\"fst\",\"ignore\",\"in_channel_length\",\"incr\",\"infinity\",\"input\",\"input_binary_int\",\"input_byte\",\"input_char\",\"input_line\",\"input_value\",\"int_of_char\",\"int_of_float\",\"int_of_string\",\"ldexp\",\"lnot\",\"log\",\"log10\",\"max\",\"max_float\",\"max_int\",\"min\",\"min_float\",\"min_int\",\"mod_float\",\"modf\",\"nan\",\"neg_infinity\",\"not\",\"open_in\",\"open_in_bin\",\"open_in_gen\",\"open_out\",\"open_out_bin\",\"open_out_gen\",\"out_channel_length\",\"output\",\"output_binary_int\",\"output_byte\",\"output_char\",\"output_string\",\"output_value\",\"pos_in\",\"pos_out\",\"pred\",\"prerr_char\",\"prerr_endline\",\"prerr_float\",\"prerr_int\",\"prerr_newline\",\"prerr_string\",\"print_char\",\"print_endline\",\"print_float\",\"print_int\",\"print_newline\",\"print_string\",\"read_float\",\"read_int\",\"read_line\",\"really_input\",\"ref\",\"seek_in\",\"seek_out\",\"set_binary_mode_in\",\"set_binary_mode_out\",\"sin\",\"sinh\",\"snd\",\"sqrt\",\"stderr\",\"stdin\",\"stdout\",\"string_of_bool\",\"string_of_float\",\"string_of_format\",\"string_of_int\",\"succ\",\"tan\",\"tanh\",\"truncate\",\"unsafe_really_input\",\"valid_float_lexem\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"array\",\"bool\",\"char\",\"exn\",\"format4\",\"fpclass\",\"in_channel\",\"int\",\"int32\",\"int64\",\"lazy_t\",\"list\",\"nativeint\",\"open_flag\",\"option\",\"out_channel\",\"real\",\"ref\",\"string\",\"unit\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"Assert_failure\",\"Division_by_zero\",\"End_of_file\",\"Exit\",\"Failure\",\"Invalid_argument\",\"Match_failure\",\"Not_found\",\"Out_of_memory\",\"Stack_overflow\",\"Sys_blocked_io\",\"Sys_error\",\"Undefined_recursive_module\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"FP_infinite\",\"FP_nan\",\"FP_normal\",\"FP_subnormal\",\"FP_zero\",\"None\",\"Open_append\",\"Open_binary\",\"Open_creat\",\"Open_excl\",\"Open_nonblock\",\"Open_rdonly\",\"Open_text\",\"Open_trunc\",\"Open_wronly\",\"Some\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"Arg\",\"Array\",\"ArrayLabels\",\"Buffer\",\"Callback\",\"Char\",\"Complex\",\"Digest\",\"Filename\",\"Format\",\"Gc\",\"Genlex\",\"Hashtbl\",\"Int32\",\"Int64\",\"Lazy\",\"Lexing\",\"List\",\"ListLabels\",\"Map\",\"Marshal\",\"MoreLabels\",\"Nativeint\",\"Oo\",\"Parsing\",\"Printexc\",\"Printf\",\"Queue\",\"Random\",\"Scanf\",\"Set\",\"Sort\",\"Stack\",\"StdLabels\",\"Stream\",\"String\",\"StringLabels\",\"Sys\",\"Weak\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-z\\\\300-\\\\326\\\\330-\\\\337_][a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\3770-9_']*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"`?[A-Z\\\\340-\\\\366\\\\370-\\\\377][a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\3770-9_']*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-?0[xX][0-9A-Fa-f_]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-?0[oO][0-7_]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-?0[bB][01_]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-?[0-9][0-9_]*(\\\\.[0-9][0-9_]*([eE][-+]?[0-9][0-9_]*)?|[eE][-+]?[0-9][0-9_]*)\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-?[0-9][0-9_]*\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Objective Caml\",\"Unmatched Closing Brackets\"), 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 = \"Objective Caml\", cRules = [Rule {rMatcher = Detect2Chars '*' ')', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '(' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Comment\")]},Rule {rMatcher = DetectChar '\"', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"String in Comment\")]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Nested Code 1\",Context {cName = \"Nested Code 1\", cSyntax = \"Objective Caml\", cRules = [Rule {rMatcher = DetectChar ']', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Objective Caml\",\"Code\"), rAttribute = NormalTok, rIncludeAttribute = True, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Nested Code 2\",Context {cName = \"Nested Code 2\", cSyntax = \"Objective Caml\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Objective Caml\",\"Code\"), rAttribute = NormalTok, rIncludeAttribute = True, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Nested Ocamldoc\",Context {cName = \"Nested Ocamldoc\", cSyntax = \"Objective Caml\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '*' ')', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Objective Caml\",\"Ocamldoc\"), rAttribute = NormalTok, rIncludeAttribute = True, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Ocamldoc\",Context {cName = \"Ocamldoc\", cSyntax = \"Objective Caml\", cRules = [Rule {rMatcher = Detect2Chars '*' ')', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"(**)\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"(**\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Ocamldoc\")]},Rule {rMatcher = Detect2Chars '(' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Comment\")]},Rule {rMatcher = DetectChar '\"', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"String in Comment\")]},Rule {rMatcher = DetectChar '[', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Ocamldoc Code\")]},Rule {rMatcher = Detect2Chars '{' '[', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Ocamldoc Preformatted\")]},Rule {rMatcher = Detect2Chars '{' '%', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Ocamldoc LaTeX\")]},Rule {rMatcher = Detect2Chars '{' '^', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Nested Ocamldoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"[{]v(\\\\s|$)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Ocamldoc Verbatim\")]},Rule {rMatcher = RegExpr (RE {reString = \"[{]b(\\\\s|$)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Ocamldoc Bold\")]},Rule {rMatcher = RegExpr (RE {reString = \"[{]i(\\\\s|$)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Ocamldoc Italic\")]},Rule {rMatcher = RegExpr (RE {reString = \"[{]e(\\\\s|$)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Ocamldoc Emphasised\")]},Rule {rMatcher = RegExpr (RE {reString = \"[{][0-9]+(:`?[a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\377][a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\3770-9_']*)?\\\\s\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Ocamldoc Heading\")]},Rule {rMatcher = RegExpr (RE {reString = \"[{][{]:`?[a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\377][a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\3770-9_']*[}]\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Ocamldoc Link\")]},Rule {rMatcher = RegExpr (RE {reString = \"[{]!([a-z]+:)?\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Ocamldoc References\")]},Rule {rMatcher = RegExpr (RE {reString = \"[{]`?[a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\377][a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\3770-9_']*(\\\\s|$)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Nested Ocamldoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"@see\\\\s*(<[^>]*>|\\\"[^\\\"]*\\\"|'[^']*')\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"@(param|raise)\\\\s*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"Ocamldoc Identifier\")]},Rule {rMatcher = RegExpr (RE {reString = \"@(author|deprecated|return|since|version)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"@`?[a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\377][a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\3770-9_']*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[  ]*-\\\\s\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Objective Caml\",\"Unmatched Closing Brackets\"), 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}),(\"Ocamldoc Bold\",Context {cName = \"Ocamldoc Bold\", cSyntax = \"Objective Caml\", cRules = [Rule {rMatcher = IncludeRules (\"Objective Caml\",\"Nested Ocamldoc\"), 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}),(\"Ocamldoc Code\",Context {cName = \"Ocamldoc Code\", cSyntax = \"Objective Caml\", cRules = [Rule {rMatcher = DetectChar ']', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Objective Caml\",\"Code\"), rAttribute = NormalTok, rIncludeAttribute = True, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Ocamldoc Emphasised\",Context {cName = \"Ocamldoc Emphasised\", cSyntax = \"Objective Caml\", cRules = [Rule {rMatcher = IncludeRules (\"Objective Caml\",\"Nested Ocamldoc\"), 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}),(\"Ocamldoc Heading\",Context {cName = \"Ocamldoc Heading\", cSyntax = \"Objective Caml\", cRules = [Rule {rMatcher = IncludeRules (\"Objective Caml\",\"Nested Ocamldoc\"), 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}),(\"Ocamldoc Identifier\",Context {cName = \"Ocamldoc Identifier\", cSyntax = \"Objective Caml\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"`?[a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\377][a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\3770-9_']*(\\\\.`?[a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\377][a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\3770-9_']*)*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '*' ')', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectSpaces, rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Ocamldoc Italic\",Context {cName = \"Ocamldoc Italic\", cSyntax = \"Objective Caml\", cRules = [Rule {rMatcher = IncludeRules (\"Objective Caml\",\"Nested Ocamldoc\"), 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}),(\"Ocamldoc LaTeX\",Context {cName = \"Ocamldoc LaTeX\", cSyntax = \"Objective Caml\", cRules = [Rule {rMatcher = Detect2Chars '%' '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"LaTeX\",\"\"), 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}),(\"Ocamldoc Link\",Context {cName = \"Ocamldoc Link\", cSyntax = \"Objective Caml\", cRules = [Rule {rMatcher = IncludeRules (\"Objective Caml\",\"Nested Ocamldoc\"), 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}),(\"Ocamldoc Preformatted\",Context {cName = \"Ocamldoc Preformatted\", cSyntax = \"Objective Caml\", cRules = [Rule {rMatcher = Detect2Chars ']' '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Objective Caml\",\"Code\"), rAttribute = NormalTok, rIncludeAttribute = True, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Ocamldoc References\",Context {cName = \"Ocamldoc References\", cSyntax = \"Objective Caml\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '*' ')', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"`?[a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\377][a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\3770-9_']*(\\\\.`?[a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\377][a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\3770-9_']*)*\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectSpaces, rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Ocamldoc Verbatim\",Context {cName = \"Ocamldoc Verbatim\", cSyntax = \"Objective Caml\", cRules = [Rule {rMatcher = Detect2Chars 'v' '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Objective Caml\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\\\\\[ntbr'\\\"\\\\\\\\]|\\\\\\\\[0-9]{3}|\\\\\\\\x[0-9A-Fa-f]{2})\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\$\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String in Comment\",Context {cName = \"String in Comment\", cSyntax = \"Objective Caml\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Objective Caml\",\"String\"), 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}),(\"Unmatched Closing Brackets\",Context {cName = \"Unmatched Closing Brackets\", cSyntax = \"Objective Caml\", cRules = [Rule {rMatcher = Detect2Chars '*' ')', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars 'v' '}', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars ']' '}', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '%' '}', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ']', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', 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}),(\"qtest\",Context {cName = \"qtest\", cSyntax = \"Objective Caml\", cRules = [Rule {rMatcher = Detect2Chars '*' ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Objective Caml\",\"Code\"), rAttribute = NormalTok, rIncludeAttribute = True, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"qtest header\",Context {cName = \"qtest header\", cSyntax = \"Objective Caml\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"as\",\"forall\",\"in\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '&', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Objective Caml\",\"qtest param\")]},Rule {rMatcher = RegExpr (RE {reString = \"[a-z\\\\300-\\\\326\\\\330-\\\\337_][a-z\\\\300-\\\\326\\\\330-\\\\337A-Z\\\\340-\\\\366\\\\370-\\\\3770-9_']*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Push (\"Objective Caml\",\"qtest\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"qtest param\",Context {cName = \"qtest param\", cSyntax = \"Objective Caml\", cRules = [], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Push (\"Objective Caml\",\"qtest\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Glyn Webster (glynwebster@orcon.net.nz) and Vincent Hugot (vincent.hugot@gmail.com)\", sVersion = \"3\", sLicense = \"LGPL\", sExtensions = [\"*.ml\",\"*.mli\"], sStartingContext = \"Code\"}"
diff --git a/src/Skylighting/Syntax/Octave.hs b/src/Skylighting/Syntax/Octave.hs
--- a/src/Skylighting/Syntax/Octave.hs
+++ b/src/Skylighting/Syntax/Octave.hs
@@ -2,2932 +2,6 @@
 module Skylighting.Syntax.Octave (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Octave"
-  , sFilename = "octave.xml"
-  , sShortname = "Octave"
-  , sContexts =
-      fromList
-        [ ( "_adjoint"
-          , Context
-              { cName = "_adjoint"
-              , cSyntax = "Octave"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'+"
-                              , reCompiled = Just (compileRegex True "'+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "_normal"
-          , Context
-              { cName = "_normal"
-              , cSyntax = "Octave"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(for)\\b"
-                              , reCompiled = Just (compileRegex True "\\b(for)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(endfor)\\b"
-                              , reCompiled = Just (compileRegex True "\\b(endfor)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(if)\\b"
-                              , reCompiled = Just (compileRegex True "\\b(if)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(endif)\\b"
-                              , reCompiled = Just (compileRegex True "\\b(endif)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(do)\\b"
-                              , reCompiled = Just (compileRegex True "\\b(do)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(until)\\b"
-                              , reCompiled = Just (compileRegex True "\\b(until)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(while)\\b"
-                              , reCompiled = Just (compileRegex True "\\b(while)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(endwhile)\\b"
-                              , reCompiled = Just (compileRegex True "\\b(endwhile)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(function)\\b"
-                              , reCompiled = Just (compileRegex True "\\b(function)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(endfunction)\\b"
-                              , reCompiled = Just (compileRegex True "\\b(endfunction)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(switch)\\b"
-                              , reCompiled = Just (compileRegex True "\\b(switch)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(endswitch)\\b"
-                              , reCompiled = Just (compileRegex True "\\b(endswitch)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(try)\\b"
-                              , reCompiled = Just (compileRegex True "\\b(try)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(end_try_catch)\\b"
-                              , reCompiled = Just (compileRegex True "\\b(end_try_catch)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(end)\\b"
-                              , reCompiled = Just (compileRegex True "\\b(end)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z]\\w*(?=')"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z]\\w*(?=')")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Octave" , "_adjoint" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\d+(\\.\\d+)?|\\.\\d+)([eE][+-]?\\d+)?[ij]?(?=')"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(\\d+(\\.\\d+)?|\\.\\d+)([eE][+-]?\\d+)?[ij]?(?=')")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Octave" , "_adjoint" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\)\\]}](?=')"
-                              , reCompiled = Just (compileRegex True "[\\)\\]}](?=')")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Octave" , "_adjoint" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.'(?=')"
-                              , reCompiled = Just (compileRegex True "\\.'(?=')")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Octave" , "_adjoint" ) ]
-                      }
-                  , 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 =
-                          RegExpr
-                            RE
-                              { reString = "'([^']|''|\\\\')*"
-                              , reCompiled = Just (compileRegex True "'([^']|''|\\\\')*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 =
-                          RegExpr
-                            RE
-                              { reString = "\"([^\"]|\"\"|\\\\\")*"
-                              , reCompiled = Just (compileRegex True "\"([^\"]|\"\"|\\\\\")*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "all_va_args"
-                               , "break"
-                               , "case"
-                               , "continue"
-                               , "else"
-                               , "elseif"
-                               , "end_unwind_protect"
-                               , "global"
-                               , "gplot"
-                               , "gsplot"
-                               , "otherwise"
-                               , "persistent"
-                               , "replot"
-                               , "return"
-                               , "static"
-                               , "until"
-                               , "unwind_protect"
-                               , "unwind_protect_cleanup"
-                               , "varargin"
-                               , "varargout"
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "__end__"
-                               , "casesen"
-                               , "cd"
-                               , "chdir"
-                               , "clear"
-                               , "dbclear"
-                               , "dbstatus"
-                               , "dbstop"
-                               , "dbtype"
-                               , "dbwhere"
-                               , "diary"
-                               , "echo"
-                               , "edit_history"
-                               , "format"
-                               , "gset"
-                               , "gshow"
-                               , "help"
-                               , "history"
-                               , "hold"
-                               , "iskeyword"
-                               , "isvarname"
-                               , "load"
-                               , "ls"
-                               , "mark_as_command"
-                               , "mislocked"
-                               , "mlock"
-                               , "more"
-                               , "munlock"
-                               , "run_history"
-                               , "save"
-                               , "set"
-                               , "show"
-                               , "type"
-                               , "unmark_command"
-                               , "which"
-                               , "who"
-                               , "whos"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "DEMOcontrol"
-                               , "ERRNO"
-                               , "__abcddims__"
-                               , "__axis_label__"
-                               , "__bodquist__"
-                               , "__end__"
-                               , "__errcomm__"
-                               , "__error_text__"
-                               , "__errplot__"
-                               , "__freqresp__"
-                               , "__outlist__"
-                               , "__plr1__"
-                               , "__plr2__"
-                               , "__plr__"
-                               , "__plt1__"
-                               , "__plt2__"
-                               , "__plt2mm__"
-                               , "__plt2mv__"
-                               , "__plt2ss__"
-                               , "__plt2vm__"
-                               , "__plt2vv__"
-                               , "__plt__"
-                               , "__pltopt1__"
-                               , "__pltopt__"
-                               , "__print_symbol_info__"
-                               , "__print_symtab_info__"
-                               , "__stepimp__"
-                               , "__syschnamesl__"
-                               , "__sysconcat__"
-                               , "__syscont_disc__"
-                               , "__sysdefioname__"
-                               , "__sysdefstname__"
-                               , "__sysgroupn__"
-                               , "__tf2sysl__"
-                               , "__tfl__"
-                               , "__token_count__"
-                               , "__zgpbal__"
-                               , "__zp2ssg2__"
-                               , "abcddim"
-                               , "abs"
-                               , "acos"
-                               , "acosh"
-                               , "acot"
-                               , "acoth"
-                               , "acsc"
-                               , "acsch"
-                               , "airy"
-                               , "all"
-                               , "analdemo"
-                               , "angle"
-                               , "anova"
-                               , "any"
-                               , "append"
-                               , "arch_fit"
-                               , "arch_rnd"
-                               , "arch_test"
-                               , "are"
-                               , "arg"
-                               , "argnames"
-                               , "arma_rnd"
-                               , "asctime"
-                               , "asec"
-                               , "asech"
-                               , "asin"
-                               , "asinh"
-                               , "assignin"
-                               , "atan"
-                               , "atan2"
-                               , "atanh"
-                               , "atexit"
-                               , "autocor"
-                               , "autocov"
-                               , "autoreg_matrix"
-                               , "axis"
-                               , "axis2dlim"
-                               , "balance"
-                               , "bar"
-                               , "bartlett"
-                               , "bartlett_test"
-                               , "base2dec"
-                               , "bddemo"
-                               , "beep"
-                               , "bessel"
-                               , "besselh"
-                               , "besseli"
-                               , "besselj"
-                               , "besselk"
-                               , "bessely"
-                               , "beta"
-                               , "beta_cdf"
-                               , "beta_inv"
-                               , "beta_pdf"
-                               , "beta_rnd"
-                               , "betai"
-                               , "betainc"
-                               , "bin2dec"
-                               , "bincoeff"
-                               , "binomial_cdf"
-                               , "binomial_inv"
-                               , "binomial_pdf"
-                               , "binomial_rnd"
-                               , "bitand"
-                               , "bitcmp"
-                               , "bitget"
-                               , "bitmax"
-                               , "bitor"
-                               , "bitset"
-                               , "bitshift"
-                               , "bitxor"
-                               , "blackman"
-                               , "blanks"
-                               , "bode"
-                               , "bode_bounds"
-                               , "bottom_title"
-                               , "bug_report"
-                               , "buildssic"
-                               , "c2d"
-                               , "cart2pol"
-                               , "cart2sph"
-                               , "casesen"
-                               , "cat"
-                               , "cauchy_cdf"
-                               , "cauchy_inv"
-                               , "cauchy_pdf"
-                               , "cauchy_rnd"
-                               , "cd"
-                               , "ceil"
-                               , "cell"
-                               , "cell2struct"
-                               , "cellidx"
-                               , "cellstr"
-                               , "center"
-                               , "char"
-                               , "chdir"
-                               , "chisquare_cdf"
-                               , "chisquare_inv"
-                               , "chisquare_pdf"
-                               , "chisquare_rnd"
-                               , "chisquare_test_homogeneity"
-                               , "chisquare_test_independence"
-                               , "chol"
-                               , "circshift"
-                               , "class"
-                               , "clc"
-                               , "clear"
-                               , "clearplot"
-                               , "clg"
-                               , "clock"
-                               , "cloglog"
-                               , "close"
-                               , "closeplot"
-                               , "colloc"
-                               , "colormap"
-                               , "columns"
-                               , "com2str"
-                               , "comma"
-                               , "common_size"
-                               , "commutation_matrix"
-                               , "compan"
-                               , "complement"
-                               , "completion_matches"
-                               , "computer"
-                               , "cond"
-                               , "conj"
-                               , "contour"
-                               , "controldemo"
-                               , "conv"
-                               , "convmtx"
-                               , "cor"
-                               , "cor_test"
-                               , "corrcoef"
-                               , "cos"
-                               , "cosh"
-                               , "cot"
-                               , "coth"
-                               , "cov"
-                               , "cputime"
-                               , "create_set"
-                               , "cross"
-                               , "csc"
-                               , "csch"
-                               , "ctime"
-                               , "ctrb"
-                               , "cumprod"
-                               , "cumsum"
-                               , "cut"
-                               , "d2c"
-                               , "damp"
-                               , "dare"
-                               , "daspk"
-                               , "daspk_options"
-                               , "dasrt"
-                               , "dasrt_options"
-                               , "dassl"
-                               , "dassl_options"
-                               , "date"
-                               , "dbclear"
-                               , "dbstatus"
-                               , "dbstop"
-                               , "dbtype"
-                               , "dbwhere"
-                               , "dcgain"
-                               , "deal"
-                               , "deblank"
-                               , "dec2base"
-                               , "dec2bin"
-                               , "dec2hex"
-                               , "deconv"
-                               , "delete"
-                               , "demoquat"
-                               , "det"
-                               , "detrend"
-                               , "dezero"
-                               , "dftmtx"
-                               , "dgkfdemo"
-                               , "dgram"
-                               , "dhinfdemo"
-                               , "diag"
-                               , "diary"
-                               , "diff"
-                               , "diffpara"
-                               , "dir"
-                               , "discrete_cdf"
-                               , "discrete_inv"
-                               , "discrete_pdf"
-                               , "discrete_rnd"
-                               , "disp"
-                               , "dkalman"
-                               , "dlqe"
-                               , "dlqg"
-                               , "dlqr"
-                               , "dlyap"
-                               , "dmr2d"
-                               , "dmult"
-                               , "do_string_escapes"
-                               , "document"
-                               , "dot"
-                               , "double"
-                               , "dre"
-                               , "dump_prefs"
-                               , "dup2"
-                               , "duplication_matrix"
-                               , "durbinlevinson"
-                               , "echo"
-                               , "edit_history"
-                               , "eig"
-                               , "empirical_cdf"
-                               , "empirical_inv"
-                               , "empirical_pdf"
-                               , "empirical_rnd"
-                               , "endgrent"
-                               , "endpwent"
-                               , "erf"
-                               , "erfc"
-                               , "erfinv"
-                               , "error"
-                               , "error_text"
-                               , "errorbar"
-                               , "etime"
-                               , "eval"
-                               , "evalin"
-                               , "exec"
-                               , "exist"
-                               , "exit"
-                               , "exp"
-                               , "expm"
-                               , "exponential_cdf"
-                               , "exponential_inv"
-                               , "exponential_pdf"
-                               , "exponential_rnd"
-                               , "eye"
-                               , "f_cdf"
-                               , "f_inv"
-                               , "f_pdf"
-                               , "f_rnd"
-                               , "f_test_regression"
-                               , "fclose"
-                               , "fcntl"
-                               , "fdisp"
-                               , "feof"
-                               , "ferror"
-                               , "feval"
-                               , "fflush"
-                               , "fft"
-                               , "fft2"
-                               , "fftconv"
-                               , "fftfilt"
-                               , "fftn"
-                               , "fftshift"
-                               , "fftw_wisdom"
-                               , "fgetl"
-                               , "fgets"
-                               , "fieldnames"
-                               , "figure"
-                               , "file_in_loadpath"
-                               , "file_in_path"
-                               , "fileparts"
-                               , "filter"
-                               , "find"
-                               , "find_first_of_in_loadpath"
-                               , "findstr"
-                               , "finite"
-                               , "fir2sys"
-                               , "fix"
-                               , "flipdim"
-                               , "fliplr"
-                               , "flipud"
-                               , "floor"
-                               , "flops"
-                               , "fmod"
-                               , "fnmatch"
-                               , "fopen"
-                               , "fork"
-                               , "format"
-                               , "formula"
-                               , "fprintf"
-                               , "fputs"
-                               , "fractdiff"
-                               , "frdemo"
-                               , "fread"
-                               , "freport"
-                               , "freqchkw"
-                               , "freqz"
-                               , "freqz_plot"
-                               , "frewind"
-                               , "fscanf"
-                               , "fseek"
-                               , "fsolve"
-                               , "fsolve_options"
-                               , "ftell"
-                               , "fullfile"
-                               , "func2str"
-                               , "functions"
-                               , "fv"
-                               , "fvl"
-                               , "fwrite"
-                               , "gamma"
-                               , "gamma_cdf"
-                               , "gamma_inv"
-                               , "gamma_pdf"
-                               , "gamma_rnd"
-                               , "gammai"
-                               , "gammainc"
-                               , "gammaln"
-                               , "gcd"
-                               , "geometric_cdf"
-                               , "geometric_inv"
-                               , "geometric_pdf"
-                               , "geometric_rnd"
-                               , "getegid"
-                               , "getenv"
-                               , "geteuid"
-                               , "getgid"
-                               , "getgrent"
-                               , "getgrgid"
-                               , "getgrnam"
-                               , "getpgrp"
-                               , "getpid"
-                               , "getppid"
-                               , "getpwent"
-                               , "getpwnam"
-                               , "getpwuid"
-                               , "getrusage"
-                               , "getuid"
-                               , "givens"
-                               , "glob"
-                               , "gls"
-                               , "gmtime"
-                               , "gram"
-                               , "graw"
-                               , "gray"
-                               , "gray2ind"
-                               , "grid"
-                               , "gset"
-                               , "gshow"
-                               , "h2norm"
-                               , "h2syn"
-                               , "hamming"
-                               , "hankel"
-                               , "hanning"
-                               , "help"
-                               , "hess"
-                               , "hex2dec"
-                               , "hilb"
-                               , "hinf_ctr"
-                               , "hinfdemo"
-                               , "hinfnorm"
-                               , "hinfsyn"
-                               , "hinfsyn_chk"
-                               , "hinfsyn_ric"
-                               , "hist"
-                               , "history"
-                               , "hold"
-                               , "home"
-                               , "horzcat"
-                               , "hotelling_test"
-                               , "hotelling_test_2"
-                               , "housh"
-                               , "hsv2rgb"
-                               , "hurst"
-                               , "hypergeometric_cdf"
-                               , "hypergeometric_inv"
-                               , "hypergeometric_pdf"
-                               , "hypergeometric_rnd"
-                               , "ifft"
-                               , "ifft2"
-                               , "ifftn"
-                               , "imag"
-                               , "image"
-                               , "imagesc"
-                               , "impulse"
-                               , "imshow"
-                               , "ind2gray"
-                               , "ind2rgb"
-                               , "ind2sub"
-                               , "index"
-                               , "inline"
-                               , "input"
-                               , "input_event_hook"
-                               , "int16"
-                               , "int2str"
-                               , "int32"
-                               , "int64"
-                               , "int8"
-                               , "intersection"
-                               , "intmax"
-                               , "intmin"
-                               , "inv"
-                               , "inverse"
-                               , "invhilb"
-                               , "ipermute"
-                               , "iqr"
-                               , "irr"
-                               , "is_abcd"
-                               , "is_bool"
-                               , "is_complex"
-                               , "is_controllable"
-                               , "is_detectable"
-                               , "is_dgkf"
-                               , "is_digital"
-                               , "is_duplicate_entry"
-                               , "is_global"
-                               , "is_leap_year"
-                               , "is_list"
-                               , "is_matrix"
-                               , "is_nan_or_na"
-                               , "is_observable"
-                               , "is_sample"
-                               , "is_scalar"
-                               , "is_signal_list"
-                               , "is_siso"
-                               , "is_square"
-                               , "is_stabilizable"
-                               , "is_stable"
-                               , "is_stream"
-                               , "is_struct"
-                               , "is_symmetric"
-                               , "is_vector"
-                               , "isa"
-                               , "isalnum"
-                               , "isalpha"
-                               , "isascii"
-                               , "isbool"
-                               , "iscell"
-                               , "iscellstr"
-                               , "ischar"
-                               , "iscntrl"
-                               , "iscomplex"
-                               , "isdefinite"
-                               , "isdigit"
-                               , "isempty"
-                               , "isfield"
-                               , "isfinite"
-                               , "isglobal"
-                               , "isgraph"
-                               , "ishold"
-                               , "isieee"
-                               , "isinf"
-                               , "iskeyword"
-                               , "isletter"
-                               , "islist"
-                               , "islogical"
-                               , "islower"
-                               , "ismatrix"
-                               , "isna"
-                               , "isnan"
-                               , "isnumeric"
-                               , "ispc"
-                               , "isprint"
-                               , "ispunct"
-                               , "isreal"
-                               , "isscalar"
-                               , "isspace"
-                               , "issquare"
-                               , "isstr"
-                               , "isstream"
-                               , "isstreamoff"
-                               , "isstruct"
-                               , "issymmetric"
-                               , "isunix"
-                               , "isupper"
-                               , "isvarname"
-                               , "isvector"
-                               , "isxdigit"
-                               , "jet707"
-                               , "kbhit"
-                               , "kendall"
-                               , "keyboard"
-                               , "kill"
-                               , "kolmogorov_smirnov_cdf"
-                               , "kolmogorov_smirnov_test"
-                               , "kolmogorov_smirnov_test_2"
-                               , "kron"
-                               , "kruskal_wallis_test"
-                               , "krylov"
-                               , "krylovb"
-                               , "kurtosis"
-                               , "laplace_cdf"
-                               , "laplace_inv"
-                               , "laplace_pdf"
-                               , "laplace_rnd"
-                               , "lasterr"
-                               , "lastwarn"
-                               , "lcm"
-                               , "length"
-                               , "lgamma"
-                               , "lin2mu"
-                               , "link"
-                               , "linspace"
-                               , "list"
-                               , "list_primes"
-                               , "listidx"
-                               , "load"
-                               , "loadaudio"
-                               , "loadimage"
-                               , "localtime"
-                               , "log"
-                               , "log10"
-                               , "log2"
-                               , "logical"
-                               , "logistic_cdf"
-                               , "logistic_inv"
-                               , "logistic_pdf"
-                               , "logistic_regression"
-                               , "logistic_regression_derivatives"
-                               , "logistic_regression_likelihood"
-                               , "logistic_rnd"
-                               , "logit"
-                               , "loglog"
-                               , "loglogerr"
-                               , "logm"
-                               , "lognormal_cdf"
-                               , "lognormal_inv"
-                               , "lognormal_pdf"
-                               , "lognormal_rnd"
-                               , "logspace"
-                               , "lower"
-                               , "lpsolve"
-                               , "lpsolve_options"
-                               , "lqe"
-                               , "lqg"
-                               , "lqr"
-                               , "ls"
-                               , "lsim"
-                               , "lsode"
-                               , "lsode_options"
-                               , "lstat"
-                               , "ltifr"
-                               , "lu"
-                               , "lyap"
-                               , "mahalanobis"
-                               , "manova"
-                               , "mark_as_command"
-                               , "max"
-                               , "mcnemar_test"
-                               , "mean"
-                               , "meansq"
-                               , "median"
-                               , "menu"
-                               , "mesh"
-                               , "meshdom"
-                               , "meshgrid"
-                               , "min"
-                               , "minfo"
-                               , "minmax"
-                               , "mislocked"
-                               , "mkdir"
-                               , "mkfifo"
-                               , "mkstemp"
-                               , "mktime"
-                               , "mlock"
-                               , "mod"
-                               , "moddemo"
-                               , "moment"
-                               , "more"
-                               , "mplot"
-                               , "mu2lin"
-                               , "multiplot"
-                               , "munlock"
-                               , "nargchk"
-                               , "nargin"
-                               , "nargout"
-                               , "native_float_format"
-                               , "ndims"
-                               , "nextpow2"
-                               , "nichols"
-                               , "norm"
-                               , "normal_cdf"
-                               , "normal_inv"
-                               , "normal_pdf"
-                               , "normal_rnd"
-                               , "not"
-                               , "nper"
-                               , "npv"
-                               , "nth"
-                               , "ntsc2rgb"
-                               , "null"
-                               , "num2str"
-                               , "numel"
-                               , "nyquist"
-                               , "obsv"
-                               , "ocean"
-                               , "octave_config_info"
-                               , "octave_tmp_file_name"
-                               , "odessa"
-                               , "odessa_options"
-                               , "ols"
-                               , "oneplot"
-                               , "ones"
-                               , "ord2"
-                               , "orth"
-                               , "pack"
-                               , "packedform"
-                               , "packsys"
-                               , "parallel"
-                               , "paren"
-                               , "pascal_cdf"
-                               , "pascal_inv"
-                               , "pascal_pdf"
-                               , "pascal_rnd"
-                               , "path"
-                               , "pause"
-                               , "pclose"
-                               , "periodogram"
-                               , "permute"
-                               , "perror"
-                               , "pinv"
-                               , "pipe"
-                               , "place"
-                               , "playaudio"
-                               , "plot"
-                               , "plot_border"
-                               , "pmt"
-                               , "poisson_cdf"
-                               , "poisson_inv"
-                               , "poisson_pdf"
-                               , "poisson_rnd"
-                               , "pol2cart"
-                               , "polar"
-                               , "poly"
-                               , "polyder"
-                               , "polyderiv"
-                               , "polyfit"
-                               , "polyinteg"
-                               , "polyout"
-                               , "polyreduce"
-                               , "polyval"
-                               , "polyvalm"
-                               , "popen"
-                               , "popen2"
-                               , "postpad"
-                               , "pow2"
-                               , "ppplot"
-                               , "prepad"
-                               , "printf"
-                               , "probit"
-                               , "prod"
-                               , "prompt"
-                               , "prop_test_2"
-                               , "purge_tmp_files"
-                               , "putenv"
-                               , "puts"
-                               , "pv"
-                               , "pvl"
-                               , "pwd"
-                               , "pzmap"
-                               , "qconj"
-                               , "qcoordinate_plot"
-                               , "qderiv"
-                               , "qderivmat"
-                               , "qinv"
-                               , "qmult"
-                               , "qqplot"
-                               , "qr"
-                               , "qtrans"
-                               , "qtransv"
-                               , "qtransvmat"
-                               , "quad"
-                               , "quad_options"
-                               , "quaternion"
-                               , "quit"
-                               , "qz"
-                               , "qzhess"
-                               , "qzval"
-                               , "rand"
-                               , "randn"
-                               , "randperm"
-                               , "range"
-                               , "rank"
-                               , "ranks"
-                               , "rate"
-                               , "read_readline_init_file"
-                               , "readdir"
-                               , "readlink"
-                               , "real"
-                               , "record"
-                               , "rectangle_lw"
-                               , "rectangle_sw"
-                               , "rehash"
-                               , "rem"
-                               , "rename"
-                               , "repmat"
-                               , "reshape"
-                               , "residue"
-                               , "reverse"
-                               , "rgb2hsv"
-                               , "rgb2ind"
-                               , "rgb2ntsc"
-                               , "rindex"
-                               , "rldemo"
-                               , "rlocus"
-                               , "rmdir"
-                               , "rmfield"
-                               , "roots"
-                               , "rot90"
-                               , "rotdim"
-                               , "rotg"
-                               , "round"
-                               , "rows"
-                               , "run_cmd"
-                               , "run_count"
-                               , "run_history"
-                               , "run_test"
-                               , "save"
-                               , "saveaudio"
-                               , "saveimage"
-                               , "scanf"
-                               , "schur"
-                               , "sec"
-                               , "sech"
-                               , "semicolon"
-                               , "semilogx"
-                               , "semilogxerr"
-                               , "semilogy"
-                               , "semilogyerr"
-                               , "series"
-                               , "set"
-                               , "setaudio"
-                               , "setgrent"
-                               , "setpwent"
-                               , "setstr"
-                               , "shell_cmd"
-                               , "shg"
-                               , "shift"
-                               , "shiftdim"
-                               , "show"
-                               , "sign"
-                               , "sign_test"
-                               , "sin"
-                               , "sinc"
-                               , "sinetone"
-                               , "sinewave"
-                               , "sinh"
-                               , "size"
-                               , "sizeof"
-                               , "skewness"
-                               , "sleep"
-                               , "sombrero"
-                               , "sort"
-                               , "sortcom"
-                               , "source"
-                               , "spearman"
-                               , "spectral_adf"
-                               , "spectral_xdf"
-                               , "spencer"
-                               , "sph2cart"
-                               , "splice"
-                               , "split"
-                               , "sprintf"
-                               , "sqrt"
-                               , "sqrtm"
-                               , "squeeze"
-                               , "ss"
-                               , "ss2sys"
-                               , "ss2tf"
-                               , "ss2zp"
-                               , "sscanf"
-                               , "stairs"
-                               , "starp"
-                               , "stat"
-                               , "statistics"
-                               , "std"
-                               , "stdnormal_cdf"
-                               , "stdnormal_inv"
-                               , "stdnormal_pdf"
-                               , "stdnormal_rnd"
-                               , "step"
-                               , "stft"
-                               , "str2func"
-                               , "str2mat"
-                               , "str2num"
-                               , "strappend"
-                               , "strcat"
-                               , "strcmp"
-                               , "streamoff"
-                               , "strerror"
-                               , "strftime"
-                               , "strjust"
-                               , "strptime"
-                               , "strrep"
-                               , "struct"
-                               , "struct2cell"
-                               , "struct_contains"
-                               , "struct_elements"
-                               , "studentize"
-                               , "sub2ind"
-                               , "subplot"
-                               , "substr"
-                               , "subwindow"
-                               , "sum"
-                               , "sumsq"
-                               , "svd"
-                               , "swap"
-                               , "swapcols"
-                               , "swaprows"
-                               , "syl"
-                               , "sylvester_matrix"
-                               , "symlink"
-                               , "synthesis"
-                               , "sys2fir"
-                               , "sys2ss"
-                               , "sys2tf"
-                               , "sys2zp"
-                               , "sysadd"
-                               , "sysappend"
-                               , "syschnames"
-                               , "syschtsam"
-                               , "sysconnect"
-                               , "syscont"
-                               , "sysdimensions"
-                               , "sysdisc"
-                               , "sysdup"
-                               , "sysgetsignals"
-                               , "sysgettsam"
-                               , "sysgettype"
-                               , "sysgroup"
-                               , "sysidx"
-                               , "sysmin"
-                               , "sysmult"
-                               , "sysout"
-                               , "sysprune"
-                               , "sysreorder"
-                               , "sysrepdemo"
-                               , "sysscale"
-                               , "syssetsignals"
-                               , "syssub"
-                               , "system"
-                               , "sysupdate"
-                               , "t_cdf"
-                               , "t_inv"
-                               , "t_pdf"
-                               , "t_rnd"
-                               , "t_test"
-                               , "t_test_2"
-                               , "t_test_regression"
-                               , "table"
-                               , "tan"
-                               , "tanh"
-                               , "tempdir"
-                               , "tempname"
-                               , "texas_lotto"
-                               , "tf"
-                               , "tf2ss"
-                               , "tf2sys"
-                               , "tf2zp"
-                               , "tfout"
-                               , "tic"
-                               , "tilde_expand"
-                               , "time"
-                               , "title"
-                               , "tmpfile"
-                               , "tmpnam"
-                               , "toascii"
-                               , "toc"
-                               , "toeplitz"
-                               , "tolower"
-                               , "top_title"
-                               , "toupper"
-                               , "trace"
-                               , "triangle_lw"
-                               , "triangle_sw"
-                               , "tril"
-                               , "triu"
-                               , "type"
-                               , "typeinfo"
-                               , "tzero"
-                               , "tzero2"
-                               , "u_test"
-                               , "ugain"
-                               , "uint16"
-                               , "uint32"
-                               , "uint64"
-                               , "uint8"
-                               , "umask"
-                               , "undo_string_escapes"
-                               , "uniform_cdf"
-                               , "uniform_inv"
-                               , "uniform_pdf"
-                               , "uniform_rnd"
-                               , "union"
-                               , "unix"
-                               , "unlink"
-                               , "unmark_command"
-                               , "unpacksys"
-                               , "unwrap"
-                               , "upper"
-                               , "usage"
-                               , "usleep"
-                               , "va_arg"
-                               , "va_start"
-                               , "values"
-                               , "vander"
-                               , "var"
-                               , "var_test"
-                               , "vec"
-                               , "vech"
-                               , "vectorize"
-                               , "version"
-                               , "vertcat"
-                               , "vol"
-                               , "vr_val"
-                               , "waitpid"
-                               , "warning"
-                               , "warranty"
-                               , "weibull_cdf"
-                               , "weibull_inv"
-                               , "weibull_pdf"
-                               , "weibull_rnd"
-                               , "welch_test"
-                               , "wgt1o"
-                               , "which"
-                               , "who"
-                               , "whos"
-                               , "wiener_rnd"
-                               , "wilcoxon_test"
-                               , "xlabel"
-                               , "xor"
-                               , "ylabel"
-                               , "yulewalker"
-                               , "z_test"
-                               , "z_test_2"
-                               , "zeros"
-                               , "zgfmul"
-                               , "zgfslv"
-                               , "zginit"
-                               , "zgreduce"
-                               , "zgrownorm"
-                               , "zgscal"
-                               , "zgsgiv"
-                               , "zgshsr"
-                               , "zlabel"
-                               , "zp"
-                               , "zp2ss"
-                               , "zp2sys"
-                               , "zp2tf"
-                               , "zpout"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "DEFAULT_EXEC_PATH"
-                               , "DEFAULT_LOADPATH"
-                               , "EDITOR"
-                               , "EXEC_PATH"
-                               , "FFTW_WISDOM_PROGRAM"
-                               , "F_DUPFD"
-                               , "F_GETFD"
-                               , "F_GETFL"
-                               , "F_SETFD"
-                               , "F_SETFL"
-                               , "I"
-                               , "IMAGEPATH"
-                               , "INFO_FILE"
-                               , "INFO_PROGRAM"
-                               , "Inf"
-                               , "J"
-                               , "LOADPATH"
-                               , "MAKEINFO_PROGRAM"
-                               , "NA"
-                               , "NaN"
-                               , "OCTAVE_HOME"
-                               , "OCTAVE_VERSION"
-                               , "O_APPEND"
-                               , "O_ASYNC"
-                               , "O_CREAT"
-                               , "O_EXCL"
-                               , "O_NONBLOCK"
-                               , "O_RDONLY"
-                               , "O_RDWR"
-                               , "O_SYNC"
-                               , "O_TRUNC"
-                               , "O_WRONLY"
-                               , "PAGER"
-                               , "PS1"
-                               , "PS2"
-                               , "PS4"
-                               , "P_tmpdir"
-                               , "SEEK_CUR"
-                               , "SEEK_END"
-                               , "SEEK_SET"
-                               , "SIG"
-                               , "__kluge_procbuf_delay__"
-                               , "ans"
-                               , "argv"
-                               , "automatic_replot"
-                               , "beep_on_error"
-                               , "completion_append_char"
-                               , "crash_dumps_octave_core"
-                               , "current_script_file_name"
-                               , "debug_on_error"
-                               , "debug_on_interrupt"
-                               , "debug_on_warning"
-                               , "debug_symtab_lookups"
-                               , "default_save_format"
-                               , "e"
-                               , "echo_executing_commands"
-                               , "eps"
-                               , "false"
-                               , "filesep"
-                               , "fixed_point_format"
-                               , "gnuplot_binary"
-                               , "gnuplot_command_axes"
-                               , "gnuplot_command_end"
-                               , "gnuplot_command_plot"
-                               , "gnuplot_command_replot"
-                               , "gnuplot_command_splot"
-                               , "gnuplot_command_title"
-                               , "gnuplot_command_using"
-                               , "gnuplot_command_with"
-                               , "gnuplot_has_frames"
-                               , "history_file"
-                               , "history_size"
-                               , "i"
-                               , "ignore_function_time_stamp"
-                               , "inf"
-                               , "j"
-                               , "max_recursion_depth"
-                               , "nan"
-                               , "octave_core_file_format"
-                               , "octave_core_file_limit"
-                               , "octave_core_file_name"
-                               , "output_max_field_width"
-                               , "output_precision"
-                               , "page_output_immediately"
-                               , "page_screen_output"
-                               , "pi"
-                               , "print_answer_id_name"
-                               , "print_empty_dimensions"
-                               , "print_rhs_assign_val"
-                               , "program_invocation_name"
-                               , "program_name"
-                               , "realmax"
-                               , "realmin"
-                               , "save_header_format_string"
-                               , "save_precision"
-                               , "saving_history"
-                               , "sighup_dumps_octave_core"
-                               , "sigterm_dumps_octave_core"
-                               , "silent_functions"
-                               , "split_long_rows"
-                               , "stderr"
-                               , "stdin"
-                               , "stdout"
-                               , "string_fill_char"
-                               , "struct_levels_to_print"
-                               , "suppress_verbose_help_message"
-                               , "true"
-                               , "variables_can_hide_functions"
-                               , "warn_assign_as_truth_value"
-                               , "warn_divide_by_zero"
-                               , "warn_empty_list_elements"
-                               , "warn_fortran_indexing"
-                               , "warn_function_name_clash"
-                               , "warn_future_time_stamp"
-                               , "warn_imag_to_real"
-                               , "warn_matlab_incompatible"
-                               , "warn_missing_semicolon"
-                               , "warn_neg_dim_as_zero"
-                               , "warn_num_to_str"
-                               , "warn_precedence_change"
-                               , "warn_reload_forces_clear"
-                               , "warn_resize_on_range_error"
-                               , "warn_separator_insert"
-                               , "warn_single_quote_string"
-                               , "warn_str_to_num"
-                               , "warn_undefined_return_values"
-                               , "warn_variable_switch_label"
-                               , "whos_line_format"
-                               ])
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "BandToFull"
-                               , "BandToSparse"
-                               , "Chi"
-                               , "Ci"
-                               , "Contents"
-                               , "ExampleEigenValues"
-                               , "ExampleGenEigenValues"
-                               , "FullToBand"
-                               , "MakeShears"
-                               , "OCTAVE_FORGE_VERSION"
-                               , "SBBacksub"
-                               , "SBEig"
-                               , "SBFactor"
-                               , "SBProd"
-                               , "SBSolve"
-                               , "Shi"
-                               , "Si"
-                               , "SymBand"
-                               , "__ellip_ws"
-                               , "__ellip_ws_min"
-                               , "__grcla__"
-                               , "__grclf__"
-                               , "__grcmd__"
-                               , "__grexit__"
-                               , "__grfigure__"
-                               , "__grgetstat__"
-                               , "__grhold__"
-                               , "__grinit__"
-                               , "__grishold__"
-                               , "__grnewset__"
-                               , "__grsetgraph__"
-                               , "__nlnewmark_fcn__"
-                               , "__plt3__"
-                               , "__power"
-                               , "_errcore"
-                               , "_gfweight"
-                               , "aar"
-                               , "aarmam"
-                               , "ac2poly"
-                               , "ac2rc"
-                               , "acorf"
-                               , "acovf"
-                               , "addpath"
-                               , "ademodce"
-                               , "adim"
-                               , "adsmax"
-                               , "airy_Ai"
-                               , "airy_Ai_deriv"
-                               , "airy_Ai_deriv_scaled"
-                               , "airy_Ai_scaled"
-                               , "airy_Bi"
-                               , "airy_Bi_deriv"
-                               , "airy_Bi_deriv_scaled"
-                               , "airy_Bi_scaled"
-                               , "airy_zero_Ai"
-                               , "airy_zero_Ai_deriv"
-                               , "airy_zero_Bi"
-                               , "airy_zero_Bi_deriv"
-                               , "amodce"
-                               , "anderson_darling_cdf"
-                               , "anderson_darling_test"
-                               , "anovan"
-                               , "apkconst"
-                               , "append_save"
-                               , "applylut"
-                               , "ar2poly"
-                               , "ar2rc"
-                               , "ar_spa"
-                               , "arburg"
-                               , "arcext"
-                               , "arfit2"
-                               , "aryule"
-                               , "assert"
-                               , "atanint"
-                               , "au"
-                               , "aucapture"
-                               , "auload"
-                               , "auplot"
-                               , "aurecord"
-                               , "ausave"
-                               , "autumn"
-                               , "average_moments"
-                               , "awgn"
-                               , "azimuth"
-                               , "base64encode"
-                               , "battery"
-                               , "bchdeco"
-                               , "bchenco"
-                               , "bchpoly"
-                               , "bessel_In"
-                               , "bessel_In_scaled"
-                               , "bessel_Inu"
-                               , "bessel_Inu_scaled"
-                               , "bessel_Jn"
-                               , "bessel_Jnu"
-                               , "bessel_Kn"
-                               , "bessel_Kn_scaled"
-                               , "bessel_Knu"
-                               , "bessel_Knu_scaled"
-                               , "bessel_Yn"
-                               , "bessel_Ynu"
-                               , "bessel_il_scaled"
-                               , "bessel_jl"
-                               , "bessel_kl_scaled"
-                               , "bessel_lnKnu"
-                               , "bessel_yl"
-                               , "bessel_zero_J0"
-                               , "bessel_zero_J1"
-                               , "best_dir"
-                               , "best_dir_cov"
-                               , "bestblk"
-                               , "beta_gsl"
-                               , "betaln"
-                               , "bfgs"
-                               , "bfgsmin"
-                               , "bfgsmin_example"
-                               , "bi2de"
-                               , "biacovf"
-                               , "bilinear"
-                               , "bisdemo"
-                               , "bisectionstep"
-                               , "bispec"
-                               , "biterr"
-                               , "blkdiag"
-                               , "blkproc"
-                               , "bmpwrite"
-                               , "bone"
-                               , "bound_convex"
-                               , "boxcar"
-                               , "boxplot"
-                               , "brighten"
-                               , "bs_gradient"
-                               , "builtin"
-                               , "butter"
-                               , "buttord"
-                               , "bwborder"
-                               , "bweuler"
-                               , "bwfill"
-                               , "bwlabel"
-                               , "bwmorph"
-                               , "bwselect"
-                               , "calendar"
-                               , "cceps"
-                               , "cdiff"
-                               , "cell2csv"
-                               , "celleval"
-                               , "cellstr"
-                               , "char"
-                               , "cheb"
-                               , "cheb1ord"
-                               , "cheb2ord"
-                               , "chebwin"
-                               , "cheby1"
-                               , "cheby2"
-                               , "chirp"
-                               , "chol"
-                               , "clausen"
-                               , "clf"
-                               , "clip"
-                               , "cmpermute"
-                               , "cmunique"
-                               , "cohere"
-                               , "col2im"
-                               , "colfilt"
-                               , "colorgradient"
-                               , "comms"
-                               , "compand"
-                               , "complex"
-                               , "concat"
-                               , "conicalP_0"
-                               , "conicalP_1"
-                               , "conicalP_half"
-                               , "conicalP_mhalf"
-                               , "conndef"
-                               , "content"
-                               , "contents"
-                               , "contourf"
-                               , "conv2"
-                               , "convhull"
-                               , "convmtx"
-                               , "cool"
-                               , "copper"
-                               , "cordflt2"
-                               , "corr2"
-                               , "cosets"
-                               , "count"
-                               , "coupling_3j"
-                               , "coupling_6j"
-                               , "coupling_9j"
-                               , "covm"
-                               , "cplxpair"
-                               , "cquadnd"
-                               , "create_lookup_table"
-                               , "crule"
-                               , "crule2d"
-                               , "crule2dgen"
-                               , "csape"
-                               , "csapi"
-                               , "csd"
-                               , "csv2cell"
-                               , "csvconcat"
-                               , "csvexplode"
-                               , "csvread"
-                               , "csvwrite"
-                               , "ctranspose"
-                               , "cumtrapz"
-                               , "cyclgen"
-                               , "cyclpoly"
-                               , "czt"
-                               , "d2_min"
-                               , "datenum"
-                               , "datestr"
-                               , "datevec"
-                               , "dawson"
-                               , "dct"
-                               , "dct2"
-                               , "dctmtx"
-                               , "de2bi"
-                               , "deal"
-                               , "debye_1"
-                               , "debye_2"
-                               , "debye_3"
-                               , "debye_4"
-                               , "decimate"
-                               , "decode"
-                               , "deg2rad"
-                               , "del2"
-                               , "delaunay"
-                               , "delaunay3"
-                               , "delta_method"
-                               , "demo"
-                               , "demodmap"
-                               , "deref"
-                               , "deriv"
-                               , "detrend"
-                               , "dfdp"
-                               , "dftmtx"
-                               , "dhbar"
-                               , "dilate"
-                               , "dispatch"
-                               , "dispatch_help"
-                               , "display_fixed_operations"
-                               , "distance"
-                               , "dlmread"
-                               , "dlmwrite"
-                               , "dos"
-                               , "double"
-                               , "drawnow"
-                               , "durlev"
-                               , "dxfwrite"
-                               , "edge"
-                               , "edit"
-                               , "ellint_Ecomp"
-                               , "ellint_Kcomp"
-                               , "ellip"
-                               , "ellipdemo"
-                               , "ellipj"
-                               , "ellipke"
-                               , "ellipord"
-                               , "encode"
-                               , "eomday"
-                               , "erf_Q"
-                               , "erf_Z"
-                               , "erf_gsl"
-                               , "erfc_gsl"
-                               , "erode"
-                               , "eta"
-                               , "eta_int"
-                               , "example"
-                               , "exp_mult"
-                               , "expdemo"
-                               , "expfit"
-                               , "expint_3"
-                               , "expint_E1"
-                               , "expint_E2"
-                               , "expint_Ei"
-                               , "expm1"
-                               , "exprel"
-                               , "exprel_2"
-                               , "exprel_n"
-                               , "eyediagram"
-                               , "fabs"
-                               , "factor"
-                               , "factorial"
-                               , "fail"
-                               , "fangle"
-                               , "farg"
-                               , "fatan2"
-                               , "fceil"
-                               , "fcnchk"
-                               , "fconj"
-                               , "fcos"
-                               , "fcosh"
-                               , "fcumprod"
-                               , "fcumsum"
-                               , "fdiag"
-                               , "feedback"
-                               , "fem_test"
-                               , "fermi_dirac_3half"
-                               , "fermi_dirac_half"
-                               , "fermi_dirac_inc_0"
-                               , "fermi_dirac_int"
-                               , "fermi_dirac_mhalf"
-                               , "fexp"
-                               , "ff2n"
-                               , "ffloor"
-                               , "fftconv2"
-                               , "fieldnames"
-                               , "fill"
-                               , "fill3"
-                               , "filter2"
-                               , "filtfilt"
-                               , "filtic"
-                               , "fimag"
-                               , "findsym"
-                               , "finitedifference"
-                               , "fir1"
-                               , "fir2"
-                               , "fixed"
-                               , "fixedpoint"
-                               , "flag"
-                               , "flag_implicit_samplerate"
-                               , "flattopwin"
-                               , "flix"
-                               , "float"
-                               , "flog"
-                               , "flog10"
-                               , "fmin"
-                               , "fminbnd"
-                               , "fmins"
-                               , "fminunc"
-                               , "fnder"
-                               , "fnplt"
-                               , "fnval"
-                               , "fplot"
-                               , "fprod"
-                               , "freal"
-                               , "freqs"
-                               , "freqs_plot"
-                               , "freshape"
-                               , "fround"
-                               , "fsin"
-                               , "fsinh"
-                               , "fsort"
-                               , "fsqrt"
-                               , "fsum"
-                               , "fsumsq"
-                               , "ftan"
-                               , "ftanh"
-                               , "full"
-                               , "fullfact"
-                               , "funm"
-                               , "fzero"
-                               , "gamma_gsl"
-                               , "gamma_inc"
-                               , "gamma_inc_P"
-                               , "gamma_inc_Q"
-                               , "gammainv_gsl"
-                               , "gammaln"
-                               , "gammastar"
-                               , "gapTest"
-                               , "gaussian"
-                               , "gausswin"
-                               , "gconv"
-                               , "gconvmtx"
-                               , "gdeconv"
-                               , "gdet"
-                               , "gdftmtx"
-                               , "gdiag"
-                               , "gen2par"
-                               , "geomean"
-                               , "getfield"
-                               , "getfields"
-                               , "gexp"
-                               , "gf"
-                               , "gfft"
-                               , "gfilter"
-                               , "gftable"
-                               , "gfweight"
-                               , "gget"
-                               , "gifft"
-                               , "ginput"
-                               , "ginv"
-                               , "ginverse"
-                               , "glog"
-                               , "glu"
-                               , "gmm_estimate"
-                               , "gmm_example"
-                               , "gmm_obj"
-                               , "gmm_results"
-                               , "gmm_variance"
-                               , "gmm_variance_inefficient"
-                               , "gpick"
-                               , "gprod"
-                               , "gquad"
-                               , "gquad2d"
-                               , "gquad2d6"
-                               , "gquad2dgen"
-                               , "gquad6"
-                               , "gquadnd"
-                               , "grab"
-                               , "grace_octave_path"
-                               , "gradient"
-                               , "grank"
-                               , "graycomatrix"
-                               , "grayslice"
-                               , "grep"
-                               , "greshape"
-                               , "grid"
-                               , "griddata"
-                               , "groots"
-                               , "grpdelay"
-                               , "grule"
-                               , "grule2d"
-                               , "grule2dgen"
-                               , "gsl_sf"
-                               , "gsqrt"
-                               , "gsum"
-                               , "gsumsq"
-                               , "gtext"
-                               , "gzoom"
-                               , "hadamard"
-                               , "hammgen"
-                               , "hankel"
-                               , "hann"
-                               , "harmmean"
-                               , "hazard"
-                               , "hilbert"
-                               , "histeq"
-                               , "histfit"
-                               , "histo"
-                               , "histo2"
-                               , "histo3"
-                               , "histo4"
-                               , "hot"
-                               , "houghtf"
-                               , "hsv"
-                               , "hup"
-                               , "hyperg_0F1"
-                               , "hzeta"
-                               , "idct"
-                               , "idct2"
-                               , "idplot"
-                               , "idsim"
-                               , "ifftshift"
-                               , "im2bw"
-                               , "im2col"
-                               , "imadjust"
-                               , "imginfo"
-                               , "imhist"
-                               , "imnoise"
-                               , "impad"
-                               , "impz"
-                               , "imread"
-                               , "imrotate"
-                               , "imshear"
-                               , "imtranslate"
-                               , "imwrite"
-                               , "innerfun"
-                               , "inputname"
-                               , "interp"
-                               , "interp1"
-                               , "interp2"
-                               , "interpft"
-                               , "intersect"
-                               , "invest0"
-                               , "invest1"
-                               , "invfdemo"
-                               , "invfreq"
-                               , "invfreqs"
-                               , "invfreqz"
-                               , "inz"
-                               , "irsa_act"
-                               , "irsa_actcore"
-                               , "irsa_check"
-                               , "irsa_dft"
-                               , "irsa_dftfp"
-                               , "irsa_genreal"
-                               , "irsa_idft"
-                               , "irsa_isregular"
-                               , "irsa_jitsp"
-                               , "irsa_mdsp"
-                               , "irsa_normalize"
-                               , "irsa_plotdft"
-                               , "irsa_resample"
-                               , "irsa_rgenreal"
-                               , "is_complex_sparse"
-                               , "is_real_sparse"
-                               , "is_sparse"
-                               , "isa"
-                               , "isbw"
-                               , "isdir"
-                               , "isequal"
-                               , "isfield"
-                               , "isfixed"
-                               , "isgalois"
-                               , "isgray"
-                               , "isind"
-                               , "ismember"
-                               , "isprime"
-                               , "isprimitive"
-                               , "isrgb"
-                               , "issparse"
-                               , "isunix"
-                               , "jet"
-                               , "jpgread"
-                               , "jpgwrite"
-                               , "kaiser"
-                               , "kaiserord"
-                               , "lambert_W0"
-                               , "lambert_Wm1"
-                               , "lambertw"
-                               , "lattice"
-                               , "lauchli"
-                               , "leasqr"
-                               , "leasqrdemo"
-                               , "legend"
-                               , "legendre"
-                               , "legendre_Pl"
-                               , "legendre_Plm"
-                               , "legendre_Ql"
-                               , "legendre_sphPlm"
-                               , "legendre_sphPlm_array"
-                               , "leval"
-                               , "levinson"
-                               , "lin2mu"
-                               , "line_min"
-                               , "listen"
-                               , "lloyds"
-                               , "lnbeta"
-                               , "lncosh"
-                               , "lngamma_gsl"
-                               , "lnpoch"
-                               , "lnsinh"
-                               , "log_1plusx"
-                               , "log_1plusx_mx"
-                               , "log_erfc"
-                               , "lookup"
-                               , "lookup_table"
-                               , "lp"
-                               , "lp_test"
-                               , "lpc"
-                               , "mad"
-                               , "magic"
-                               , "make_sparse"
-                               , "makelut"
-                               , "map"
-                               , "mark_for_deletion"
-                               , "mat2gray"
-                               , "mat2str"
-                               , "mdsmax"
-                               , "mean2"
-                               , "medfilt1"
-                               , "medfilt2"
-                               , "meshc"
-                               , "minimize"
-                               , "minpol"
-                               , "mkpp"
-                               , "mktheta"
-                               , "mle_estimate"
-                               , "mle_example"
-                               , "mle_obj"
-                               , "mle_results"
-                               , "mle_variance"
-                               , "modmap"
-                               , "mu2lin"
-                               , "mvaar"
-                               , "mvar"
-                               , "mvfilter"
-                               , "mvfreqz"
-                               , "myfeval"
-                               , "nanmax"
-                               , "nanmean"
-                               , "nanmedian"
-                               , "nanmin"
-                               , "nanstd"
-                               , "nansum"
-                               , "ncauer"
-                               , "nchoosek"
-                               , "ncrule"
-                               , "ndims"
-                               , "nelder_mead_min"
-                               , "newmark"
-                               , "newtonstep"
-                               , "nlfilter"
-                               , "nlnewmark"
-                               , "nmsmax"
-                               , "nnz"
-                               , "nonzeros"
-                               , "normplot"
-                               , "now"
-                               , "nrm"
-                               , "nthroot"
-                               , "numgradient"
-                               , "numhessian"
-                               , "nze"
-                               , "ode23"
-                               , "ode45"
-                               , "ode78"
-                               , "optimset"
-                               , "ordfilt2"
-                               , "orient"
-                               , "pacf"
-                               , "padarray"
-                               , "parameterize"
-                               , "parcor"
-                               , "pareto"
-                               , "pascal"
-                               , "patch"
-                               , "pburg"
-                               , "pcg"
-                               , "pchip"
-                               , "pchip_deriv"
-                               , "pcolor"
-                               , "pcr"
-                               , "peaks"
-                               , "penddot"
-                               , "pendulum"
-                               , "perms"
-                               , "pie"
-                               , "pink"
-                               , "plot3"
-                               , "pngread"
-                               , "pngwrite"
-                               , "poch"
-                               , "pochrel"
-                               , "poly2ac"
-                               , "poly2ar"
-                               , "poly2mask"
-                               , "poly2rc"
-                               , "poly2sym"
-                               , "poly2th"
-                               , "poly_2_ex"
-                               , "polyarea"
-                               , "polyconf"
-                               , "polyder"
-                               , "polyderiv"
-                               , "polygcd"
-                               , "polystab"
-                               , "ppval"
-                               , "prctile"
-                               , "pretty"
-                               , "prettyprint"
-                               , "prettyprint_c"
-                               , "primes"
-                               , "primpoly"
-                               , "princomp"
-                               , "print"
-                               , "prism"
-                               , "proplan"
-                               , "psi"
-                               , "psi_1_int"
-                               , "psi_1piy"
-                               , "psi_n"
-                               , "pulstran"
-                               , "pwelch"
-                               , "pyulear"
-                               , "qaskdeco"
-                               , "qaskenco"
-                               , "qtdecomp"
-                               , "qtgetblk"
-                               , "qtsetblk"
-                               , "quad2dc"
-                               , "quad2dcgen"
-                               , "quad2dg"
-                               , "quad2dggen"
-                               , "quadc"
-                               , "quadg"
-                               , "quadl"
-                               , "quadndg"
-                               , "quantiz"
-                               , "quiver"
-                               , "rad2deg"
-                               , "rainbow"
-                               , "rand"
-                               , "rande"
-                               , "randerr"
-                               , "randint"
-                               , "randn"
-                               , "randp"
-                               , "randsrc"
-                               , "rat"
-                               , "rats"
-                               , "rc2ac"
-                               , "rc2ar"
-                               , "rc2poly"
-                               , "rceps"
-                               , "read_options"
-                               , "read_pdb"
-                               , "rectpuls"
-                               , "regexp"
-                               , "remez"
-                               , "resample"
-                               , "reset_fixed_operations"
-                               , "rgb2gray"
-                               , "rk2fixed"
-                               , "rk4fixed"
-                               , "rk8fixed"
-                               , "rmfield"
-                               , "rmle"
-                               , "rmpath"
-                               , "roicolor"
-                               , "rosser"
-                               , "rotate_scale"
-                               , "rotparams"
-                               , "rotv"
-                               , "rref"
-                               , "rsdec"
-                               , "rsdecof"
-                               , "rsenc"
-                               , "rsencof"
-                               , "rsgenpoly"
-                               , "samin"
-                               , "samin_example"
-                               , "save_vrml"
-                               , "sbispec"
-                               , "scale_data"
-                               , "scatter"
-                               , "scatterplot"
-                               , "select_3D_points"
-                               , "selmo"
-                               , "setdiff"
-                               , "setfield"
-                               , "setfields"
-                               , "setxor"
-                               , "sftrans"
-                               , "sgolay"
-                               , "sgolayfilt"
-                               , "sinc_gsl"
-                               , "sinvest1"
-                               , "slurp_file"
-                               , "sortrows"
-                               , "sound"
-                               , "soundsc"
-                               , "sp_test"
-                               , "spabs"
-                               , "sparse"
-                               , "spdiags"
-                               , "specgram"
-                               , "speed"
-                               , "speye"
-                               , "spfind"
-                               , "spfun"
-                               , "sphcat"
-                               , "spimag"
-                               , "spinv"
-                               , "spline"
-                               , "splot"
-                               , "splu"
-                               , "spones"
-                               , "sprand"
-                               , "sprandn"
-                               , "spreal"
-                               , "spring"
-                               , "spstats"
-                               , "spsum"
-                               , "sptest"
-                               , "spvcat"
-                               , "spy"
-                               , "std2"
-                               , "stem"
-                               , "str2double"
-                               , "strcmpi"
-                               , "stretchlim"
-                               , "strfind"
-                               , "strmatch"
-                               , "strncmp"
-                               , "strncmpi"
-                               , "strsort"
-                               , "strtok"
-                               , "strtoz"
-                               , "struct"
-                               , "strvcat"
-                               , "summer"
-                               , "sumskipnan"
-                               , "surf"
-                               , "surfc"
-                               , "sym2poly"
-                               , "symerr"
-                               , "symfsolve"
-                               , "synchrotron_1"
-                               , "synchrotron_2"
-                               , "syndtable"
-                               , "tabulate"
-                               , "tar"
-                               , "taylorcoeff"
-                               , "temp_name"
-                               , "test"
-                               , "test_d2_min_1"
-                               , "test_d2_min_2"
-                               , "test_d2_min_3"
-                               , "test_ellipj"
-                               , "test_fminunc_1"
-                               , "test_inline_1"
-                               , "test_min_1"
-                               , "test_min_2"
-                               , "test_min_3"
-                               , "test_min_4"
-                               , "test_minimize_1"
-                               , "test_nelder_mead_min_1"
-                               , "test_nelder_mead_min_2"
-                               , "test_sncndn"
-                               , "test_struct"
-                               , "test_vmesh"
-                               , "test_vrml_faces"
-                               , "test_wpolyfit"
-                               , "testimio"
-                               , "text"
-                               , "textread"
-                               , "tf2zp"
-                               , "tfe"
-                               , "thfm"
-                               , "tics"
-                               , "toeplitz"
-                               , "toggle_grace_use"
-                               , "transport_2"
-                               , "transport_3"
-                               , "transport_4"
-                               , "transport_5"
-                               , "transpose"
-                               , "trapz"
-                               , "triang"
-                               , "tril"
-                               , "trimmean"
-                               , "tripuls"
-                               , "trisolve"
-                               , "triu"
-                               , "tsademo"
-                               , "tsearchdemo"
-                               , "ucp"
-                               , "uintlut"
-                               , "unique"
-                               , "unix"
-                               , "unmkpp"
-                               , "unscale_parameters"
-                               , "vec2mat"
-                               , "view"
-                               , "vmesh"
-                               , "voronoi"
-                               , "voronoin"
-                               , "vrml_Background"
-                               , "vrml_PointLight"
-                               , "vrml_arrow"
-                               , "vrml_browse"
-                               , "vrml_cyl"
-                               , "vrml_demo_tutorial_1"
-                               , "vrml_demo_tutorial_2"
-                               , "vrml_demo_tutorial_3"
-                               , "vrml_demo_tutorial_4"
-                               , "vrml_ellipsoid"
-                               , "vrml_faces"
-                               , "vrml_flatten"
-                               , "vrml_frame"
-                               , "vrml_group"
-                               , "vrml_kill"
-                               , "vrml_lines"
-                               , "vrml_material"
-                               , "vrml_parallelogram"
-                               , "vrml_points"
-                               , "vrml_select_points"
-                               , "vrml_surf"
-                               , "vrml_text"
-                               , "vrml_thick_surf"
-                               , "vrml_transfo"
-                               , "waitbar"
-                               , "wavread"
-                               , "wavwrite"
-                               , "weekday"
-                               , "wgn"
-                               , "white"
-                               , "wilkinson"
-                               , "winter"
-                               , "wpolyfit"
-                               , "wpolyfitdemo"
-                               , "write_pdb"
-                               , "wsolve"
-                               , "xcorr"
-                               , "xcorr2"
-                               , "xcov"
-                               , "xlsread"
-                               , "xmlread"
-                               , "xmlwrite"
-                               , "y2res"
-                               , "zero_count"
-                               , "zeta"
-                               , "zeta_int"
-                               , "zoom"
-                               , "zp2tf"
-                               , "zplane"
-                               , "zscore"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[%#].*$"
-                              , reCompiled = Just (compileRegex True "[%#].*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z]\\w*"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z]\\w*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\d+(\\.\\d+)?|\\.\\d+)([eE][+-]?\\d+)?[ij]?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(\\d+(\\.\\d+)?|\\.\\d+)([eE][+-]?\\d+)?[ij]?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "()[]{}"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "..."
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "=="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "~="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "!="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ">="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<>"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "&&"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "||"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "++"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "--"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "**"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ".*"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ".**"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ".^"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "./"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ".'"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "!\"%(*+,/;=>[]|~#&)-:<>\\^"
-                      , 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
-              }
-          )
-        ]
-  , sAuthor = "Luis Silvestre and Federico Zenith"
-  , sVersion = "2"
-  , sLicense = "GPL"
-  , sExtensions = [ "*.octave" , "*.m" , "*.M" ]
-  , sStartingContext = "_normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Octave\", sFilename = \"octave.xml\", sShortname = \"Octave\", sContexts = fromList [(\"_adjoint\",Context {cName = \"_adjoint\", cSyntax = \"Octave\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"'+\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"_normal\",Context {cName = \"_normal\", cSyntax = \"Octave\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(for)\\\\b\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(endfor)\\\\b\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(if)\\\\b\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(endif)\\\\b\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(do)\\\\b\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(until)\\\\b\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(while)\\\\b\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(endwhile)\\\\b\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(function)\\\\b\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(endfunction)\\\\b\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(switch)\\\\b\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(endswitch)\\\\b\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(try)\\\\b\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(end_try_catch)\\\\b\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(end)\\\\b\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z]\\\\w*(?=')\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Octave\",\"_adjoint\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\d+(\\\\.\\\\d+)?|\\\\.\\\\d+)([eE][+-]?\\\\d+)?[ij]?(?=')\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Octave\",\"_adjoint\")]},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\)\\\\]}](?=')\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Octave\",\"_adjoint\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.'(?=')\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Octave\",\"_adjoint\")]},Rule {rMatcher = RegExpr (RE {reString = \"'([^'\\\\\\\\]|''|\\\\\\\\'|\\\\\\\\[^'])*'(?=[^']|$)\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"'([^']|''|\\\\\\\\')*\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\"([^\\\"\\\\\\\\]|\\\"\\\"|\\\\\\\\\\\"|\\\\\\\\[^\\\"])*\\\"(?=[^\\\"]|$)\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\"([^\\\"]|\\\"\\\"|\\\\\\\\\\\")*\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"all_va_args\",\"break\",\"case\",\"continue\",\"else\",\"elseif\",\"end_unwind_protect\",\"global\",\"gplot\",\"gsplot\",\"otherwise\",\"persistent\",\"replot\",\"return\",\"static\",\"until\",\"unwind_protect\",\"unwind_protect_cleanup\",\"varargin\",\"varargout\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"__end__\",\"casesen\",\"cd\",\"chdir\",\"clear\",\"dbclear\",\"dbstatus\",\"dbstop\",\"dbtype\",\"dbwhere\",\"diary\",\"echo\",\"edit_history\",\"format\",\"gset\",\"gshow\",\"help\",\"history\",\"hold\",\"iskeyword\",\"isvarname\",\"load\",\"ls\",\"mark_as_command\",\"mislocked\",\"mlock\",\"more\",\"munlock\",\"run_history\",\"save\",\"set\",\"show\",\"type\",\"unmark_command\",\"which\",\"who\",\"whos\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"DEMOcontrol\",\"ERRNO\",\"__abcddims__\",\"__axis_label__\",\"__bodquist__\",\"__end__\",\"__errcomm__\",\"__error_text__\",\"__errplot__\",\"__freqresp__\",\"__outlist__\",\"__plr1__\",\"__plr2__\",\"__plr__\",\"__plt1__\",\"__plt2__\",\"__plt2mm__\",\"__plt2mv__\",\"__plt2ss__\",\"__plt2vm__\",\"__plt2vv__\",\"__plt__\",\"__pltopt1__\",\"__pltopt__\",\"__print_symbol_info__\",\"__print_symtab_info__\",\"__stepimp__\",\"__syschnamesl__\",\"__sysconcat__\",\"__syscont_disc__\",\"__sysdefioname__\",\"__sysdefstname__\",\"__sysgroupn__\",\"__tf2sysl__\",\"__tfl__\",\"__token_count__\",\"__zgpbal__\",\"__zp2ssg2__\",\"abcddim\",\"abs\",\"acos\",\"acosh\",\"acot\",\"acoth\",\"acsc\",\"acsch\",\"airy\",\"all\",\"analdemo\",\"angle\",\"anova\",\"any\",\"append\",\"arch_fit\",\"arch_rnd\",\"arch_test\",\"are\",\"arg\",\"argnames\",\"arma_rnd\",\"asctime\",\"asec\",\"asech\",\"asin\",\"asinh\",\"assignin\",\"atan\",\"atan2\",\"atanh\",\"atexit\",\"autocor\",\"autocov\",\"autoreg_matrix\",\"axis\",\"axis2dlim\",\"balance\",\"bar\",\"bartlett\",\"bartlett_test\",\"base2dec\",\"bddemo\",\"beep\",\"bessel\",\"besselh\",\"besseli\",\"besselj\",\"besselk\",\"bessely\",\"beta\",\"beta_cdf\",\"beta_inv\",\"beta_pdf\",\"beta_rnd\",\"betai\",\"betainc\",\"bin2dec\",\"bincoeff\",\"binomial_cdf\",\"binomial_inv\",\"binomial_pdf\",\"binomial_rnd\",\"bitand\",\"bitcmp\",\"bitget\",\"bitmax\",\"bitor\",\"bitset\",\"bitshift\",\"bitxor\",\"blackman\",\"blanks\",\"bode\",\"bode_bounds\",\"bottom_title\",\"bug_report\",\"buildssic\",\"c2d\",\"cart2pol\",\"cart2sph\",\"casesen\",\"cat\",\"cauchy_cdf\",\"cauchy_inv\",\"cauchy_pdf\",\"cauchy_rnd\",\"cd\",\"ceil\",\"cell\",\"cell2struct\",\"cellidx\",\"cellstr\",\"center\",\"char\",\"chdir\",\"chisquare_cdf\",\"chisquare_inv\",\"chisquare_pdf\",\"chisquare_rnd\",\"chisquare_test_homogeneity\",\"chisquare_test_independence\",\"chol\",\"circshift\",\"class\",\"clc\",\"clear\",\"clearplot\",\"clg\",\"clock\",\"cloglog\",\"close\",\"closeplot\",\"colloc\",\"colormap\",\"columns\",\"com2str\",\"comma\",\"common_size\",\"commutation_matrix\",\"compan\",\"complement\",\"completion_matches\",\"computer\",\"cond\",\"conj\",\"contour\",\"controldemo\",\"conv\",\"convmtx\",\"cor\",\"cor_test\",\"corrcoef\",\"cos\",\"cosh\",\"cot\",\"coth\",\"cov\",\"cputime\",\"create_set\",\"cross\",\"csc\",\"csch\",\"ctime\",\"ctrb\",\"cumprod\",\"cumsum\",\"cut\",\"d2c\",\"damp\",\"dare\",\"daspk\",\"daspk_options\",\"dasrt\",\"dasrt_options\",\"dassl\",\"dassl_options\",\"date\",\"dbclear\",\"dbstatus\",\"dbstop\",\"dbtype\",\"dbwhere\",\"dcgain\",\"deal\",\"deblank\",\"dec2base\",\"dec2bin\",\"dec2hex\",\"deconv\",\"delete\",\"demoquat\",\"det\",\"detrend\",\"dezero\",\"dftmtx\",\"dgkfdemo\",\"dgram\",\"dhinfdemo\",\"diag\",\"diary\",\"diff\",\"diffpara\",\"dir\",\"discrete_cdf\",\"discrete_inv\",\"discrete_pdf\",\"discrete_rnd\",\"disp\",\"dkalman\",\"dlqe\",\"dlqg\",\"dlqr\",\"dlyap\",\"dmr2d\",\"dmult\",\"do_string_escapes\",\"document\",\"dot\",\"double\",\"dre\",\"dump_prefs\",\"dup2\",\"duplication_matrix\",\"durbinlevinson\",\"echo\",\"edit_history\",\"eig\",\"empirical_cdf\",\"empirical_inv\",\"empirical_pdf\",\"empirical_rnd\",\"endgrent\",\"endpwent\",\"erf\",\"erfc\",\"erfinv\",\"error\",\"error_text\",\"errorbar\",\"etime\",\"eval\",\"evalin\",\"exec\",\"exist\",\"exit\",\"exp\",\"expm\",\"exponential_cdf\",\"exponential_inv\",\"exponential_pdf\",\"exponential_rnd\",\"eye\",\"f_cdf\",\"f_inv\",\"f_pdf\",\"f_rnd\",\"f_test_regression\",\"fclose\",\"fcntl\",\"fdisp\",\"feof\",\"ferror\",\"feval\",\"fflush\",\"fft\",\"fft2\",\"fftconv\",\"fftfilt\",\"fftn\",\"fftshift\",\"fftw_wisdom\",\"fgetl\",\"fgets\",\"fieldnames\",\"figure\",\"file_in_loadpath\",\"file_in_path\",\"fileparts\",\"filter\",\"find\",\"find_first_of_in_loadpath\",\"findstr\",\"finite\",\"fir2sys\",\"fix\",\"flipdim\",\"fliplr\",\"flipud\",\"floor\",\"flops\",\"fmod\",\"fnmatch\",\"fopen\",\"fork\",\"format\",\"formula\",\"fprintf\",\"fputs\",\"fractdiff\",\"frdemo\",\"fread\",\"freport\",\"freqchkw\",\"freqz\",\"freqz_plot\",\"frewind\",\"fscanf\",\"fseek\",\"fsolve\",\"fsolve_options\",\"ftell\",\"fullfile\",\"func2str\",\"functions\",\"fv\",\"fvl\",\"fwrite\",\"gamma\",\"gamma_cdf\",\"gamma_inv\",\"gamma_pdf\",\"gamma_rnd\",\"gammai\",\"gammainc\",\"gammaln\",\"gcd\",\"geometric_cdf\",\"geometric_inv\",\"geometric_pdf\",\"geometric_rnd\",\"getegid\",\"getenv\",\"geteuid\",\"getgid\",\"getgrent\",\"getgrgid\",\"getgrnam\",\"getpgrp\",\"getpid\",\"getppid\",\"getpwent\",\"getpwnam\",\"getpwuid\",\"getrusage\",\"getuid\",\"givens\",\"glob\",\"gls\",\"gmtime\",\"gram\",\"graw\",\"gray\",\"gray2ind\",\"grid\",\"gset\",\"gshow\",\"h2norm\",\"h2syn\",\"hamming\",\"hankel\",\"hanning\",\"help\",\"hess\",\"hex2dec\",\"hilb\",\"hinf_ctr\",\"hinfdemo\",\"hinfnorm\",\"hinfsyn\",\"hinfsyn_chk\",\"hinfsyn_ric\",\"hist\",\"history\",\"hold\",\"home\",\"horzcat\",\"hotelling_test\",\"hotelling_test_2\",\"housh\",\"hsv2rgb\",\"hurst\",\"hypergeometric_cdf\",\"hypergeometric_inv\",\"hypergeometric_pdf\",\"hypergeometric_rnd\",\"ifft\",\"ifft2\",\"ifftn\",\"imag\",\"image\",\"imagesc\",\"impulse\",\"imshow\",\"ind2gray\",\"ind2rgb\",\"ind2sub\",\"index\",\"inline\",\"input\",\"input_event_hook\",\"int16\",\"int2str\",\"int32\",\"int64\",\"int8\",\"intersection\",\"intmax\",\"intmin\",\"inv\",\"inverse\",\"invhilb\",\"ipermute\",\"iqr\",\"irr\",\"is_abcd\",\"is_bool\",\"is_complex\",\"is_controllable\",\"is_detectable\",\"is_dgkf\",\"is_digital\",\"is_duplicate_entry\",\"is_global\",\"is_leap_year\",\"is_list\",\"is_matrix\",\"is_nan_or_na\",\"is_observable\",\"is_sample\",\"is_scalar\",\"is_signal_list\",\"is_siso\",\"is_square\",\"is_stabilizable\",\"is_stable\",\"is_stream\",\"is_struct\",\"is_symmetric\",\"is_vector\",\"isa\",\"isalnum\",\"isalpha\",\"isascii\",\"isbool\",\"iscell\",\"iscellstr\",\"ischar\",\"iscntrl\",\"iscomplex\",\"isdefinite\",\"isdigit\",\"isempty\",\"isfield\",\"isfinite\",\"isglobal\",\"isgraph\",\"ishold\",\"isieee\",\"isinf\",\"iskeyword\",\"isletter\",\"islist\",\"islogical\",\"islower\",\"ismatrix\",\"isna\",\"isnan\",\"isnumeric\",\"ispc\",\"isprint\",\"ispunct\",\"isreal\",\"isscalar\",\"isspace\",\"issquare\",\"isstr\",\"isstream\",\"isstreamoff\",\"isstruct\",\"issymmetric\",\"isunix\",\"isupper\",\"isvarname\",\"isvector\",\"isxdigit\",\"jet707\",\"kbhit\",\"kendall\",\"keyboard\",\"kill\",\"kolmogorov_smirnov_cdf\",\"kolmogorov_smirnov_test\",\"kolmogorov_smirnov_test_2\",\"kron\",\"kruskal_wallis_test\",\"krylov\",\"krylovb\",\"kurtosis\",\"laplace_cdf\",\"laplace_inv\",\"laplace_pdf\",\"laplace_rnd\",\"lasterr\",\"lastwarn\",\"lcm\",\"length\",\"lgamma\",\"lin2mu\",\"link\",\"linspace\",\"list\",\"list_primes\",\"listidx\",\"load\",\"loadaudio\",\"loadimage\",\"localtime\",\"log\",\"log10\",\"log2\",\"logical\",\"logistic_cdf\",\"logistic_inv\",\"logistic_pdf\",\"logistic_regression\",\"logistic_regression_derivatives\",\"logistic_regression_likelihood\",\"logistic_rnd\",\"logit\",\"loglog\",\"loglogerr\",\"logm\",\"lognormal_cdf\",\"lognormal_inv\",\"lognormal_pdf\",\"lognormal_rnd\",\"logspace\",\"lower\",\"lpsolve\",\"lpsolve_options\",\"lqe\",\"lqg\",\"lqr\",\"ls\",\"lsim\",\"lsode\",\"lsode_options\",\"lstat\",\"ltifr\",\"lu\",\"lyap\",\"mahalanobis\",\"manova\",\"mark_as_command\",\"max\",\"mcnemar_test\",\"mean\",\"meansq\",\"median\",\"menu\",\"mesh\",\"meshdom\",\"meshgrid\",\"min\",\"minfo\",\"minmax\",\"mislocked\",\"mkdir\",\"mkfifo\",\"mkstemp\",\"mktime\",\"mlock\",\"mod\",\"moddemo\",\"moment\",\"more\",\"mplot\",\"mu2lin\",\"multiplot\",\"munlock\",\"nargchk\",\"nargin\",\"nargout\",\"native_float_format\",\"ndims\",\"nextpow2\",\"nichols\",\"norm\",\"normal_cdf\",\"normal_inv\",\"normal_pdf\",\"normal_rnd\",\"not\",\"nper\",\"npv\",\"nth\",\"ntsc2rgb\",\"null\",\"num2str\",\"numel\",\"nyquist\",\"obsv\",\"ocean\",\"octave_config_info\",\"octave_tmp_file_name\",\"odessa\",\"odessa_options\",\"ols\",\"oneplot\",\"ones\",\"ord2\",\"orth\",\"pack\",\"packedform\",\"packsys\",\"parallel\",\"paren\",\"pascal_cdf\",\"pascal_inv\",\"pascal_pdf\",\"pascal_rnd\",\"path\",\"pause\",\"pclose\",\"periodogram\",\"permute\",\"perror\",\"pinv\",\"pipe\",\"place\",\"playaudio\",\"plot\",\"plot_border\",\"pmt\",\"poisson_cdf\",\"poisson_inv\",\"poisson_pdf\",\"poisson_rnd\",\"pol2cart\",\"polar\",\"poly\",\"polyder\",\"polyderiv\",\"polyfit\",\"polyinteg\",\"polyout\",\"polyreduce\",\"polyval\",\"polyvalm\",\"popen\",\"popen2\",\"postpad\",\"pow2\",\"ppplot\",\"prepad\",\"printf\",\"probit\",\"prod\",\"prompt\",\"prop_test_2\",\"purge_tmp_files\",\"putenv\",\"puts\",\"pv\",\"pvl\",\"pwd\",\"pzmap\",\"qconj\",\"qcoordinate_plot\",\"qderiv\",\"qderivmat\",\"qinv\",\"qmult\",\"qqplot\",\"qr\",\"qtrans\",\"qtransv\",\"qtransvmat\",\"quad\",\"quad_options\",\"quaternion\",\"quit\",\"qz\",\"qzhess\",\"qzval\",\"rand\",\"randn\",\"randperm\",\"range\",\"rank\",\"ranks\",\"rate\",\"read_readline_init_file\",\"readdir\",\"readlink\",\"real\",\"record\",\"rectangle_lw\",\"rectangle_sw\",\"rehash\",\"rem\",\"rename\",\"repmat\",\"reshape\",\"residue\",\"reverse\",\"rgb2hsv\",\"rgb2ind\",\"rgb2ntsc\",\"rindex\",\"rldemo\",\"rlocus\",\"rmdir\",\"rmfield\",\"roots\",\"rot90\",\"rotdim\",\"rotg\",\"round\",\"rows\",\"run_cmd\",\"run_count\",\"run_history\",\"run_test\",\"save\",\"saveaudio\",\"saveimage\",\"scanf\",\"schur\",\"sec\",\"sech\",\"semicolon\",\"semilogx\",\"semilogxerr\",\"semilogy\",\"semilogyerr\",\"series\",\"set\",\"setaudio\",\"setgrent\",\"setpwent\",\"setstr\",\"shell_cmd\",\"shg\",\"shift\",\"shiftdim\",\"show\",\"sign\",\"sign_test\",\"sin\",\"sinc\",\"sinetone\",\"sinewave\",\"sinh\",\"size\",\"sizeof\",\"skewness\",\"sleep\",\"sombrero\",\"sort\",\"sortcom\",\"source\",\"spearman\",\"spectral_adf\",\"spectral_xdf\",\"spencer\",\"sph2cart\",\"splice\",\"split\",\"sprintf\",\"sqrt\",\"sqrtm\",\"squeeze\",\"ss\",\"ss2sys\",\"ss2tf\",\"ss2zp\",\"sscanf\",\"stairs\",\"starp\",\"stat\",\"statistics\",\"std\",\"stdnormal_cdf\",\"stdnormal_inv\",\"stdnormal_pdf\",\"stdnormal_rnd\",\"step\",\"stft\",\"str2func\",\"str2mat\",\"str2num\",\"strappend\",\"strcat\",\"strcmp\",\"streamoff\",\"strerror\",\"strftime\",\"strjust\",\"strptime\",\"strrep\",\"struct\",\"struct2cell\",\"struct_contains\",\"struct_elements\",\"studentize\",\"sub2ind\",\"subplot\",\"substr\",\"subwindow\",\"sum\",\"sumsq\",\"svd\",\"swap\",\"swapcols\",\"swaprows\",\"syl\",\"sylvester_matrix\",\"symlink\",\"synthesis\",\"sys2fir\",\"sys2ss\",\"sys2tf\",\"sys2zp\",\"sysadd\",\"sysappend\",\"syschnames\",\"syschtsam\",\"sysconnect\",\"syscont\",\"sysdimensions\",\"sysdisc\",\"sysdup\",\"sysgetsignals\",\"sysgettsam\",\"sysgettype\",\"sysgroup\",\"sysidx\",\"sysmin\",\"sysmult\",\"sysout\",\"sysprune\",\"sysreorder\",\"sysrepdemo\",\"sysscale\",\"syssetsignals\",\"syssub\",\"system\",\"sysupdate\",\"t_cdf\",\"t_inv\",\"t_pdf\",\"t_rnd\",\"t_test\",\"t_test_2\",\"t_test_regression\",\"table\",\"tan\",\"tanh\",\"tempdir\",\"tempname\",\"texas_lotto\",\"tf\",\"tf2ss\",\"tf2sys\",\"tf2zp\",\"tfout\",\"tic\",\"tilde_expand\",\"time\",\"title\",\"tmpfile\",\"tmpnam\",\"toascii\",\"toc\",\"toeplitz\",\"tolower\",\"top_title\",\"toupper\",\"trace\",\"triangle_lw\",\"triangle_sw\",\"tril\",\"triu\",\"type\",\"typeinfo\",\"tzero\",\"tzero2\",\"u_test\",\"ugain\",\"uint16\",\"uint32\",\"uint64\",\"uint8\",\"umask\",\"undo_string_escapes\",\"uniform_cdf\",\"uniform_inv\",\"uniform_pdf\",\"uniform_rnd\",\"union\",\"unix\",\"unlink\",\"unmark_command\",\"unpacksys\",\"unwrap\",\"upper\",\"usage\",\"usleep\",\"va_arg\",\"va_start\",\"values\",\"vander\",\"var\",\"var_test\",\"vec\",\"vech\",\"vectorize\",\"version\",\"vertcat\",\"vol\",\"vr_val\",\"waitpid\",\"warning\",\"warranty\",\"weibull_cdf\",\"weibull_inv\",\"weibull_pdf\",\"weibull_rnd\",\"welch_test\",\"wgt1o\",\"which\",\"who\",\"whos\",\"wiener_rnd\",\"wilcoxon_test\",\"xlabel\",\"xor\",\"ylabel\",\"yulewalker\",\"z_test\",\"z_test_2\",\"zeros\",\"zgfmul\",\"zgfslv\",\"zginit\",\"zgreduce\",\"zgrownorm\",\"zgscal\",\"zgsgiv\",\"zgshsr\",\"zlabel\",\"zp\",\"zp2ss\",\"zp2sys\",\"zp2tf\",\"zpout\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"DEFAULT_EXEC_PATH\",\"DEFAULT_LOADPATH\",\"EDITOR\",\"EXEC_PATH\",\"FFTW_WISDOM_PROGRAM\",\"F_DUPFD\",\"F_GETFD\",\"F_GETFL\",\"F_SETFD\",\"F_SETFL\",\"I\",\"IMAGEPATH\",\"INFO_FILE\",\"INFO_PROGRAM\",\"Inf\",\"J\",\"LOADPATH\",\"MAKEINFO_PROGRAM\",\"NA\",\"NaN\",\"OCTAVE_HOME\",\"OCTAVE_VERSION\",\"O_APPEND\",\"O_ASYNC\",\"O_CREAT\",\"O_EXCL\",\"O_NONBLOCK\",\"O_RDONLY\",\"O_RDWR\",\"O_SYNC\",\"O_TRUNC\",\"O_WRONLY\",\"PAGER\",\"PS1\",\"PS2\",\"PS4\",\"P_tmpdir\",\"SEEK_CUR\",\"SEEK_END\",\"SEEK_SET\",\"SIG\",\"__kluge_procbuf_delay__\",\"ans\",\"argv\",\"automatic_replot\",\"beep_on_error\",\"completion_append_char\",\"crash_dumps_octave_core\",\"current_script_file_name\",\"debug_on_error\",\"debug_on_interrupt\",\"debug_on_warning\",\"debug_symtab_lookups\",\"default_save_format\",\"e\",\"echo_executing_commands\",\"eps\",\"false\",\"filesep\",\"fixed_point_format\",\"gnuplot_binary\",\"gnuplot_command_axes\",\"gnuplot_command_end\",\"gnuplot_command_plot\",\"gnuplot_command_replot\",\"gnuplot_command_splot\",\"gnuplot_command_title\",\"gnuplot_command_using\",\"gnuplot_command_with\",\"gnuplot_has_frames\",\"history_file\",\"history_size\",\"i\",\"ignore_function_time_stamp\",\"inf\",\"j\",\"max_recursion_depth\",\"nan\",\"octave_core_file_format\",\"octave_core_file_limit\",\"octave_core_file_name\",\"output_max_field_width\",\"output_precision\",\"page_output_immediately\",\"page_screen_output\",\"pi\",\"print_answer_id_name\",\"print_empty_dimensions\",\"print_rhs_assign_val\",\"program_invocation_name\",\"program_name\",\"realmax\",\"realmin\",\"save_header_format_string\",\"save_precision\",\"saving_history\",\"sighup_dumps_octave_core\",\"sigterm_dumps_octave_core\",\"silent_functions\",\"split_long_rows\",\"stderr\",\"stdin\",\"stdout\",\"string_fill_char\",\"struct_levels_to_print\",\"suppress_verbose_help_message\",\"true\",\"variables_can_hide_functions\",\"warn_assign_as_truth_value\",\"warn_divide_by_zero\",\"warn_empty_list_elements\",\"warn_fortran_indexing\",\"warn_function_name_clash\",\"warn_future_time_stamp\",\"warn_imag_to_real\",\"warn_matlab_incompatible\",\"warn_missing_semicolon\",\"warn_neg_dim_as_zero\",\"warn_num_to_str\",\"warn_precedence_change\",\"warn_reload_forces_clear\",\"warn_resize_on_range_error\",\"warn_separator_insert\",\"warn_single_quote_string\",\"warn_str_to_num\",\"warn_undefined_return_values\",\"warn_variable_switch_label\",\"whos_line_format\"])), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"BandToFull\",\"BandToSparse\",\"Chi\",\"Ci\",\"Contents\",\"ExampleEigenValues\",\"ExampleGenEigenValues\",\"FullToBand\",\"MakeShears\",\"OCTAVE_FORGE_VERSION\",\"SBBacksub\",\"SBEig\",\"SBFactor\",\"SBProd\",\"SBSolve\",\"Shi\",\"Si\",\"SymBand\",\"__ellip_ws\",\"__ellip_ws_min\",\"__grcla__\",\"__grclf__\",\"__grcmd__\",\"__grexit__\",\"__grfigure__\",\"__grgetstat__\",\"__grhold__\",\"__grinit__\",\"__grishold__\",\"__grnewset__\",\"__grsetgraph__\",\"__nlnewmark_fcn__\",\"__plt3__\",\"__power\",\"_errcore\",\"_gfweight\",\"aar\",\"aarmam\",\"ac2poly\",\"ac2rc\",\"acorf\",\"acovf\",\"addpath\",\"ademodce\",\"adim\",\"adsmax\",\"airy_Ai\",\"airy_Ai_deriv\",\"airy_Ai_deriv_scaled\",\"airy_Ai_scaled\",\"airy_Bi\",\"airy_Bi_deriv\",\"airy_Bi_deriv_scaled\",\"airy_Bi_scaled\",\"airy_zero_Ai\",\"airy_zero_Ai_deriv\",\"airy_zero_Bi\",\"airy_zero_Bi_deriv\",\"amodce\",\"anderson_darling_cdf\",\"anderson_darling_test\",\"anovan\",\"apkconst\",\"append_save\",\"applylut\",\"ar2poly\",\"ar2rc\",\"ar_spa\",\"arburg\",\"arcext\",\"arfit2\",\"aryule\",\"assert\",\"atanint\",\"au\",\"aucapture\",\"auload\",\"auplot\",\"aurecord\",\"ausave\",\"autumn\",\"average_moments\",\"awgn\",\"azimuth\",\"base64encode\",\"battery\",\"bchdeco\",\"bchenco\",\"bchpoly\",\"bessel_In\",\"bessel_In_scaled\",\"bessel_Inu\",\"bessel_Inu_scaled\",\"bessel_Jn\",\"bessel_Jnu\",\"bessel_Kn\",\"bessel_Kn_scaled\",\"bessel_Knu\",\"bessel_Knu_scaled\",\"bessel_Yn\",\"bessel_Ynu\",\"bessel_il_scaled\",\"bessel_jl\",\"bessel_kl_scaled\",\"bessel_lnKnu\",\"bessel_yl\",\"bessel_zero_J0\",\"bessel_zero_J1\",\"best_dir\",\"best_dir_cov\",\"bestblk\",\"beta_gsl\",\"betaln\",\"bfgs\",\"bfgsmin\",\"bfgsmin_example\",\"bi2de\",\"biacovf\",\"bilinear\",\"bisdemo\",\"bisectionstep\",\"bispec\",\"biterr\",\"blkdiag\",\"blkproc\",\"bmpwrite\",\"bone\",\"bound_convex\",\"boxcar\",\"boxplot\",\"brighten\",\"bs_gradient\",\"builtin\",\"butter\",\"buttord\",\"bwborder\",\"bweuler\",\"bwfill\",\"bwlabel\",\"bwmorph\",\"bwselect\",\"calendar\",\"cceps\",\"cdiff\",\"cell2csv\",\"celleval\",\"cellstr\",\"char\",\"cheb\",\"cheb1ord\",\"cheb2ord\",\"chebwin\",\"cheby1\",\"cheby2\",\"chirp\",\"chol\",\"clausen\",\"clf\",\"clip\",\"cmpermute\",\"cmunique\",\"cohere\",\"col2im\",\"colfilt\",\"colorgradient\",\"comms\",\"compand\",\"complex\",\"concat\",\"conicalP_0\",\"conicalP_1\",\"conicalP_half\",\"conicalP_mhalf\",\"conndef\",\"content\",\"contents\",\"contourf\",\"conv2\",\"convhull\",\"convmtx\",\"cool\",\"copper\",\"cordflt2\",\"corr2\",\"cosets\",\"count\",\"coupling_3j\",\"coupling_6j\",\"coupling_9j\",\"covm\",\"cplxpair\",\"cquadnd\",\"create_lookup_table\",\"crule\",\"crule2d\",\"crule2dgen\",\"csape\",\"csapi\",\"csd\",\"csv2cell\",\"csvconcat\",\"csvexplode\",\"csvread\",\"csvwrite\",\"ctranspose\",\"cumtrapz\",\"cyclgen\",\"cyclpoly\",\"czt\",\"d2_min\",\"datenum\",\"datestr\",\"datevec\",\"dawson\",\"dct\",\"dct2\",\"dctmtx\",\"de2bi\",\"deal\",\"debye_1\",\"debye_2\",\"debye_3\",\"debye_4\",\"decimate\",\"decode\",\"deg2rad\",\"del2\",\"delaunay\",\"delaunay3\",\"delta_method\",\"demo\",\"demodmap\",\"deref\",\"deriv\",\"detrend\",\"dfdp\",\"dftmtx\",\"dhbar\",\"dilate\",\"dispatch\",\"dispatch_help\",\"display_fixed_operations\",\"distance\",\"dlmread\",\"dlmwrite\",\"dos\",\"double\",\"drawnow\",\"durlev\",\"dxfwrite\",\"edge\",\"edit\",\"ellint_Ecomp\",\"ellint_Kcomp\",\"ellip\",\"ellipdemo\",\"ellipj\",\"ellipke\",\"ellipord\",\"encode\",\"eomday\",\"erf_Q\",\"erf_Z\",\"erf_gsl\",\"erfc_gsl\",\"erode\",\"eta\",\"eta_int\",\"example\",\"exp_mult\",\"expdemo\",\"expfit\",\"expint_3\",\"expint_E1\",\"expint_E2\",\"expint_Ei\",\"expm1\",\"exprel\",\"exprel_2\",\"exprel_n\",\"eyediagram\",\"fabs\",\"factor\",\"factorial\",\"fail\",\"fangle\",\"farg\",\"fatan2\",\"fceil\",\"fcnchk\",\"fconj\",\"fcos\",\"fcosh\",\"fcumprod\",\"fcumsum\",\"fdiag\",\"feedback\",\"fem_test\",\"fermi_dirac_3half\",\"fermi_dirac_half\",\"fermi_dirac_inc_0\",\"fermi_dirac_int\",\"fermi_dirac_mhalf\",\"fexp\",\"ff2n\",\"ffloor\",\"fftconv2\",\"fieldnames\",\"fill\",\"fill3\",\"filter2\",\"filtfilt\",\"filtic\",\"fimag\",\"findsym\",\"finitedifference\",\"fir1\",\"fir2\",\"fixed\",\"fixedpoint\",\"flag\",\"flag_implicit_samplerate\",\"flattopwin\",\"flix\",\"float\",\"flog\",\"flog10\",\"fmin\",\"fminbnd\",\"fmins\",\"fminunc\",\"fnder\",\"fnplt\",\"fnval\",\"fplot\",\"fprod\",\"freal\",\"freqs\",\"freqs_plot\",\"freshape\",\"fround\",\"fsin\",\"fsinh\",\"fsort\",\"fsqrt\",\"fsum\",\"fsumsq\",\"ftan\",\"ftanh\",\"full\",\"fullfact\",\"funm\",\"fzero\",\"gamma_gsl\",\"gamma_inc\",\"gamma_inc_P\",\"gamma_inc_Q\",\"gammainv_gsl\",\"gammaln\",\"gammastar\",\"gapTest\",\"gaussian\",\"gausswin\",\"gconv\",\"gconvmtx\",\"gdeconv\",\"gdet\",\"gdftmtx\",\"gdiag\",\"gen2par\",\"geomean\",\"getfield\",\"getfields\",\"gexp\",\"gf\",\"gfft\",\"gfilter\",\"gftable\",\"gfweight\",\"gget\",\"gifft\",\"ginput\",\"ginv\",\"ginverse\",\"glog\",\"glu\",\"gmm_estimate\",\"gmm_example\",\"gmm_obj\",\"gmm_results\",\"gmm_variance\",\"gmm_variance_inefficient\",\"gpick\",\"gprod\",\"gquad\",\"gquad2d\",\"gquad2d6\",\"gquad2dgen\",\"gquad6\",\"gquadnd\",\"grab\",\"grace_octave_path\",\"gradient\",\"grank\",\"graycomatrix\",\"grayslice\",\"grep\",\"greshape\",\"grid\",\"griddata\",\"groots\",\"grpdelay\",\"grule\",\"grule2d\",\"grule2dgen\",\"gsl_sf\",\"gsqrt\",\"gsum\",\"gsumsq\",\"gtext\",\"gzoom\",\"hadamard\",\"hammgen\",\"hankel\",\"hann\",\"harmmean\",\"hazard\",\"hilbert\",\"histeq\",\"histfit\",\"histo\",\"histo2\",\"histo3\",\"histo4\",\"hot\",\"houghtf\",\"hsv\",\"hup\",\"hyperg_0F1\",\"hzeta\",\"idct\",\"idct2\",\"idplot\",\"idsim\",\"ifftshift\",\"im2bw\",\"im2col\",\"imadjust\",\"imginfo\",\"imhist\",\"imnoise\",\"impad\",\"impz\",\"imread\",\"imrotate\",\"imshear\",\"imtranslate\",\"imwrite\",\"innerfun\",\"inputname\",\"interp\",\"interp1\",\"interp2\",\"interpft\",\"intersect\",\"invest0\",\"invest1\",\"invfdemo\",\"invfreq\",\"invfreqs\",\"invfreqz\",\"inz\",\"irsa_act\",\"irsa_actcore\",\"irsa_check\",\"irsa_dft\",\"irsa_dftfp\",\"irsa_genreal\",\"irsa_idft\",\"irsa_isregular\",\"irsa_jitsp\",\"irsa_mdsp\",\"irsa_normalize\",\"irsa_plotdft\",\"irsa_resample\",\"irsa_rgenreal\",\"is_complex_sparse\",\"is_real_sparse\",\"is_sparse\",\"isa\",\"isbw\",\"isdir\",\"isequal\",\"isfield\",\"isfixed\",\"isgalois\",\"isgray\",\"isind\",\"ismember\",\"isprime\",\"isprimitive\",\"isrgb\",\"issparse\",\"isunix\",\"jet\",\"jpgread\",\"jpgwrite\",\"kaiser\",\"kaiserord\",\"lambert_W0\",\"lambert_Wm1\",\"lambertw\",\"lattice\",\"lauchli\",\"leasqr\",\"leasqrdemo\",\"legend\",\"legendre\",\"legendre_Pl\",\"legendre_Plm\",\"legendre_Ql\",\"legendre_sphPlm\",\"legendre_sphPlm_array\",\"leval\",\"levinson\",\"lin2mu\",\"line_min\",\"listen\",\"lloyds\",\"lnbeta\",\"lncosh\",\"lngamma_gsl\",\"lnpoch\",\"lnsinh\",\"log_1plusx\",\"log_1plusx_mx\",\"log_erfc\",\"lookup\",\"lookup_table\",\"lp\",\"lp_test\",\"lpc\",\"mad\",\"magic\",\"make_sparse\",\"makelut\",\"map\",\"mark_for_deletion\",\"mat2gray\",\"mat2str\",\"mdsmax\",\"mean2\",\"medfilt1\",\"medfilt2\",\"meshc\",\"minimize\",\"minpol\",\"mkpp\",\"mktheta\",\"mle_estimate\",\"mle_example\",\"mle_obj\",\"mle_results\",\"mle_variance\",\"modmap\",\"mu2lin\",\"mvaar\",\"mvar\",\"mvfilter\",\"mvfreqz\",\"myfeval\",\"nanmax\",\"nanmean\",\"nanmedian\",\"nanmin\",\"nanstd\",\"nansum\",\"ncauer\",\"nchoosek\",\"ncrule\",\"ndims\",\"nelder_mead_min\",\"newmark\",\"newtonstep\",\"nlfilter\",\"nlnewmark\",\"nmsmax\",\"nnz\",\"nonzeros\",\"normplot\",\"now\",\"nrm\",\"nthroot\",\"numgradient\",\"numhessian\",\"nze\",\"ode23\",\"ode45\",\"ode78\",\"optimset\",\"ordfilt2\",\"orient\",\"pacf\",\"padarray\",\"parameterize\",\"parcor\",\"pareto\",\"pascal\",\"patch\",\"pburg\",\"pcg\",\"pchip\",\"pchip_deriv\",\"pcolor\",\"pcr\",\"peaks\",\"penddot\",\"pendulum\",\"perms\",\"pie\",\"pink\",\"plot3\",\"pngread\",\"pngwrite\",\"poch\",\"pochrel\",\"poly2ac\",\"poly2ar\",\"poly2mask\",\"poly2rc\",\"poly2sym\",\"poly2th\",\"poly_2_ex\",\"polyarea\",\"polyconf\",\"polyder\",\"polyderiv\",\"polygcd\",\"polystab\",\"ppval\",\"prctile\",\"pretty\",\"prettyprint\",\"prettyprint_c\",\"primes\",\"primpoly\",\"princomp\",\"print\",\"prism\",\"proplan\",\"psi\",\"psi_1_int\",\"psi_1piy\",\"psi_n\",\"pulstran\",\"pwelch\",\"pyulear\",\"qaskdeco\",\"qaskenco\",\"qtdecomp\",\"qtgetblk\",\"qtsetblk\",\"quad2dc\",\"quad2dcgen\",\"quad2dg\",\"quad2dggen\",\"quadc\",\"quadg\",\"quadl\",\"quadndg\",\"quantiz\",\"quiver\",\"rad2deg\",\"rainbow\",\"rand\",\"rande\",\"randerr\",\"randint\",\"randn\",\"randp\",\"randsrc\",\"rat\",\"rats\",\"rc2ac\",\"rc2ar\",\"rc2poly\",\"rceps\",\"read_options\",\"read_pdb\",\"rectpuls\",\"regexp\",\"remez\",\"resample\",\"reset_fixed_operations\",\"rgb2gray\",\"rk2fixed\",\"rk4fixed\",\"rk8fixed\",\"rmfield\",\"rmle\",\"rmpath\",\"roicolor\",\"rosser\",\"rotate_scale\",\"rotparams\",\"rotv\",\"rref\",\"rsdec\",\"rsdecof\",\"rsenc\",\"rsencof\",\"rsgenpoly\",\"samin\",\"samin_example\",\"save_vrml\",\"sbispec\",\"scale_data\",\"scatter\",\"scatterplot\",\"select_3D_points\",\"selmo\",\"setdiff\",\"setfield\",\"setfields\",\"setxor\",\"sftrans\",\"sgolay\",\"sgolayfilt\",\"sinc_gsl\",\"sinvest1\",\"slurp_file\",\"sortrows\",\"sound\",\"soundsc\",\"sp_test\",\"spabs\",\"sparse\",\"spdiags\",\"specgram\",\"speed\",\"speye\",\"spfind\",\"spfun\",\"sphcat\",\"spimag\",\"spinv\",\"spline\",\"splot\",\"splu\",\"spones\",\"sprand\",\"sprandn\",\"spreal\",\"spring\",\"spstats\",\"spsum\",\"sptest\",\"spvcat\",\"spy\",\"std2\",\"stem\",\"str2double\",\"strcmpi\",\"stretchlim\",\"strfind\",\"strmatch\",\"strncmp\",\"strncmpi\",\"strsort\",\"strtok\",\"strtoz\",\"struct\",\"strvcat\",\"summer\",\"sumskipnan\",\"surf\",\"surfc\",\"sym2poly\",\"symerr\",\"symfsolve\",\"synchrotron_1\",\"synchrotron_2\",\"syndtable\",\"tabulate\",\"tar\",\"taylorcoeff\",\"temp_name\",\"test\",\"test_d2_min_1\",\"test_d2_min_2\",\"test_d2_min_3\",\"test_ellipj\",\"test_fminunc_1\",\"test_inline_1\",\"test_min_1\",\"test_min_2\",\"test_min_3\",\"test_min_4\",\"test_minimize_1\",\"test_nelder_mead_min_1\",\"test_nelder_mead_min_2\",\"test_sncndn\",\"test_struct\",\"test_vmesh\",\"test_vrml_faces\",\"test_wpolyfit\",\"testimio\",\"text\",\"textread\",\"tf2zp\",\"tfe\",\"thfm\",\"tics\",\"toeplitz\",\"toggle_grace_use\",\"transport_2\",\"transport_3\",\"transport_4\",\"transport_5\",\"transpose\",\"trapz\",\"triang\",\"tril\",\"trimmean\",\"tripuls\",\"trisolve\",\"triu\",\"tsademo\",\"tsearchdemo\",\"ucp\",\"uintlut\",\"unique\",\"unix\",\"unmkpp\",\"unscale_parameters\",\"vec2mat\",\"view\",\"vmesh\",\"voronoi\",\"voronoin\",\"vrml_Background\",\"vrml_PointLight\",\"vrml_arrow\",\"vrml_browse\",\"vrml_cyl\",\"vrml_demo_tutorial_1\",\"vrml_demo_tutorial_2\",\"vrml_demo_tutorial_3\",\"vrml_demo_tutorial_4\",\"vrml_ellipsoid\",\"vrml_faces\",\"vrml_flatten\",\"vrml_frame\",\"vrml_group\",\"vrml_kill\",\"vrml_lines\",\"vrml_material\",\"vrml_parallelogram\",\"vrml_points\",\"vrml_select_points\",\"vrml_surf\",\"vrml_text\",\"vrml_thick_surf\",\"vrml_transfo\",\"waitbar\",\"wavread\",\"wavwrite\",\"weekday\",\"wgn\",\"white\",\"wilkinson\",\"winter\",\"wpolyfit\",\"wpolyfitdemo\",\"write_pdb\",\"wsolve\",\"xcorr\",\"xcorr2\",\"xcov\",\"xlsread\",\"xmlread\",\"xmlwrite\",\"y2res\",\"zero_count\",\"zeta\",\"zeta_int\",\"zoom\",\"zp2tf\",\"zplane\",\"zscore\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[%#].*$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z]\\\\w*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\d+(\\\\.\\\\d+)?|\\\\.\\\\d+)([eE][+-]?\\\\d+)?[ij]?\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"()[]{}\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"...\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"==\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"~=\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"!=\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<=\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \">=\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<>\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"&&\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"||\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"++\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"--\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"**\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \".*\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \".**\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \".^\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"./\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \".'\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"!\\\"%(*+,/;=>[]|~#&)-:<>\\\\^\", 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})], sAuthor = \"Luis Silvestre and Federico Zenith\", sVersion = \"2\", sLicense = \"GPL\", sExtensions = [\"*.octave\",\"*.m\",\"*.M\"], sStartingContext = \"_normal\"}"
diff --git a/src/Skylighting/Syntax/Opencl.hs b/src/Skylighting/Syntax/Opencl.hs
--- a/src/Skylighting/Syntax/Opencl.hs
+++ b/src/Skylighting/Syntax/Opencl.hs
@@ -2,1204 +2,6 @@
 module Skylighting.Syntax.Opencl (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "OpenCL"
-  , sFilename = "opencl.xml"
-  , sShortname = "Opencl"
-  , sContexts =
-      fromList
-        [ ( "AfterHash"
-          , Context
-              { cName = "AfterHash"
-              , cSyntax = "OpenCL"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*if(?:def|ndef)?(?=\\s+\\S)"
-                              , reCompiled =
-                                  Just (compileRegex False "#\\s*if(?:def|ndef)?(?=\\s+\\S)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "OpenCL" , "Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*endif"
-                              , reCompiled = Just (compileRegex False "#\\s*endif")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "OpenCL" , "Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*define.*((?=\\\\))"
-                              , reCompiled = Just (compileRegex False "#\\s*define.*((?=\\\\))")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "OpenCL" , "Define" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "#\\s*(?:el(?:se|if)|include(?:_next)?|define|undef|line|error|warning|pragma)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "#\\s*(?:el(?:se|if)|include(?:_next)?|define|undef|line|error|warning|pragma)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "OpenCL" , "Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s+[0-9]+"
-                              , reCompiled = Just (compileRegex False "#\\s+[0-9]+")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "OpenCL" , "Preprocessor" ) ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Commentar 1"
-          , Context
-              { cName = "Commentar 1"
-              , cSyntax = "OpenCL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Commentar 2"
-          , Context
-              { cName = "Commentar 2"
-              , cSyntax = "OpenCL"
-              , cRules =
-                  [ 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 = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Commentar/Preprocessor"
-          , Context
-              { cName = "Commentar/Preprocessor"
-              , cSyntax = "OpenCL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Define"
-          , Context
-              { cName = "Define"
-              , cSyntax = "OpenCL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "OpenCL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*if\\s+0\\s*$"
-                              , reCompiled = Just (compileRegex True "#\\s*if\\s+0\\s*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "OpenCL" , "Outscoped" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "OpenCL" , "AfterHash" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "//BEGIN"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "OpenCL" , "Region Marker" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "//END"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "OpenCL" , "Region Marker" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "__constant"
-                               , "__global"
-                               , "__kernel"
-                               , "__local"
-                               , "__private"
-                               , "__read_only"
-                               , "__write_only"
-                               , "break"
-                               , "case"
-                               , "constant"
-                               , "continue"
-                               , "default"
-                               , "do"
-                               , "else"
-                               , "enum"
-                               , "for"
-                               , "global"
-                               , "goto"
-                               , "if"
-                               , "inline"
-                               , "kernel"
-                               , "local"
-                               , "private"
-                               , "read_only"
-                               , "return"
-                               , "sizeof"
-                               , "struct"
-                               , "switch"
-                               , "typedef"
-                               , "union"
-                               , "while"
-                               , "write_only"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "bool"
-                               , "char"
-                               , "char16"
-                               , "char2"
-                               , "char3"
-                               , "char4"
-                               , "char8"
-                               , "const"
-                               , "double"
-                               , "double16"
-                               , "double2"
-                               , "double3"
-                               , "double4"
-                               , "double8"
-                               , "event_t"
-                               , "float"
-                               , "float16"
-                               , "float2"
-                               , "float3"
-                               , "float4"
-                               , "float8"
-                               , "half"
-                               , "half16"
-                               , "half2"
-                               , "half3"
-                               , "half4"
-                               , "half8"
-                               , "image1d_t"
-                               , "image2d_t"
-                               , "image3d_t"
-                               , "int"
-                               , "int16"
-                               , "int2"
-                               , "int3"
-                               , "int4"
-                               , "int8"
-                               , "long"
-                               , "long16"
-                               , "long2"
-                               , "long3"
-                               , "long4"
-                               , "long8"
-                               , "restrict"
-                               , "sampler_t"
-                               , "short"
-                               , "short16"
-                               , "short2"
-                               , "short3"
-                               , "short4"
-                               , "short8"
-                               , "signed"
-                               , "static"
-                               , "uchar"
-                               , "uchar16"
-                               , "uchar2"
-                               , "uchar3"
-                               , "uchar4"
-                               , "uchar8"
-                               , "uint"
-                               , "uint16"
-                               , "uint2"
-                               , "uint3"
-                               , "uint4"
-                               , "uint8"
-                               , "ulong"
-                               , "ulong16"
-                               , "ulong2"
-                               , "ulong3"
-                               , "ulong4"
-                               , "ulong8"
-                               , "unsigned"
-                               , "ushort"
-                               , "ushort16"
-                               , "ushort2"
-                               , "ushort3"
-                               , "ushort4"
-                               , "ushort8"
-                               , "void"
-                               , "volatile"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = AnyChar "fF"
-                              , rAttribute = FloatTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = True
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = StringDetect "ULL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LUL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LLU"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "UL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LU"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "U"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "L"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "OpenCL" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "" )
-                      , rAttribute = NormalTok
-                      , 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 ( "OpenCL" , "Commentar 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "OpenCL" , "Commentar 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ":!%&()+,-/.*<=>?[]|~^;"
-                      , 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
-              }
-          )
-        , ( "Outscoped"
-          , Context
-              { cName = "Outscoped"
-              , cSyntax = "OpenCL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "OpenCL" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "" )
-                      , 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 = [ Push ( "OpenCL" , "Commentar 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "OpenCL" , "Commentar 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*if"
-                              , reCompiled = Just (compileRegex True "#\\s*if")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "OpenCL" , "Outscoped intern" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*el(?:se|if)"
-                              , reCompiled = Just (compileRegex True "#\\s*el(?:se|if)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*endif"
-                              , reCompiled = Just (compileRegex True "#\\s*endif")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Outscoped intern"
-          , Context
-              { cName = "Outscoped intern"
-              , cSyntax = "OpenCL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "OpenCL" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "" )
-                      , 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 = [ Push ( "OpenCL" , "Commentar 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "OpenCL" , "Commentar 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*if"
-                              , reCompiled = Just (compileRegex True "#\\s*if")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "OpenCL" , "Outscoped intern" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*endif"
-                              , reCompiled = Just (compileRegex True "#\\s*endif")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Preprocessor"
-          , Context
-              { cName = "Preprocessor"
-              , cSyntax = "OpenCL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '"' '"'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '<' '>'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "" )
-                      , rAttribute = OtherTok
-                      , 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 ( "OpenCL" , "Commentar/Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "OpenCL" , "Commentar 1" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Region Marker"
-          , Context
-              { cName = "Region Marker"
-              , cSyntax = "OpenCL"
-              , cRules = []
-              , cAttribute = RegionMarkerTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "OpenCL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = ""
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.cl" ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"OpenCL\", sFilename = \"opencl.xml\", sShortname = \"Opencl\", sContexts = fromList [(\"AfterHash\",Context {cName = \"AfterHash\", cSyntax = \"OpenCL\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*if(?:def|ndef)?(?=\\\\s+\\\\S)\", reCaseSensitive = False}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"OpenCL\",\"Preprocessor\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*endif\", reCaseSensitive = False}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"OpenCL\",\"Preprocessor\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*define.*((?=\\\\\\\\))\", reCaseSensitive = False}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"OpenCL\",\"Define\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*(?:el(?:se|if)|include(?:_next)?|define|undef|line|error|warning|pragma)\", reCaseSensitive = False}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"OpenCL\",\"Preprocessor\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s+[0-9]+\", reCaseSensitive = False}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"OpenCL\",\"Preprocessor\")]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Commentar 1\",Context {cName = \"Commentar 1\", cSyntax = \"OpenCL\", cRules = [Rule {rMatcher = LineContinue, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Commentar 2\",Context {cName = \"Commentar 2\", cSyntax = \"OpenCL\", cRules = [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 = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Commentar/Preprocessor\",Context {cName = \"Commentar/Preprocessor\", cSyntax = \"OpenCL\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Define\",Context {cName = \"Define\", cSyntax = \"OpenCL\", cRules = [Rule {rMatcher = LineContinue, rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"OpenCL\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*if\\\\s+0\\\\s*$\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"OpenCL\",\"Outscoped\")]},Rule {rMatcher = DetectChar '#', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"OpenCL\",\"AfterHash\")]},Rule {rMatcher = StringDetect \"//BEGIN\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"OpenCL\",\"Region Marker\")]},Rule {rMatcher = StringDetect \"//END\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"OpenCL\",\"Region Marker\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"__constant\",\"__global\",\"__kernel\",\"__local\",\"__private\",\"__read_only\",\"__write_only\",\"break\",\"case\",\"constant\",\"continue\",\"default\",\"do\",\"else\",\"enum\",\"for\",\"global\",\"goto\",\"if\",\"inline\",\"kernel\",\"local\",\"private\",\"read_only\",\"return\",\"sizeof\",\"struct\",\"switch\",\"typedef\",\"union\",\"while\",\"write_only\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"bool\",\"char\",\"char16\",\"char2\",\"char3\",\"char4\",\"char8\",\"const\",\"double\",\"double16\",\"double2\",\"double3\",\"double4\",\"double8\",\"event_t\",\"float\",\"float16\",\"float2\",\"float3\",\"float4\",\"float8\",\"half\",\"half16\",\"half2\",\"half3\",\"half4\",\"half8\",\"image1d_t\",\"image2d_t\",\"image3d_t\",\"int\",\"int16\",\"int2\",\"int3\",\"int4\",\"int8\",\"long\",\"long16\",\"long2\",\"long3\",\"long4\",\"long8\",\"restrict\",\"sampler_t\",\"short\",\"short16\",\"short2\",\"short3\",\"short4\",\"short8\",\"signed\",\"static\",\"uchar\",\"uchar16\",\"uchar2\",\"uchar3\",\"uchar4\",\"uchar8\",\"uint\",\"uint16\",\"uint2\",\"uint3\",\"uint4\",\"uint8\",\"ulong\",\"ulong16\",\"ulong2\",\"ulong3\",\"ulong4\",\"ulong8\",\"unsigned\",\"ushort\",\"ushort16\",\"ushort2\",\"ushort3\",\"ushort4\",\"ushort8\",\"void\",\"volatile\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [Rule {rMatcher = AnyChar \"fF\", rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [Rule {rMatcher = StringDetect \"ULL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LUL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LLU\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"UL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LU\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"U\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"L\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"OpenCL\",\"String\")]},Rule {rMatcher = IncludeRules (\"Doxygen\",\"\"), rAttribute = NormalTok, 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 (\"OpenCL\",\"Commentar 1\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"OpenCL\",\"Commentar 2\")]},Rule {rMatcher = AnyChar \":!%&()+,-/.*<=>?[]|~^;\", 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}),(\"Outscoped\",Context {cName = \"Outscoped\", cSyntax = \"OpenCL\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},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 = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"OpenCL\",\"String\")]},Rule {rMatcher = IncludeRules (\"Doxygen\",\"\"), 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 = [Push (\"OpenCL\",\"Commentar 1\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"OpenCL\",\"Commentar 2\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*if\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"OpenCL\",\"Outscoped intern\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*el(?:se|if)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*endif\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Outscoped intern\",Context {cName = \"Outscoped intern\", cSyntax = \"OpenCL\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},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 = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"OpenCL\",\"String\")]},Rule {rMatcher = IncludeRules (\"Doxygen\",\"\"), 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 = [Push (\"OpenCL\",\"Commentar 1\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"OpenCL\",\"Commentar 2\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*if\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"OpenCL\",\"Outscoped intern\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*endif\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Preprocessor\",Context {cName = \"Preprocessor\", cSyntax = \"OpenCL\", cRules = [Rule {rMatcher = LineContinue, rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RangeDetect '\"' '\"', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RangeDetect '<' '>', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Doxygen\",\"\"), rAttribute = OtherTok, 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 (\"OpenCL\",\"Commentar/Preprocessor\")]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"OpenCL\",\"Commentar 1\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Region Marker\",Context {cName = \"Region Marker\", cSyntax = \"OpenCL\", cRules = [], cAttribute = RegionMarkerTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"OpenCL\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCStringChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.cl\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Pascal.hs b/src/Skylighting/Syntax/Pascal.hs
--- a/src/Skylighting/Syntax/Pascal.hs
+++ b/src/Skylighting/Syntax/Pascal.hs
@@ -2,726 +2,6 @@
 module Skylighting.Syntax.Pascal (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Pascal"
-  , sFilename = "pascal.xml"
-  , sShortname = "Pascal"
-  , sContexts =
-      fromList
-        [ ( "CharNum"
-          , Context
-              { cName = "CharNum"
-              , cSyntax = "Pascal"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Pascal" , "HexCharNum" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^0-9]"
-                              , reCompiled = Just (compileRegex True "[^0-9]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment1"
-          , Context
-              { cName = "Comment1"
-              , cSyntax = "Pascal"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet False [ "###" , "FIXME" , "NOTE" , "TODO" ])
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment2"
-          , Context
-              { cName = "Comment2"
-              , cSyntax = "Pascal"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet False [ "###" , "FIXME" , "NOTE" , "TODO" ])
-                      , rAttribute = AlertTok
-                      , 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 ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment3"
-          , Context
-              { cName = "Comment3"
-              , cSyntax = "Pascal"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet False [ "###" , "FIXME" , "NOTE" , "TODO" ])
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Hex"
-          , Context
-              { cName = "Hex"
-              , cSyntax = "Pascal"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^a-fA-F0-9]"
-                              , reCompiled = Just (compileRegex True "[^a-fA-F0-9]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = BaseNTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "HexCharNum"
-          , Context
-              { cName = "HexCharNum"
-              , cSyntax = "Pascal"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^a-fA-F0-9]"
-                              , reCompiled = Just (compileRegex True "[^a-fA-F0-9]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = BaseNTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Pascal"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b(begin|case|record)(?=(\\{[^}]*(\\}|$)|\\(\\*.*(\\*\\)|$))*([\\s]|$|//))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "\\b(begin|case|record)(?=(\\{[^}]*(\\}|$)|\\(\\*.*(\\*\\)|$))*([\\s]|$|//))")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b((object|class)(?=(\\(.*\\))?(\\{[^}]*(\\}|$)|\\(\\*.*(\\*\\)|$))*;?([\\s]|$|//))|try(?=(\\{[^}]*(\\}|$)|\\(\\*.*(\\*\\)|$))*([\\s]|$|//)))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "\\b((object|class)(?=(\\(.*\\))?(\\{[^}]*(\\}|$)|\\(\\*.*(\\*\\)|$))*;?([\\s]|$|//))|try(?=(\\{[^}]*(\\}|$)|\\(\\*.*(\\*\\)|$))*([\\s]|$|//)))")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\bend(?=((\\{[^}]*(\\}|$)|\\(\\*.*(\\*\\)|$))*)([.;\\s]|$)|//|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "\\bend(?=((\\{[^}]*(\\}|$)|\\(\\*.*(\\*\\)|$))*)([.;\\s]|$)|//|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "and"
-                               , "array"
-                               , "asm"
-                               , "at"
-                               , "automated"
-                               , "break"
-                               , "case"
-                               , "const"
-                               , "continue"
-                               , "dispinterface"
-                               , "dispose"
-                               , "div"
-                               , "do"
-                               , "downto"
-                               , "else"
-                               , "exit"
-                               , "false"
-                               , "file"
-                               , "finalization"
-                               , "for"
-                               , "function"
-                               , "goto"
-                               , "if"
-                               , "in"
-                               , "initialization"
-                               , "label"
-                               , "library"
-                               , "mod"
-                               , "new"
-                               , "nil"
-                               , "not"
-                               , "of"
-                               , "operator"
-                               , "or"
-                               , "packed"
-                               , "procedure"
-                               , "program"
-                               , "published"
-                               , "record"
-                               , "repeat"
-                               , "resourcestring"
-                               , "self"
-                               , "set"
-                               , "then"
-                               , "to"
-                               , "true"
-                               , "type"
-                               , "unit"
-                               , "until"
-                               , "uses"
-                               , "var"
-                               , "while"
-                               , "with"
-                               , "xor"
-                               ])
-                      , rAttribute = KeywordTok
-                      , 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
-                               [ "abstract"
-                               , "as"
-                               , "bindable"
-                               , "constructor"
-                               , "destructor"
-                               , "except"
-                               , "export"
-                               , "finally"
-                               , "implementation"
-                               , "import"
-                               , "inherited"
-                               , "inline"
-                               , "interface"
-                               , "is"
-                               , "module"
-                               , "on"
-                               , "only"
-                               , "otherwise"
-                               , "override"
-                               , "private"
-                               , "property"
-                               , "protected"
-                               , "public"
-                               , "qualified"
-                               , "raise"
-                               , "read"
-                               , "restricted"
-                               , "shl"
-                               , "shr"
-                               , "threadvar"
-                               , "try"
-                               , "virtual"
-                               , "write"
-                               ])
-                      , rAttribute = KeywordTok
-                      , 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
-                               [ "AnsiChar"
-                               , "AnsiString"
-                               , "Boolean"
-                               , "Byte"
-                               , "ByteBool"
-                               , "Cardinal"
-                               , "Char"
-                               , "Comp"
-                               , "Currency"
-                               , "Double"
-                               , "DWord"
-                               , "Extended"
-                               , "File"
-                               , "Int64"
-                               , "Integer"
-                               , "LongBool"
-                               , "LongInt"
-                               , "LongWord"
-                               , "Pointer"
-                               , "QWord"
-                               , "Real"
-                               , "Real48"
-                               , "ShortInt"
-                               , "ShortString"
-                               , "Single"
-                               , "SmallInt"
-                               , "String"
-                               , "Text"
-                               , "Variant"
-                               , "WideChar"
-                               , "WideString"
-                               , "Word"
-                               , "WordBool"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Pascal" , "Hex" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Pascal" , "CharNum" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Pascal" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "(*$"
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Pascal" , "Prep1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '{' '$'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Pascal" , "Prep2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Pascal" , "Comment1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '(' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Pascal" , "Comment2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Pascal" , "Comment3" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Prep1"
-          , Context
-              { cName = "Prep1"
-              , cSyntax = "Pascal"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' ')'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Prep2"
-          , Context
-              { cName = "Prep2"
-              , cSyntax = "Pascal"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Pascal"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Unnamed people and Liu Sizhuang(oldherl@gmail.com)"
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.p" , "*.pas" , "*.pp" ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"Pascal\", sFilename = \"pascal.xml\", sShortname = \"Pascal\", sContexts = fromList [(\"CharNum\",Context {cName = \"CharNum\", cSyntax = \"Pascal\", cRules = [Rule {rMatcher = DetectChar '$', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Pascal\",\"HexCharNum\")]},Rule {rMatcher = RegExpr (RE {reString = \"[^0-9]\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment1\",Context {cName = \"Comment1\", cSyntax = \"Pascal\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"###\",\"FIXME\",\"NOTE\",\"TODO\"])), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment2\",Context {cName = \"Comment2\", cSyntax = \"Pascal\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"###\",\"FIXME\",\"NOTE\",\"TODO\"])), rAttribute = AlertTok, 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]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment3\",Context {cName = \"Comment3\", cSyntax = \"Pascal\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"###\",\"FIXME\",\"NOTE\",\"TODO\"])), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Hex\",Context {cName = \"Hex\", cSyntax = \"Pascal\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[^a-fA-F0-9]\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = BaseNTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"HexCharNum\",Context {cName = \"HexCharNum\", cSyntax = \"Pascal\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[^a-fA-F0-9]\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = BaseNTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Pascal\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(begin|case|record)(?=(\\\\{[^}]*(\\\\}|$)|\\\\(\\\\*.*(\\\\*\\\\)|$))*([\\\\s]|$|//))\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b((object|class)(?=(\\\\(.*\\\\))?(\\\\{[^}]*(\\\\}|$)|\\\\(\\\\*.*(\\\\*\\\\)|$))*;?([\\\\s]|$|//))|try(?=(\\\\{[^}]*(\\\\}|$)|\\\\(\\\\*.*(\\\\*\\\\)|$))*([\\\\s]|$|//)))\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bend(?=((\\\\{[^}]*(\\\\}|$)|\\\\(\\\\*.*(\\\\*\\\\)|$))*)([.;\\\\s]|$)|//|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"and\",\"array\",\"asm\",\"at\",\"automated\",\"break\",\"case\",\"const\",\"continue\",\"dispinterface\",\"dispose\",\"div\",\"do\",\"downto\",\"else\",\"exit\",\"false\",\"file\",\"finalization\",\"for\",\"function\",\"goto\",\"if\",\"in\",\"initialization\",\"label\",\"library\",\"mod\",\"new\",\"nil\",\"not\",\"of\",\"operator\",\"or\",\"packed\",\"procedure\",\"program\",\"published\",\"record\",\"repeat\",\"resourcestring\",\"self\",\"set\",\"then\",\"to\",\"true\",\"type\",\"unit\",\"until\",\"uses\",\"var\",\"while\",\"with\",\"xor\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"abstract\",\"as\",\"bindable\",\"constructor\",\"destructor\",\"except\",\"export\",\"finally\",\"implementation\",\"import\",\"inherited\",\"inline\",\"interface\",\"is\",\"module\",\"on\",\"only\",\"otherwise\",\"override\",\"private\",\"property\",\"protected\",\"public\",\"qualified\",\"raise\",\"read\",\"restricted\",\"shl\",\"shr\",\"threadvar\",\"try\",\"virtual\",\"write\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"AnsiChar\",\"AnsiString\",\"Boolean\",\"Byte\",\"ByteBool\",\"Cardinal\",\"Char\",\"Comp\",\"Currency\",\"Double\",\"DWord\",\"Extended\",\"File\",\"Int64\",\"Integer\",\"LongBool\",\"LongInt\",\"LongWord\",\"Pointer\",\"QWord\",\"Real\",\"Real48\",\"ShortInt\",\"ShortString\",\"Single\",\"SmallInt\",\"String\",\"Text\",\"Variant\",\"WideChar\",\"WideString\",\"Word\",\"WordBool\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '$', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Pascal\",\"Hex\")]},Rule {rMatcher = DetectChar '#', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Pascal\",\"CharNum\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Pascal\",\"String\")]},Rule {rMatcher = StringDetect \"(*$\", rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Pascal\",\"Prep1\")]},Rule {rMatcher = Detect2Chars '{' '$', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Pascal\",\"Prep2\")]},Rule {rMatcher = DetectChar '{', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Pascal\",\"Comment1\")]},Rule {rMatcher = Detect2Chars '(' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Pascal\",\"Comment2\")]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Pascal\",\"Comment3\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Prep1\",Context {cName = \"Prep1\", cSyntax = \"Pascal\", cRules = [Rule {rMatcher = Detect2Chars '*' ')', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Prep2\",Context {cName = \"Prep2\", cSyntax = \"Pascal\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Pascal\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Unnamed people and Liu Sizhuang(oldherl@gmail.com)\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.p\",\"*.pas\",\"*.pp\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Perl.hs b/src/Skylighting/Syntax/Perl.hs
--- a/src/Skylighting/Syntax/Perl.hs
+++ b/src/Skylighting/Syntax/Perl.hs
@@ -2,5442 +2,6 @@
 module Skylighting.Syntax.Perl (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Perl"
-  , sFilename = "perl.xml"
-  , sShortname = "Perl"
-  , sContexts =
-      fromList
-        [ ( "Backticked"
-          , Context
-              { cName = "Backticked"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Perl" , "ipstring_internal" )
-                      , rAttribute = StringTok
-                      , 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 = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "comment"
-          , Context
-              { cName = "comment"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "data_handle"
-          , Context
-              { cName = "data_handle"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\=(?:head[1-6]|over|back|item|for|begin|end|pod)\\s+.*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\=(?:head[1-6]|over|back|item|for|begin|end|pod)\\s+.*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Perl" , "pod" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "__END__"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "normal" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "end_handle"
-          , Context
-              { cName = "end_handle"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\=(?:head[1-6]|over|back|item|for|begin|end|pod)\\s*.*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\=(?:head[1-6]|over|back|item|for|begin|end|pod)\\s*.*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Perl" , "pod" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "__DATA__"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "data_handle" ) ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_here_document"
-          , Context
-              { cName = "find_here_document"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\w+)\\s*;?"
-                              , reCompiled = Just (compileRegex True "(\\w+)\\s*;?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "here_document" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\"([^\"]+)\"\\s*;?"
-                              , reCompiled = Just (compileRegex True "\\s*\"([^\"]+)\"\\s*;?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "here_document" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*`([^`]+)`\\s*;?"
-                              , reCompiled = Just (compileRegex True "\\s*`([^`]+)`\\s*;?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "here_document" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*'([^']+)'\\s*;?"
-                              , reCompiled = Just (compileRegex True "\\s*'([^']+)'\\s*;?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "here_document_dumb" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_pattern"
-          , Context
-              { cName = "find_pattern"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s+#.*"
-                              , reCompiled = Just (compileRegex True "\\s+#.*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , 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 ( "Perl" , "pattern_brace" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "pattern_paren" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "pattern_bracket" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "pattern_sq" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([^\\w\\s])"
-                              , reCompiled = Just (compileRegex True "([^\\w\\s])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "pattern" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_qqx"
-          , Context
-              { cName = "find_qqx"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "ip_string_2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "ip_string_3" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "ip_string_4" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "ip_string_5" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([^a-zA-Z0-9_\\s[\\]{}()])"
-                              , reCompiled =
-                                  Just (compileRegex True "([^a-zA-Z0-9_\\s[\\]{}()])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "ip_string_6" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s+#.*"
-                              , reCompiled = Just (compileRegex True "\\s+#.*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_quoted"
-          , Context
-              { cName = "find_quoted"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "x\\s*(')"
-                              , reCompiled = Just (compileRegex True "x\\s*(')")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "string_6" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "qx"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "find_qqx" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar 'w'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "find_qw" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "string_2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "string_3" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "string_4" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "string_5" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([^a-zA-Z0-9_\\s[\\]{}()])"
-                              , reCompiled =
-                                  Just (compileRegex True "([^a-zA-Z0-9_\\s[\\]{}()])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "string_6" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s+#.*"
-                              , reCompiled = Just (compileRegex True "\\s+#.*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_qw"
-          , Context
-              { cName = "find_qw"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "quote_word_paren" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "quote_word_brace" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "quote_word_bracket" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([^a-zA-Z0-9_\\s[\\]{}()])"
-                              , reCompiled =
-                                  Just (compileRegex True "([^a-zA-Z0-9_\\s[\\]{}()])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "quote_word" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s+#.*"
-                              , reCompiled = Just (compileRegex True "\\s+#.*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_subst"
-          , Context
-              { cName = "find_subst"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s+#.*"
-                              , reCompiled = Just (compileRegex True "\\s+#.*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , 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 ( "Perl" , "subst_curlybrace_pattern" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "subst_paren_pattern" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "subst_bracket_pattern" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "subst_sq_pattern" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([^\\w\\s[\\]{}()])"
-                              , reCompiled = Just (compileRegex True "([^\\w\\s[\\]{}()])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "subst_slash_pattern" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_variable"
-          , Context
-              { cName = "find_variable"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ 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 = [ Push ( "Perl" , "var_detect" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[@\\$](?:[\\+\\-_]\\B|ARGV\\b|INC\\b)"
-                              , reCompiled =
-                                  Just (compileRegex True "[@\\$](?:[\\+\\-_]\\B|ARGV\\b|INC\\b)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "var_detect" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[%\\$](?:INC\\b|ENV\\b|SIG\\b)"
-                              , reCompiled =
-                                  Just (compileRegex True "[%\\$](?:INC\\b|ENV\\b|SIG\\b)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "var_detect" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$\\$[\\$\\w_]"
-                              , reCompiled = Just (compileRegex True "\\$\\$[\\$\\w_]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "var_detect" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$[#_][\\w_]"
-                              , reCompiled = Just (compileRegex True "\\$[#_][\\w_]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "var_detect" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$+::"
-                              , reCompiled = Just (compileRegex True "\\$+::")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "var_detect" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$[^a-zA-Z0-9\\s{][A-Z]?"
-                              , reCompiled = Just (compileRegex True "\\$[^a-zA-Z0-9\\s{][A-Z]?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "var_detect" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\$@%]\\{[\\w_]+\\}"
-                              , reCompiled = Just (compileRegex True "[\\$@%]\\{[\\w_]+\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "var_detect" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "$@%"
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "var_detect" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\*[a-zA-Z_]+"
-                              , reCompiled = Just (compileRegex True "\\*[a-zA-Z_]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "var_detect" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\*[^a-zA-Z0-9\\s{][A-Z]?"
-                              , reCompiled = Just (compileRegex True "\\*[^a-zA-Z0-9\\s{][A-Z]?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "$@%*"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "find_variable_unsafe"
-          , Context
-              { cName = "find_variable_unsafe"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ 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 = [ Push ( "Perl" , "var_detect_unsafe" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[@\\$](?:[\\+\\-_]\\B|ARGV\\b|INC\\b)"
-                              , reCompiled =
-                                  Just (compileRegex True "[@\\$](?:[\\+\\-_]\\B|ARGV\\b|INC\\b)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "var_detect_unsafe" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[%\\$](?:INC\\b|ENV\\b|SIG\\b)"
-                              , reCompiled =
-                                  Just (compileRegex True "[%\\$](?:INC\\b|ENV\\b|SIG\\b)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "var_detect_unsafe" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$\\$[\\$\\w_]"
-                              , reCompiled = Just (compileRegex True "\\$\\$[\\$\\w_]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "var_detect_unsafe" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$[#_][\\w_]"
-                              , reCompiled = Just (compileRegex True "\\$[#_][\\w_]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "var_detect_unsafe" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$+::"
-                              , reCompiled = Just (compileRegex True "\\$+::")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "var_detect_unsafe" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$[^a-zA-Z0-9\\s{][A-Z]?"
-                              , reCompiled = Just (compileRegex True "\\$[^a-zA-Z0-9\\s{][A-Z]?")
-                              , 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 = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "var_detect_unsafe" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\$@%]"
-                              , reCompiled = Just (compileRegex True "[\\$@%]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "var_detect_unsafe" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\*\\w+"
-                              , reCompiled = Just (compileRegex True "\\*\\w+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "var_detect_unsafe" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "$@%*"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "here_document"
-          , Context
-              { cName = "here_document"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\=\\s*<<\\s*[\"']?([A-Z0-9_\\-]+)[\"']?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "\\=\\s*<<\\s*[\"']?([A-Z0-9_\\-]+)[\"']?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "here_document" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Perl" , "ipstring_internal" )
-                      , 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 = True
-              }
-          )
-        , ( "here_document_dumb"
-          , Context
-              { cName = "here_document_dumb"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1" , reCompiled = Nothing , reCaseSensitive = True }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , 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 = True
-              }
-          )
-        , ( "ip_string"
-          , Context
-              { cName = "ip_string"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Perl" , "ipstring_internal" )
-                      , 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
-              }
-          )
-        , ( "ip_string_2"
-          , Context
-              { cName = "ip_string_2"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = RangeDetect '(' ')'
-                      , rAttribute = StringTok
-                      , 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 = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Perl" , "ipstring_internal" )
-                      , 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
-              }
-          )
-        , ( "ip_string_3"
-          , Context
-              { cName = "ip_string_3"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = RangeDetect '{' '}'
-                      , rAttribute = StringTok
-                      , 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 = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Perl" , "ipstring_internal" )
-                      , 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
-              }
-          )
-        , ( "ip_string_4"
-          , Context
-              { cName = "ip_string_4"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = RangeDetect '[' ']'
-                      , rAttribute = StringTok
-                      , 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 = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Perl" , "ipstring_internal" )
-                      , 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
-              }
-          )
-        , ( "ip_string_5"
-          , Context
-              { cName = "ip_string_5"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = RangeDetect '<' '>'
-                      , rAttribute = StringTok
-                      , 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 = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Perl" , "ipstring_internal" )
-                      , 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
-              }
-          )
-        , ( "ip_string_6"
-          , Context
-              { cName = "ip_string_6"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '1'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Perl" , "ipstring_internal" )
-                      , 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 = True
-              }
-          )
-        , ( "ipstring_internal"
-          , Context
-              { cName = "ipstring_internal"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[UuLlEtnaefr]"
-                              , reCompiled = Just (compileRegex True "\\\\[UuLlEtnaefr]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 =
-                          RegExpr
-                            RE
-                              { reString = "(?:[\\$@]\\S|%[\\w{])"
-                              , reCompiled = Just (compileRegex True "(?:[\\$@]\\S|%[\\w{])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "find_variable_unsafe" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "normal"
-          , Context
-              { cName = "normal"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#!\\/.*"
-                              , reCompiled = Just (compileRegex True "#!\\/.*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "__DATA__"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "data_handle" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "__END__"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bsub\\s+"
-                              , reCompiled = Just (compileRegex True "\\bsub\\s+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "sub_name_def" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "BEGIN"
-                               , "END"
-                               , "__DATA__"
-                               , "__END__"
-                               , "__FILE__"
-                               , "__LINE__"
-                               , "__PACKAGE__"
-                               , "break"
-                               , "continue"
-                               , "default"
-                               , "do"
-                               , "each"
-                               , "else"
-                               , "elsif"
-                               , "for"
-                               , "foreach"
-                               , "given"
-                               , "if"
-                               , "last"
-                               , "local"
-                               , "my"
-                               , "next"
-                               , "our"
-                               , "package"
-                               , "return"
-                               , "state"
-                               , "sub"
-                               , "unless"
-                               , "until"
-                               , "when"
-                               , "while"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "!="
-                               , "%"
-                               , "&"
-                               , "&&"
-                               , "&&="
-                               , "&="
-                               , "*"
-                               , "**="
-                               , "*="
-                               , "+"
-                               , "+="
-                               , ","
-                               , "-"
-                               , "-="
-                               , "->"
-                               , "."
-                               , "//"
-                               , "//="
-                               , "/="
-                               , "::"
-                               , ";"
-                               , "<"
-                               , "<<"
-                               , "="
-                               , "=>"
-                               , ">"
-                               , ">>"
-                               , "?="
-                               , "\\"
-                               , "^"
-                               , "and"
-                               , "cmp"
-                               , "eq"
-                               , "ge"
-                               , "gt"
-                               , "le"
-                               , "lt"
-                               , "ne"
-                               , "not"
-                               , "or"
-                               , "|"
-                               , "|="
-                               , "||"
-                               , "||="
-                               , "~="
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "abs"
-                               , "accept"
-                               , "alarm"
-                               , "atan2"
-                               , "bind"
-                               , "binmode"
-                               , "bless"
-                               , "caller"
-                               , "chdir"
-                               , "chmod"
-                               , "chomp"
-                               , "chop"
-                               , "chown"
-                               , "chr"
-                               , "chroot"
-                               , "close"
-                               , "closedir"
-                               , "connect"
-                               , "cos"
-                               , "crypt"
-                               , "dbmclose"
-                               , "dbmopen"
-                               , "defined"
-                               , "delete"
-                               , "die"
-                               , "dump"
-                               , "endgrent"
-                               , "endhostent"
-                               , "endnetent"
-                               , "endprotoent"
-                               , "endpwent"
-                               , "endservent"
-                               , "eof"
-                               , "eval"
-                               , "exec"
-                               , "exists"
-                               , "exit"
-                               , "exp"
-                               , "fcntl"
-                               , "fileno"
-                               , "flock"
-                               , "fork"
-                               , "format"
-                               , "formline"
-                               , "getc"
-                               , "getgrent"
-                               , "getgrgid"
-                               , "getgrnam"
-                               , "gethostbyaddr"
-                               , "gethostbyname"
-                               , "gethostent"
-                               , "getlogin"
-                               , "getnetbyaddr"
-                               , "getnetbyname"
-                               , "getnetent"
-                               , "getpeername"
-                               , "getpgrp"
-                               , "getppid"
-                               , "getpriority"
-                               , "getprotobyname"
-                               , "getprotobynumber"
-                               , "getprotoent"
-                               , "getpwent"
-                               , "getpwnam"
-                               , "getpwuid"
-                               , "getservbyname"
-                               , "getservbyport"
-                               , "getservent"
-                               , "getsockname"
-                               , "getsockopt"
-                               , "glob"
-                               , "gmtime"
-                               , "goto"
-                               , "grep"
-                               , "hex"
-                               , "import"
-                               , "index"
-                               , "int"
-                               , "ioctl"
-                               , "join"
-                               , "keys"
-                               , "kill"
-                               , "last"
-                               , "lc"
-                               , "lcfirst"
-                               , "length"
-                               , "link"
-                               , "listen"
-                               , "localtime"
-                               , "lock"
-                               , "log"
-                               , "lstat"
-                               , "map"
-                               , "mkdir"
-                               , "msgctl"
-                               , "msgget"
-                               , "msgrcv"
-                               , "msgsnd"
-                               , "no"
-                               , "oct"
-                               , "open"
-                               , "opendir"
-                               , "ord"
-                               , "pack"
-                               , "package"
-                               , "pipe"
-                               , "pop"
-                               , "pos"
-                               , "print"
-                               , "printf"
-                               , "prototype"
-                               , "push"
-                               , "quotemeta"
-                               , "rand"
-                               , "read"
-                               , "readdir"
-                               , "readline"
-                               , "readlink"
-                               , "recv"
-                               , "redo"
-                               , "ref"
-                               , "rename"
-                               , "require"
-                               , "reset"
-                               , "return"
-                               , "reverse"
-                               , "rewinddir"
-                               , "rindex"
-                               , "rmdir"
-                               , "scalar"
-                               , "seek"
-                               , "seekdir"
-                               , "select"
-                               , "semctl"
-                               , "semget"
-                               , "semop"
-                               , "send"
-                               , "setgrent"
-                               , "sethostent"
-                               , "setnetent"
-                               , "setpgrp"
-                               , "setpriority"
-                               , "setprotoent"
-                               , "setpwent"
-                               , "setservent"
-                               , "setsockopt"
-                               , "shift"
-                               , "shmctl"
-                               , "shmget"
-                               , "shmread"
-                               , "shmwrite"
-                               , "shutdown"
-                               , "sin"
-                               , "sleep"
-                               , "socket"
-                               , "socketpair"
-                               , "sort"
-                               , "splice"
-                               , "split"
-                               , "sprintf"
-                               , "sqrt"
-                               , "srand"
-                               , "stat"
-                               , "study"
-                               , "sub"
-                               , "substr"
-                               , "symlink"
-                               , "syscall"
-                               , "sysread"
-                               , "sysseek"
-                               , "system"
-                               , "syswrite"
-                               , "tell"
-                               , "telldir"
-                               , "tie"
-                               , "time"
-                               , "times"
-                               , "truncate"
-                               , "uc"
-                               , "ucfirst"
-                               , "umask"
-                               , "undef"
-                               , "unlink"
-                               , "unpack"
-                               , "unshift"
-                               , "untie"
-                               , "use"
-                               , "utime"
-                               , "values"
-                               , "vec"
-                               , "wait"
-                               , "waitpid"
-                               , "wantarray"
-                               , "warn"
-                               , "write"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "bytes"
-                               , "constant"
-                               , "diagnostics"
-                               , "english"
-                               , "filetest"
-                               , "integer"
-                               , "less"
-                               , "locale"
-                               , "open"
-                               , "sigtrap"
-                               , "strict"
-                               , "subs"
-                               , "utf8"
-                               , "vars"
-                               , "warnings"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\=\\w+(\\s|$)"
-                              , reCompiled = Just (compileRegex True "\\=\\w+(\\s|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Perl" , "pod" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b\\-?0[xX]([0-9a-fA-F]|_[0-9a-fA-F])+"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b\\-?0[xX]([0-9a-fA-F]|_[0-9a-fA-F])+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "slash_safe_escape" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b\\-?0[bB]([01]|_[01])+"
-                              , reCompiled = Just (compileRegex True "\\b\\-?0[bB]([01]|_[01])+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "slash_safe_escape" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b\\-?0[1-7]([0-7]|_[0-7])*"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b\\-?0[1-7]([0-7]|_[0-7])*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "slash_safe_escape" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b\\-?[0-9]([0-9]|_[0-9])*\\.[0-9]([0-9]|_[0-9])*([eE]\\-?[1-9]([0-9]|_[0-9])*(\\.[0-9]*)?)?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\b\\-?[0-9]([0-9]|_[0-9])*\\.[0-9]([0-9]|_[0-9])*([eE]\\-?[1-9]([0-9]|_[0-9])*(\\.[0-9]*)?)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "slash_safe_escape" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b\\-?[1-9]([0-9]|_[0-9])*\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b\\-?[1-9]([0-9]|_[0-9])*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "slash_safe_escape" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "slash_safe_escape" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\([\"'])[^\\1]"
-                              , reCompiled = Just (compileRegex True "\\\\([\"'])[^\\1]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '&' '\''
-                      , rAttribute = NormalTok
-                      , 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 ( "Perl" , "ip_string" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "string" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "Backticked" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(?:[$@]\\S|%[\\w{]|\\*[^\\d\\*{\\$@%=(])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "(?:[$@]\\S|%[\\w{]|\\*[^\\d\\*{\\$@%=(])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "find_variable" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<[A-Z0-9_]+>"
-                              , reCompiled = Just (compileRegex True "<[A-Z0-9_]+>")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*<<(?=\\w+|\\s*[\"'])"
-                              , reCompiled = Just (compileRegex True "\\s*<<(?=\\w+|\\s*[\"'])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "find_here_document" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\}\\s*/{1,2}"
-                              , reCompiled = Just (compileRegex True "\\s*\\}\\s*/{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*[)\\]]\\s*/{1,2}"
-                              , reCompiled = Just (compileRegex True "\\s*[)\\]]\\s*/{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , 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 = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "sub_name_def" ) ]
-                      }
-                  , 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 = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bq(?=[qwx]?\\s*[^\\w\\s])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\bq(?=[qwx]?\\s*[^\\w\\s])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "find_quoted" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bs(?=\\s*[^\\w\\s\\]})])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\bs(?=\\s*[^\\w\\s\\]})])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "find_subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(?:tr|y)\\s*(?=[^\\w\\s\\]})])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b(?:tr|y)\\s*(?=[^\\w\\s\\]})])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "tr" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(?:m|qr)(?=\\s*[^\\w\\s\\]})])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b(?:m|qr)(?=\\s*[^\\w\\s\\]})])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "find_pattern" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\w_]+\\s*/"
-                              , reCompiled = Just (compileRegex True "[\\w_]+\\s*/")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[<>\"':]/"
-                              , reCompiled = Just (compileRegex True "[<>\"':]/")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , 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 ( "Perl" , "pattern_slash" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-[rwxoRWXOeszfdlpSbctugkTBMAC]\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "-[rwxoRWXOeszfdlpSbctugkTBMAC]\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , 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
-              }
-          )
-        , ( "package_qualified_blank"
-          , Context
-              { cName = "package_qualified_blank"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ 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 = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "pat_char_class"
-          , Context
-              { cName = "pat_char_class"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '^'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ']'
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[:\\^?[a-z]+:\\]"
-                              , reCompiled = Just (compileRegex True "\\[:\\^?[a-z]+:\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = BaseNTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "pat_ext"
-          , Context
-              { cName = "pat_ext"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\#[^)]*"
-                              , reCompiled = Just (compileRegex True "\\#[^)]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , 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 = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "pattern"
-          , Context
-              { cName = "pattern"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$(?=%1)"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1[cgimosx]*"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Perl" , "regex_pattern_internal_ip" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$(?=\\%1)"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "pattern_brace"
-          , Context
-              { cName = "pattern_brace"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\}[cgimosx]*"
-                              , reCompiled = Just (compileRegex True "\\}[cgimosx]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Perl" , "regex_pattern_internal_ip" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "pattern_bracket"
-          , Context
-              { cName = "pattern_bracket"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\][cgimosx]*"
-                              , reCompiled = Just (compileRegex True "\\][cgimosx]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Perl" , "regex_pattern_internal_ip" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "pattern_paren"
-          , Context
-              { cName = "pattern_paren"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\)[cgimosx]*"
-                              , reCompiled = Just (compileRegex True "\\)[cgimosx]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Perl" , "regex_pattern_internal_ip" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "pattern_slash"
-          , Context
-              { cName = "pattern_slash"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$(?=/)"
-                              , reCompiled = Just (compileRegex True "\\$(?=/)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Perl" , "regex_pattern_internal_ip" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "/[cgimosx]*"
-                              , reCompiled = Just (compileRegex True "/[cgimosx]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "pattern_sq"
-          , Context
-              { cName = "pattern_sq"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'[cgimosx]*"
-                              , reCompiled = Just (compileRegex True "'[cgimosx]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Perl" , "regex_pattern_internal" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "pod"
-          , Context
-              { cName = "pod"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\=(?:head[1-6]|over|back|item|for|begin|end|pod)\\s*.*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\=(?:head[1-6]|over|back|item|for|begin|end|pod)\\s*.*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\=cut.*$"
-                              , reCompiled = Just (compileRegex True "\\=cut.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "quote_word"
-          , Context
-              { cName = "quote_word"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '1'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "quote_word_brace"
-          , Context
-              { cName = "quote_word_brace"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '}'
-                      , rAttribute = NormalTok
-                      , 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 = [ Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "quote_word_bracket"
-          , Context
-              { cName = "quote_word_bracket"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ']'
-                      , rAttribute = NormalTok
-                      , 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 = [ Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "quote_word_paren"
-          , Context
-              { cName = "quote_word_paren"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ')'
-                      , rAttribute = NormalTok
-                      , 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 = [ Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "regex_pattern_internal"
-          , Context
-              { cName = "regex_pattern_internal"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Perl" , "regex_pattern_internal_rules_1" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Perl" , "regex_pattern_internal_rules_2" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "regex_pattern_internal_ip"
-          , Context
-              { cName = "regex_pattern_internal_ip"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Perl" , "regex_pattern_internal_rules_1" )
-                      , rAttribute = OtherTok
-                      , 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 = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "find_variable_unsafe" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Perl" , "regex_pattern_internal_rules_2" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "regex_pattern_internal_rules_1"
-          , Context
-              { cName = "regex_pattern_internal_rules_1"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#.*$"
-                              , reCompiled = Just (compileRegex True "#.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[anDdSsWw]"
-                              , reCompiled = Just (compileRegex True "\\\\[anDdSsWw]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[ABbEGLlNUuQdQZz]"
-                              , reCompiled = Just (compileRegex True "\\\\[ABbEGLlNUuQdQZz]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[\\d]+"
-                              , reCompiled = Just (compileRegex True "\\\\[\\d]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\."
-                              , reCompiled = Just (compileRegex True "\\\\.")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "regex_pattern_internal_rules_2"
-          , Context
-              { cName = "regex_pattern_internal_rules_2"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '(' '?'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "pat_ext" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "pat_char_class" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[()?^*+|]"
-                              , reCompiled = Just (compileRegex True "[()?^*+|]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\{[\\d, ]+\\}"
-                              , reCompiled = Just (compileRegex True "\\{[\\d, ]+\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s{3,}#.*$"
-                              , reCompiled = Just (compileRegex True "\\s{3,}#.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "slash_safe_escape"
-          , Context
-              { cName = "slash_safe_escape"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\}\\s*/{1,2}"
-                              , reCompiled = Just (compileRegex True "\\s*\\}\\s*/{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*[)\\]]?\\s*/{1,2}"
-                              , reCompiled = Just (compileRegex True "\\s*[)\\]]?\\s*/{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "BEGIN"
-                               , "END"
-                               , "__DATA__"
-                               , "__END__"
-                               , "__FILE__"
-                               , "__LINE__"
-                               , "__PACKAGE__"
-                               , "break"
-                               , "continue"
-                               , "default"
-                               , "do"
-                               , "each"
-                               , "else"
-                               , "elsif"
-                               , "for"
-                               , "foreach"
-                               , "given"
-                               , "if"
-                               , "last"
-                               , "local"
-                               , "my"
-                               , "next"
-                               , "our"
-                               , "package"
-                               , "return"
-                               , "state"
-                               , "sub"
-                               , "unless"
-                               , "until"
-                               , "when"
-                               , "while"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "string"
-          , Context
-              { cName = "string"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = CharTok
-                      , 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 = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "string_2"
-          , Context
-              { cName = "string_2"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ')'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '(' ')'
-                      , rAttribute = StringTok
-                      , 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 = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "string_3"
-          , Context
-              { cName = "string_3"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '}'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '{' '}'
-                      , rAttribute = StringTok
-                      , 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 = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "string_4"
-          , Context
-              { cName = "string_4"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ']'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '[' ']'
-                      , rAttribute = StringTok
-                      , 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 = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "string_5"
-          , Context
-              { cName = "string_5"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '<'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '>'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '<' '>'
-                      , rAttribute = StringTok
-                      , 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 = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "string_6"
-          , Context
-              { cName = "string_6"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '1'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "sub_arg_definition"
-          , Context
-              { cName = "sub_arg_definition"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = AnyChar "*$@%"
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "&\\[];"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "slash_safe_escape" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop , Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "sub_name_def"
-          , Context
-              { cName = "sub_name_def"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\w+"
-                              , reCompiled = Just (compileRegex True "\\w+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , 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 = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "find_variable" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\("
-                              , reCompiled = Just (compileRegex True "\\s*\\(")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "sub_arg_definition" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars ':' ':'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "subst_bracket_pattern"
-          , Context
-              { cName = "subst_bracket_pattern"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s+#.*$"
-                              , reCompiled = Just (compileRegex True "\\s+#.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Perl" , "regex_pattern_internal_ip" )
-                      , rAttribute = OtherTok
-                      , 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 ( "Perl" , "subst_bracket_replace" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "subst_bracket_replace"
-          , Context
-              { cName = "subst_bracket_replace"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Perl" , "ipstring_internal" )
-                      , rAttribute = StringTok
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\][cegimosx]*"
-                              , reCompiled = Just (compileRegex True "\\][cegimosx]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "subst_curlybrace_middle"
-          , Context
-              { cName = "subst_curlybrace_middle"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#.*$"
-                              , reCompiled = Just (compileRegex True "#.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , 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 ( "Perl" , "subst_curlybrace_replace" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "subst_curlybrace_pattern"
-          , Context
-              { cName = "subst_curlybrace_pattern"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s+#.*$"
-                              , reCompiled = Just (compileRegex True "\\s+#.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Perl" , "regex_pattern_internal_ip" )
-                      , rAttribute = OtherTok
-                      , 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 ( "Perl" , "subst_curlybrace_middle" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "subst_curlybrace_replace"
-          , Context
-              { cName = "subst_curlybrace_replace"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Perl" , "ipstring_internal" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Perl" , "subst_curlybrace_replace_recursive" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\}[cegimosx]*"
-                              , reCompiled = Just (compileRegex True "\\}[cegimosx]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "subst_curlybrace_replace_recursive"
-          , Context
-              { cName = "subst_curlybrace_replace_recursive"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Perl" , "subst_curlybrace_replace_recursive" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Perl" , "ipstring_internal" )
-                      , 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
-              }
-          )
-        , ( "subst_paren_pattern"
-          , Context
-              { cName = "subst_paren_pattern"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s+#.*$"
-                              , reCompiled = Just (compileRegex True "\\s+#.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Perl" , "regex_pattern_internal_ip" )
-                      , rAttribute = OtherTok
-                      , 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 ( "Perl" , "subst_paren_replace" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "subst_paren_replace"
-          , Context
-              { cName = "subst_paren_replace"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Perl" , "ipstring_internal" )
-                      , rAttribute = StringTok
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\)[cegimosx]*"
-                              , reCompiled = Just (compileRegex True "\\)[cegimosx]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "subst_slash_pattern"
-          , Context
-              { cName = "subst_slash_pattern"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$(?=%1)"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(%1)"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Perl" , "subst_slash_replace" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Perl" , "regex_pattern_internal_ip" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "subst_slash_replace"
-          , Context
-              { cName = "subst_slash_replace"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1[cegimosx]*"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Perl" , "ipstring_internal" )
-                      , 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 = True
-              }
-          )
-        , ( "subst_sq_pattern"
-          , Context
-              { cName = "subst_sq_pattern"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s+#.*$"
-                              , reCompiled = Just (compileRegex True "\\s+#.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Perl" , "regex_pattern_internal" )
-                      , rAttribute = OtherTok
-                      , 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 ( "Perl" , "subst_sq_replace" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "subst_sq_replace"
-          , Context
-              { cName = "subst_sq_replace"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'[cegimosx]*"
-                              , reCompiled = Just (compileRegex True "'[cegimosx]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "tr"
-          , Context
-              { cName = "tr"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\([^)]*\\)\\s*\\(?:[^)]*\\)"
-                              , reCompiled =
-                                  Just (compileRegex True "\\([^)]*\\)\\s*\\(?:[^)]*\\)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\{[^}]*\\}\\s*\\{[^}]*\\}"
-                              , reCompiled =
-                                  Just (compileRegex True "\\{[^}]*\\}\\s*\\{[^}]*\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[[^]]*\\]\\s*\\[[^\\]]*\\]"
-                              , reCompiled =
-                                  Just (compileRegex True "\\[[^]]*\\]\\s*\\[[^\\]]*\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([^a-zA-Z0-9_\\s[\\]{}()]).*\\1.*\\1"
-                              , reCompiled =
-                                  Just (compileRegex True "([^a-zA-Z0-9_\\s[\\]{}()]).*\\1.*\\1")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "var_detect"
-          , Context
-              { cName = "var_detect"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Perl" , "var_detect_rules" )
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Perl" , "slash_safe_escape" )
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop , Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "var_detect_rules"
-          , Context
-              { cName = "var_detect_rules"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\w_]+"
-                              , reCompiled = Just (compileRegex True "[\\w_]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars ':' ':'
-                      , rAttribute = NormalTok
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '-' '>'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '+' '+'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '-' '-'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "var_detect_unsafe"
-          , Context
-              { cName = "var_detect_unsafe"
-              , cSyntax = "Perl"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Perl" , "var_detect_rules" )
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop , Pop ]
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Anders Lund (anders@alweb.dk)"
-  , sVersion = "3"
-  , sLicense = "LGPLv2"
-  , sExtensions = [ "*.pl" , "*.PL" , "*.pm" ]
-  , sStartingContext = "normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Perl\", sFilename = \"perl.xml\", sShortname = \"Perl\", sContexts = fromList [(\"Backticked\",Context {cName = \"Backticked\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = IncludeRules (\"Perl\",\"ipstring_internal\"), rAttribute = StringTok, 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 = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"comment\",Context {cName = \"comment\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},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 = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"data_handle\",Context {cName = \"data_handle\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\=(?:head[1-6]|over|back|item|for|begin|end|pod)\\\\s+.*\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Perl\",\"pod\")]},Rule {rMatcher = StringDetect \"__END__\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"normal\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"end_handle\",Context {cName = \"end_handle\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\=(?:head[1-6]|over|back|item|for|begin|end|pod)\\\\s*.*\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Perl\",\"pod\")]},Rule {rMatcher = StringDetect \"__DATA__\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"data_handle\")]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_here_document\",Context {cName = \"find_here_document\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(\\\\w+)\\\\s*;?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"here_document\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\"([^\\\"]+)\\\"\\\\s*;?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"here_document\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*`([^`]+)`\\\\s*;?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"here_document\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*'([^']+)'\\\\s*;?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"here_document_dumb\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_pattern\",Context {cName = \"find_pattern\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+#.*\", reCaseSensitive = True}), rAttribute = CommentTok, 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 (\"Perl\",\"pattern_brace\")]},Rule {rMatcher = DetectChar '(', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"pattern_paren\")]},Rule {rMatcher = DetectChar '[', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"pattern_bracket\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"pattern_sq\")]},Rule {rMatcher = RegExpr (RE {reString = \"([^\\\\w\\\\s])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"pattern\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_qqx\",Context {cName = \"find_qqx\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"ip_string_2\")]},Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"ip_string_3\")]},Rule {rMatcher = DetectChar '[', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"ip_string_4\")]},Rule {rMatcher = DetectChar '<', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"ip_string_5\")]},Rule {rMatcher = RegExpr (RE {reString = \"([^a-zA-Z0-9_\\\\s[\\\\]{}()])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"ip_string_6\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+#.*\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_quoted\",Context {cName = \"find_quoted\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"x\\\\s*(')\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"string_6\")]},Rule {rMatcher = AnyChar \"qx\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"find_qqx\")]},Rule {rMatcher = DetectChar 'w', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"find_qw\")]},Rule {rMatcher = DetectChar '(', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"string_2\")]},Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"string_3\")]},Rule {rMatcher = DetectChar '[', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"string_4\")]},Rule {rMatcher = DetectChar '<', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"string_5\")]},Rule {rMatcher = RegExpr (RE {reString = \"([^a-zA-Z0-9_\\\\s[\\\\]{}()])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"string_6\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+#.*\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_qw\",Context {cName = \"find_qw\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"quote_word_paren\")]},Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"quote_word_brace\")]},Rule {rMatcher = DetectChar '[', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"quote_word_bracket\")]},Rule {rMatcher = RegExpr (RE {reString = \"([^a-zA-Z0-9_\\\\s[\\\\]{}()])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"quote_word\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+#.*\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_subst\",Context {cName = \"find_subst\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+#.*\", reCaseSensitive = True}), rAttribute = CommentTok, 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 (\"Perl\",\"subst_curlybrace_pattern\")]},Rule {rMatcher = DetectChar '(', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"subst_paren_pattern\")]},Rule {rMatcher = DetectChar '[', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"subst_bracket_pattern\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"subst_sq_pattern\")]},Rule {rMatcher = RegExpr (RE {reString = \"([^\\\\w\\\\s[\\\\]{}()])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"subst_slash_pattern\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_variable\",Context {cName = \"find_variable\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[0-9]+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"var_detect\")]},Rule {rMatcher = RegExpr (RE {reString = \"[@\\\\$](?:[\\\\+\\\\-_]\\\\B|ARGV\\\\b|INC\\\\b)\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"var_detect\")]},Rule {rMatcher = RegExpr (RE {reString = \"[%\\\\$](?:INC\\\\b|ENV\\\\b|SIG\\\\b)\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"var_detect\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\$[\\\\$\\\\w_]\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"var_detect\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[#_][\\\\w_]\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"var_detect\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$+::\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"var_detect\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[^a-zA-Z0-9\\\\s{][A-Z]?\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"var_detect\")]},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\$@%]\\\\{[\\\\w_]+\\\\}\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"var_detect\")]},Rule {rMatcher = AnyChar \"$@%\", rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"var_detect\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\*[a-zA-Z_]+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"var_detect\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\*[^a-zA-Z0-9\\\\s{][A-Z]?\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"$@%*\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"find_variable_unsafe\",Context {cName = \"find_variable_unsafe\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[0-9]+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"var_detect_unsafe\")]},Rule {rMatcher = RegExpr (RE {reString = \"[@\\\\$](?:[\\\\+\\\\-_]\\\\B|ARGV\\\\b|INC\\\\b)\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"var_detect_unsafe\")]},Rule {rMatcher = RegExpr (RE {reString = \"[%\\\\$](?:INC\\\\b|ENV\\\\b|SIG\\\\b)\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"var_detect_unsafe\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\$[\\\\$\\\\w_]\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"var_detect_unsafe\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[#_][\\\\w_]\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"var_detect_unsafe\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$+::\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"var_detect_unsafe\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[^a-zA-Z0-9\\\\s{][A-Z]?\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\$@%]\\\\{[\\\\w_]+\\\\}\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"var_detect_unsafe\")]},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\$@%]\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"var_detect_unsafe\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\*\\\\w+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"var_detect_unsafe\")]},Rule {rMatcher = AnyChar \"$@%*\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"here_document\",Context {cName = \"here_document\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%1\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\=\\\\s*<<\\\\s*[\\\"']?([A-Z0-9_\\\\-]+)[\\\"']?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"here_document\")]},Rule {rMatcher = IncludeRules (\"Perl\",\"ipstring_internal\"), 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 = True}),(\"here_document_dumb\",Context {cName = \"here_document_dumb\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%1\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectIdentifier, 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 = True}),(\"ip_string\",Context {cName = \"ip_string\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Perl\",\"ipstring_internal\"), 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}),(\"ip_string_2\",Context {cName = \"ip_string_2\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RangeDetect '(' ')', rAttribute = StringTok, 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 = [Pop,Pop,Pop]},Rule {rMatcher = IncludeRules (\"Perl\",\"ipstring_internal\"), 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}),(\"ip_string_3\",Context {cName = \"ip_string_3\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RangeDetect '{' '}', rAttribute = StringTok, 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 = [Pop,Pop,Pop]},Rule {rMatcher = IncludeRules (\"Perl\",\"ipstring_internal\"), 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}),(\"ip_string_4\",Context {cName = \"ip_string_4\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RangeDetect '[' ']', rAttribute = StringTok, 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 = [Pop,Pop,Pop]},Rule {rMatcher = IncludeRules (\"Perl\",\"ipstring_internal\"), 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}),(\"ip_string_5\",Context {cName = \"ip_string_5\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RangeDetect '<' '>', rAttribute = StringTok, 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 = [Pop,Pop,Pop]},Rule {rMatcher = IncludeRules (\"Perl\",\"ipstring_internal\"), 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}),(\"ip_string_6\",Context {cName = \"ip_string_6\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\%1\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '1', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = IncludeRules (\"Perl\",\"ipstring_internal\"), 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 = True}),(\"ipstring_internal\",Context {cName = \"ipstring_internal\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[UuLlEtnaefr]\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(?:[\\\\$@]\\\\S|%[\\\\w{])\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"find_variable_unsafe\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"normal\",Context {cName = \"normal\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"#!\\\\/.*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = StringDetect \"__DATA__\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"data_handle\")]},Rule {rMatcher = StringDetect \"__END__\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bsub\\\\s+\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"sub_name_def\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"BEGIN\",\"END\",\"__DATA__\",\"__END__\",\"__FILE__\",\"__LINE__\",\"__PACKAGE__\",\"break\",\"continue\",\"default\",\"do\",\"each\",\"else\",\"elsif\",\"for\",\"foreach\",\"given\",\"if\",\"last\",\"local\",\"my\",\"next\",\"our\",\"package\",\"return\",\"state\",\"sub\",\"unless\",\"until\",\"when\",\"while\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"!=\",\"%\",\"&\",\"&&\",\"&&=\",\"&=\",\"*\",\"**=\",\"*=\",\"+\",\"+=\",\",\",\"-\",\"-=\",\"->\",\".\",\"//\",\"//=\",\"/=\",\"::\",\";\",\"<\",\"<<\",\"=\",\"=>\",\">\",\">>\",\"?=\",\"\\\\\",\"^\",\"and\",\"cmp\",\"eq\",\"ge\",\"gt\",\"le\",\"lt\",\"ne\",\"not\",\"or\",\"|\",\"|=\",\"||\",\"||=\",\"~=\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"abs\",\"accept\",\"alarm\",\"atan2\",\"bind\",\"binmode\",\"bless\",\"caller\",\"chdir\",\"chmod\",\"chomp\",\"chop\",\"chown\",\"chr\",\"chroot\",\"close\",\"closedir\",\"connect\",\"cos\",\"crypt\",\"dbmclose\",\"dbmopen\",\"defined\",\"delete\",\"die\",\"dump\",\"endgrent\",\"endhostent\",\"endnetent\",\"endprotoent\",\"endpwent\",\"endservent\",\"eof\",\"eval\",\"exec\",\"exists\",\"exit\",\"exp\",\"fcntl\",\"fileno\",\"flock\",\"fork\",\"format\",\"formline\",\"getc\",\"getgrent\",\"getgrgid\",\"getgrnam\",\"gethostbyaddr\",\"gethostbyname\",\"gethostent\",\"getlogin\",\"getnetbyaddr\",\"getnetbyname\",\"getnetent\",\"getpeername\",\"getpgrp\",\"getppid\",\"getpriority\",\"getprotobyname\",\"getprotobynumber\",\"getprotoent\",\"getpwent\",\"getpwnam\",\"getpwuid\",\"getservbyname\",\"getservbyport\",\"getservent\",\"getsockname\",\"getsockopt\",\"glob\",\"gmtime\",\"goto\",\"grep\",\"hex\",\"import\",\"index\",\"int\",\"ioctl\",\"join\",\"keys\",\"kill\",\"last\",\"lc\",\"lcfirst\",\"length\",\"link\",\"listen\",\"localtime\",\"lock\",\"log\",\"lstat\",\"map\",\"mkdir\",\"msgctl\",\"msgget\",\"msgrcv\",\"msgsnd\",\"no\",\"oct\",\"open\",\"opendir\",\"ord\",\"pack\",\"package\",\"pipe\",\"pop\",\"pos\",\"print\",\"printf\",\"prototype\",\"push\",\"quotemeta\",\"rand\",\"read\",\"readdir\",\"readline\",\"readlink\",\"recv\",\"redo\",\"ref\",\"rename\",\"require\",\"reset\",\"return\",\"reverse\",\"rewinddir\",\"rindex\",\"rmdir\",\"scalar\",\"seek\",\"seekdir\",\"select\",\"semctl\",\"semget\",\"semop\",\"send\",\"setgrent\",\"sethostent\",\"setnetent\",\"setpgrp\",\"setpriority\",\"setprotoent\",\"setpwent\",\"setservent\",\"setsockopt\",\"shift\",\"shmctl\",\"shmget\",\"shmread\",\"shmwrite\",\"shutdown\",\"sin\",\"sleep\",\"socket\",\"socketpair\",\"sort\",\"splice\",\"split\",\"sprintf\",\"sqrt\",\"srand\",\"stat\",\"study\",\"sub\",\"substr\",\"symlink\",\"syscall\",\"sysread\",\"sysseek\",\"system\",\"syswrite\",\"tell\",\"telldir\",\"tie\",\"time\",\"times\",\"truncate\",\"uc\",\"ucfirst\",\"umask\",\"undef\",\"unlink\",\"unpack\",\"unshift\",\"untie\",\"use\",\"utime\",\"values\",\"vec\",\"wait\",\"waitpid\",\"wantarray\",\"warn\",\"write\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"bytes\",\"constant\",\"diagnostics\",\"english\",\"filetest\",\"integer\",\"less\",\"locale\",\"open\",\"sigtrap\",\"strict\",\"subs\",\"utf8\",\"vars\",\"warnings\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\=\\\\w+(\\\\s|$)\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Perl\",\"pod\")]},Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b\\\\-?0[xX]([0-9a-fA-F]|_[0-9a-fA-F])+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"slash_safe_escape\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b\\\\-?0[bB]([01]|_[01])+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"slash_safe_escape\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b\\\\-?0[1-7]([0-7]|_[0-7])*\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"slash_safe_escape\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b\\\\-?[0-9]([0-9]|_[0-9])*\\\\.[0-9]([0-9]|_[0-9])*([eE]\\\\-?[1-9]([0-9]|_[0-9])*(\\\\.[0-9]*)?)?\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"slash_safe_escape\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b\\\\-?[1-9]([0-9]|_[0-9])*\\\\b\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"slash_safe_escape\")]},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"slash_safe_escape\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\([\\\"'])[^\\\\1]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '&' '\\'', rAttribute = NormalTok, 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 (\"Perl\",\"ip_string\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"string\")]},Rule {rMatcher = DetectChar '`', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"Backticked\")]},Rule {rMatcher = RegExpr (RE {reString = \"(?:[$@]\\\\S|%[\\\\w{]|\\\\*[^\\\\d\\\\*{\\\\$@%=(])\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"find_variable\")]},Rule {rMatcher = RegExpr (RE {reString = \"<[A-Z0-9_]+>\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*<<(?=\\\\w+|\\\\s*[\\\"'])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"find_here_document\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\}\\\\s*/{1,2}\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*[)\\\\]]\\\\s*/{1,2}\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\w+::\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"sub_name_def\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\w+[=]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bq(?=[qwx]?\\\\s*[^\\\\w\\\\s])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"find_quoted\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bs(?=\\\\s*[^\\\\w\\\\s\\\\]})])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"find_subst\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(?:tr|y)\\\\s*(?=[^\\\\w\\\\s\\\\]})])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"tr\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(?:m|qr)(?=\\\\s*[^\\\\w\\\\s\\\\]})])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"find_pattern\")]},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\w_]+\\\\s*/\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[<>\\\"':]/\", reCaseSensitive = True}), rAttribute = NormalTok, 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 (\"Perl\",\"pattern_slash\")]},Rule {rMatcher = RegExpr (RE {reString = \"-[rwxoRWXOeszfdlpSbctugkTBMAC]\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', 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}),(\"package_qualified_blank\",Context {cName = \"package_qualified_blank\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[\\\\w_]+\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"pat_char_class\",Context {cName = \"pat_char_class\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = DetectChar '^', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ']', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[:\\\\^?[a-z]+:\\\\]\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ']', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = BaseNTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"pat_ext\",Context {cName = \"pat_ext\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\#[^)]*\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[:=!><]+\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar ')', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CharTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"pattern\",Context {cName = \"pattern\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\$(?=%1)\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%1[cgimosx]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Perl\",\"regex_pattern_internal_ip\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$(?=\\\\\\\\%1)\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"pattern_brace\",Context {cName = \"pattern_brace\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\}[cgimosx]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Perl\",\"regex_pattern_internal_ip\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"pattern_bracket\",Context {cName = \"pattern_bracket\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\][cgimosx]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Perl\",\"regex_pattern_internal_ip\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"pattern_paren\",Context {cName = \"pattern_paren\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\)[cgimosx]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Perl\",\"regex_pattern_internal_ip\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"pattern_slash\",Context {cName = \"pattern_slash\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\$(?=/)\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Perl\",\"regex_pattern_internal_ip\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"/[cgimosx]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"pattern_sq\",Context {cName = \"pattern_sq\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"'[cgimosx]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Perl\",\"regex_pattern_internal\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"pod\",Context {cName = \"pod\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = DetectSpaces, 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 = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\=(?:head[1-6]|over|back|item|for|begin|end|pod)\\\\s*.*\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\=cut.*$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"quote_word\",Context {cName = \"quote_word\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\%1\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '1', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"quote_word_brace\",Context {cName = \"quote_word_brace\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '}', rAttribute = NormalTok, 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 = [Pop,Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"quote_word_bracket\",Context {cName = \"quote_word_bracket\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ']', rAttribute = NormalTok, 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 = [Pop,Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"quote_word_paren\",Context {cName = \"quote_word_paren\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ')', rAttribute = NormalTok, 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 = [Pop,Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"regex_pattern_internal\",Context {cName = \"regex_pattern_internal\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = IncludeRules (\"Perl\",\"regex_pattern_internal_rules_1\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Perl\",\"regex_pattern_internal_rules_2\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"regex_pattern_internal_ip\",Context {cName = \"regex_pattern_internal_ip\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = IncludeRules (\"Perl\",\"regex_pattern_internal_rules_1\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[$@][^]\\\\s{}()|>']\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"find_variable_unsafe\")]},Rule {rMatcher = IncludeRules (\"Perl\",\"regex_pattern_internal_rules_2\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"regex_pattern_internal_rules_1\",Context {cName = \"regex_pattern_internal_rules_1\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"#.*$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[anDdSsWw]\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[ABbEGLlNUuQdQZz]\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[\\\\d]+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"regex_pattern_internal_rules_2\",Context {cName = \"regex_pattern_internal_rules_2\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = Detect2Chars '(' '?', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"pat_ext\")]},Rule {rMatcher = DetectChar '[', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"pat_char_class\")]},Rule {rMatcher = RegExpr (RE {reString = \"[()?^*+|]\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\{[\\\\d, ]+\\\\}\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '$', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s{3,}#.*$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"slash_safe_escape\",Context {cName = \"slash_safe_escape\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\}\\\\s*/{1,2}\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*[)\\\\]]?\\\\s*/{1,2}\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"BEGIN\",\"END\",\"__DATA__\",\"__END__\",\"__FILE__\",\"__LINE__\",\"__PACKAGE__\",\"break\",\"continue\",\"default\",\"do\",\"each\",\"else\",\"elsif\",\"for\",\"foreach\",\"given\",\"if\",\"last\",\"local\",\"my\",\"next\",\"our\",\"package\",\"return\",\"state\",\"sub\",\"unless\",\"until\",\"when\",\"while\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"string\",Context {cName = \"string\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = CharTok, 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 = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"string_2\",Context {cName = \"string_2\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ')', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RangeDetect '(' ')', rAttribute = StringTok, 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 = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"string_3\",Context {cName = \"string_3\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '}', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RangeDetect '{' '}', rAttribute = StringTok, 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 = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"string_4\",Context {cName = \"string_4\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ']', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RangeDetect '[' ']', rAttribute = StringTok, 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 = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"string_5\",Context {cName = \"string_5\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '<', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '>', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RangeDetect '<' '>', rAttribute = StringTok, 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 = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"string_6\",Context {cName = \"string_6\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\%1\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '1', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"sub_arg_definition\",Context {cName = \"sub_arg_definition\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = AnyChar \"*$@%\", rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"&\\\\[];\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"slash_safe_escape\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop,Pop], cDynamic = False}),(\"sub_name_def\",Context {cName = \"sub_name_def\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\w+\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\S\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"find_variable\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\(\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"sub_arg_definition\")]},Rule {rMatcher = Detect2Chars ':' ':', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"subst_bracket_pattern\",Context {cName = \"subst_bracket_pattern\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+#.*$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Perl\",\"regex_pattern_internal_ip\"), rAttribute = OtherTok, 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 (\"Perl\",\"subst_bracket_replace\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"subst_bracket_replace\",Context {cName = \"subst_bracket_replace\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = IncludeRules (\"Perl\",\"ipstring_internal\"), rAttribute = StringTok, 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 = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\][cegimosx]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"subst_curlybrace_middle\",Context {cName = \"subst_curlybrace_middle\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"#.*$\", reCaseSensitive = True}), rAttribute = CommentTok, 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 (\"Perl\",\"subst_curlybrace_replace\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"subst_curlybrace_pattern\",Context {cName = \"subst_curlybrace_pattern\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+#.*$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Perl\",\"regex_pattern_internal_ip\"), rAttribute = OtherTok, 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 (\"Perl\",\"subst_curlybrace_middle\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"subst_curlybrace_replace\",Context {cName = \"subst_curlybrace_replace\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = IncludeRules (\"Perl\",\"ipstring_internal\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"subst_curlybrace_replace_recursive\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\}[cegimosx]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"subst_curlybrace_replace_recursive\",Context {cName = \"subst_curlybrace_replace_recursive\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"subst_curlybrace_replace_recursive\")]},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Perl\",\"ipstring_internal\"), 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}),(\"subst_paren_pattern\",Context {cName = \"subst_paren_pattern\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+#.*$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Perl\",\"regex_pattern_internal_ip\"), rAttribute = OtherTok, 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 (\"Perl\",\"subst_paren_replace\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"subst_paren_replace\",Context {cName = \"subst_paren_replace\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = IncludeRules (\"Perl\",\"ipstring_internal\"), rAttribute = StringTok, 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 = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\)[cegimosx]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"subst_slash_pattern\",Context {cName = \"subst_slash_pattern\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\$(?=%1)\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(%1)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Perl\",\"subst_slash_replace\")]},Rule {rMatcher = IncludeRules (\"Perl\",\"regex_pattern_internal_ip\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"subst_slash_replace\",Context {cName = \"subst_slash_replace\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1[cegimosx]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = IncludeRules (\"Perl\",\"ipstring_internal\"), 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 = True}),(\"subst_sq_pattern\",Context {cName = \"subst_sq_pattern\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+#.*$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Perl\",\"regex_pattern_internal\"), rAttribute = OtherTok, 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 (\"Perl\",\"subst_sq_replace\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"subst_sq_replace\",Context {cName = \"subst_sq_replace\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"'[cegimosx]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"tr\",Context {cName = \"tr\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\([^)]*\\\\)\\\\s*\\\\(?:[^)]*\\\\)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\{[^}]*\\\\}\\\\s*\\\\{[^}]*\\\\}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[[^]]*\\\\]\\\\s*\\\\[[^\\\\]]*\\\\]\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"([^a-zA-Z0-9_\\\\s[\\\\]{}()]).*\\\\1.*\\\\1\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"var_detect\",Context {cName = \"var_detect\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = IncludeRules (\"Perl\",\"var_detect_rules\"), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Perl\",\"slash_safe_escape\"), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop,Pop], cDynamic = False}),(\"var_detect_rules\",Context {cName = \"var_detect_rules\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[\\\\w_]+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars ':' ':', rAttribute = NormalTok, 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 = []},Rule {rMatcher = Detect2Chars '-' '>', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '+' '+', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '-' '-', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"var_detect_unsafe\",Context {cName = \"var_detect_unsafe\", cSyntax = \"Perl\", cRules = [Rule {rMatcher = IncludeRules (\"Perl\",\"var_detect_rules\"), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop,Pop], cDynamic = False})], sAuthor = \"Anders Lund (anders@alweb.dk)\", sVersion = \"3\", sLicense = \"LGPLv2\", sExtensions = [\"*.pl\",\"*.PL\",\"*.pm\"], sStartingContext = \"normal\"}"
diff --git a/src/Skylighting/Syntax/Php.hs b/src/Skylighting/Syntax/Php.hs
--- a/src/Skylighting/Syntax/Php.hs
+++ b/src/Skylighting/Syntax/Php.hs
@@ -2,7387 +2,6 @@
 module Skylighting.Syntax.Php (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "PHP/PHP"
-  , sFilename = "php.xml"
-  , sShortname = "Php"
-  , sContexts =
-      fromList
-        [ ( "backquotestring"
-          , Context
-              { cName = "backquotestring"
-              , cSyntax = "PHP/PHP"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "PHP/PHP" , "doublebackquotestringcommon" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '`'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "case"
-          , Context
-              { cName = "case"
-              , cSyntax = "PHP/PHP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "PHP/PHP" , "ternary" )
-                      , 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
-              }
-          )
-        , ( "commonheredoc"
-          , Context
-              { cName = "commonheredoc"
-              , cSyntax = "PHP/PHP"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\$[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*(\\[[a-zA-Z0-9_]*\\])*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\$[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*(\\[[a-zA-Z0-9_]*\\])*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\$\\{[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*(\\[[a-zA-Z0-9_]*\\])*\\}"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\$\\{[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*(\\[[a-zA-Z0-9_]*\\])*\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\{\\$[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*(\\[([0-9]*|\"[a-zA-Z_]*\")|'[a-zA-Z_]*'|\\])*(->[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*(\\[[a-zA-Z0-9_]*\\])*(\\[([0-9]*|\"[a-zA-Z_]*\")|'[a-zA-Z_]*'|\\])*)*\\}"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\{\\$[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*(\\[([0-9]*|\"[a-zA-Z_]*\")|'[a-zA-Z_]*'|\\])*(->[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*(\\[[a-zA-Z0-9_]*\\])*(\\[([0-9]*|\"[a-zA-Z_]*\")|'[a-zA-Z_]*'|\\])*)*\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "commonnowdoc"
-          , Context
-              { cName = "commonnowdoc"
-              , cSyntax = "PHP/PHP"
-              , cRules = []
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "cssheredoc"
-          , Context
-              { cName = "cssheredoc"
-              , cSyntax = "PHP/PHP"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1;?$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "PHP/PHP" , "commonheredoc" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "CSS" , "" )
-                      , 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 = True
-              }
-          )
-        , ( "cssnowdoc"
-          , Context
-              { cName = "cssnowdoc"
-              , cSyntax = "PHP/PHP"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1;?$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "PHP/PHP" , "commonnowdoc" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "CSS" , "" )
-                      , 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 = True
-              }
-          )
-        , ( "doublebackquotestringcommon"
-          , Context
-              { cName = "doublebackquotestringcommon"
-              , cSyntax = "PHP/PHP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' 'n'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' 'r'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' 't'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' 'v'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' 'f'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '$'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[0-7]{1,3}"
-                              , reCompiled = Just (compileRegex True "\\\\[0-7]{1,3}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\x[0-9A-Fa-f]{1,2}"
-                              , reCompiled = Just (compileRegex True "\\\\x[0-9A-Fa-f]{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\$[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*(\\[[a-zA-Z0-9_]*\\])*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\$[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*(\\[[a-zA-Z0-9_]*\\])*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\$\\{[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*(\\[[a-zA-Z0-9_]*\\])*\\}"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\$\\{[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*(\\[[a-zA-Z0-9_]*\\])*\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\{\\$[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*(\\[([0-9]*|\"[^\"]*\"|\\$[a-zA-Z]*)|'[^']*'|\\])*(->[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*(\\[[a-zA-Z0-9_]*\\])*(\\[([0-9]*|\"[a-zA-Z_]*\")|'[a-zA-Z_]*'|\\])*)*\\}"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\{\\$[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*(\\[([0-9]*|\"[^\"]*\"|\\$[a-zA-Z]*)|'[^']*'|\\])*(->[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*(\\[[a-zA-Z0-9_]*\\])*(\\[([0-9]*|\"[a-zA-Z_]*\")|'[a-zA-Z_]*'|\\])*)*\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "doublequotestring"
-          , Context
-              { cName = "doublequotestring"
-              , cSyntax = "PHP/PHP"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "PHP/PHP" , "doublebackquotestringcommon" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '"'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "heredoc"
-          , Context
-              { cName = "heredoc"
-              , cSyntax = "PHP/PHP"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1;?$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "PHP/PHP" , "commonheredoc" )
-                      , 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 = True
-              }
-          )
-        , ( "htmlheredoc"
-          , Context
-              { cName = "htmlheredoc"
-              , cSyntax = "PHP/PHP"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1;?$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "PHP/PHP" , "commonheredoc" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "HTML" , "" )
-                      , 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 = True
-              }
-          )
-        , ( "htmlnowdoc"
-          , Context
-              { cName = "htmlnowdoc"
-              , cSyntax = "PHP/PHP"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1;?$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "PHP/PHP" , "commonnowdoc" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "HTML" , "" )
-                      , 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 = True
-              }
-          )
-        , ( "javascriptheredoc"
-          , Context
-              { cName = "javascriptheredoc"
-              , cSyntax = "PHP/PHP"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1;?$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "PHP/PHP" , "commonheredoc" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "JavaScript" , "Normal" )
-                      , 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 = True
-              }
-          )
-        , ( "javascriptnowdoc"
-          , Context
-              { cName = "javascriptnowdoc"
-              , cSyntax = "PHP/PHP"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1;?$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "PHP/PHP" , "commonnowdoc" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "JavaScript" , "Normal" )
-                      , 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 = True
-              }
-          )
-        , ( "mysqlheredoc"
-          , Context
-              { cName = "mysqlheredoc"
-              , cSyntax = "PHP/PHP"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1;?$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "PHP/PHP" , "commonheredoc" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "SQL (MySQL)" , "" )
-                      , 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 = True
-              }
-          )
-        , ( "mysqlnowdoc"
-          , Context
-              { cName = "mysqlnowdoc"
-              , cSyntax = "PHP/PHP"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1;?$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "PHP/PHP" , "commonnowdoc" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "SQL (MySQL)" , "" )
-                      , 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 = True
-              }
-          )
-        , ( "nowdoc"
-          , Context
-              { cName = "nowdoc"
-              , cSyntax = "PHP/PHP"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1;?$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "PHP/PHP" , "commonnowdoc" )
-                      , 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 = True
-              }
-          )
-        , ( "onelinecomment"
-          , Context
-              { cName = "onelinecomment"
-              , cSyntax = "PHP/PHP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "?>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , 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 = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "phpsource"
-          , Context
-              { cName = "phpsource"
-              , cSyntax = "PHP/PHP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "?>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '?'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PHP/PHP" , "ternary" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(case|default)(\\s|:|$)"
-                              , reCompiled = Just (compileRegex True "(case|default)(\\s|:|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PHP/PHP" , "case" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars ':' ':'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ':'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "endif|endwhile|endfor|endforeach|endswitch"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "endif|endwhile|endfor|endforeach|endswitch")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PHP/PHP" , "onelinecomment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Doxygen" , "" )
-                      , rAttribute = NormalTok
-                      , 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 ( "PHP/PHP" , "onelinecomment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PHP/PHP" , "twolinecomment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?@[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "$DOCUMENT_ROOT"
-                               , "$HTTP_COOKIE_VARS"
-                               , "$HTTP_ENV_VARS"
-                               , "$HTTP_GET_VARS"
-                               , "$HTTP_POST_FILES"
-                               , "$HTTP_POST_VARS"
-                               , "$HTTP_SERVER_VARS"
-                               , "$HTTP_SESSION_VARS"
-                               , "call_user_method"
-                               , "call_user_method_array"
-                               , "ereg"
-                               , "ereg_replace"
-                               , "eregi"
-                               , "eregi_replace"
-                               , "mcrypt_ecb"
-                               , "mime_content_type"
-                               , "mysql_create_db"
-                               , "mysql_dbname"
-                               , "mysql_drop_db"
-                               , "mysql_fieldflags"
-                               , "mysql_fieldlen"
-                               , "mysql_fieldname"
-                               , "mysql_fieldtable"
-                               , "mysql_fieldtype"
-                               , "mysql_freeresult"
-                               , "mysql_list_fields"
-                               , "mysql_list_tables"
-                               , "mysql_listdbs"
-                               , "mysql_listfields"
-                               , "mysql_listtables"
-                               , "mysql_numfields"
-                               , "mysql_numrows"
-                               , "mysql_selectdb"
-                               , "mysql_tablename"
-                               , "mysqli_disable_reads_from_master"
-                               , "mysqli_disable_rpl_parse"
-                               , "mysqli_enable_reads_from_master"
-                               , "mysqli_enable_rpl_parse"
-                               , "mysqli_master_query"
-                               , "mysqli_rpl_parse_enabled"
-                               , "mysqli_rpl_probe"
-                               , "mysqli_rpl_query_type"
-                               , "mysqli_send_query"
-                               , "mysqli_slave_query"
-                               , "OCI_D_FILE"
-                               , "OCI_D_LOB"
-                               , "OCI_D_ROWID"
-                               , "OCI_DEFAULT"
-                               , "OCI_EXACT_FETCH"
-                               , "OCI_SYSDATE"
-                               , "ocifetchinto"
-                               , "ora_bind"
-                               , "ora_close"
-                               , "ora_columnname"
-                               , "ora_columnsize"
-                               , "ora_columntype"
-                               , "ora_commit"
-                               , "ora_commitoff"
-                               , "ora_commiton"
-                               , "ora_do"
-                               , "ora_error"
-                               , "ora_errorcode"
-                               , "ora_exec"
-                               , "ora_fetch"
-                               , "ora_fetch_into"
-                               , "ora_getcolumn"
-                               , "ora_logoff"
-                               , "ora_logon"
-                               , "ora_numcols"
-                               , "ora_numrows"
-                               , "ora_open"
-                               , "ora_parse"
-                               , "ora_plogon"
-                               , "ora_rollback"
-                               , "php_check_syntax"
-                               , "split"
-                               , "spliti"
-                               , "sql_regcase"
-                               , "var"
-                               ])
-                      , rAttribute = ErrorTok
-                      , 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
-                               [ "as"
-                               , "break"
-                               , "case"
-                               , "continue"
-                               , "declare"
-                               , "default"
-                               , "do"
-                               , "else"
-                               , "elseif"
-                               , "endfor"
-                               , "endforeach"
-                               , "endif"
-                               , "endswitch"
-                               , "endwhile"
-                               , "for"
-                               , "foreach"
-                               , "if"
-                               , "include"
-                               , "include_once"
-                               , "require"
-                               , "require_once"
-                               , "return"
-                               , "switch"
-                               , "while"
-                               ])
-                      , rAttribute = KeywordTok
-                      , 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
-                               [ "abstract"
-                               , "and"
-                               , "callable"
-                               , "catch"
-                               , "class"
-                               , "clone"
-                               , "const"
-                               , "exception"
-                               , "extends"
-                               , "final"
-                               , "finally"
-                               , "function"
-                               , "global"
-                               , "implements"
-                               , "instanceof"
-                               , "insteadof"
-                               , "interface"
-                               , "namespace"
-                               , "new"
-                               , "or"
-                               , "parent"
-                               , "private"
-                               , "protected"
-                               , "public"
-                               , "self"
-                               , "static"
-                               , "throw"
-                               , "trait"
-                               , "try"
-                               , "use"
-                               , "var"
-                               , "xor"
-                               , "yield"
-                               ])
-                      , rAttribute = KeywordTok
-                      , 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
-                               [ "__PHP_Incomplete_Class"
-                               , "APCIterator"
-                               , "AppendIterator"
-                               , "ArrayAccess"
-                               , "ArrayIterator"
-                               , "ArrayObject"
-                               , "BadFunctionCallException"
-                               , "BadMethodCallException"
-                               , "CachingIterator"
-                               , "Closure"
-                               , "Countable"
-                               , "DateInterval"
-                               , "DatePeriod"
-                               , "DateTime"
-                               , "DateTimeZone"
-                               , "Directory"
-                               , "DirectoryIterator"
-                               , "DomainException"
-                               , "DOMAttr"
-                               , "DOMCDATASection"
-                               , "DOMCharacterData"
-                               , "DOMComment"
-                               , "DOMConfiguration"
-                               , "DOMDocument"
-                               , "DOMDocumentFragment"
-                               , "DOMDocumentType"
-                               , "DOMDomError"
-                               , "DOMElement"
-                               , "DOMEntity"
-                               , "DOMEntityReference"
-                               , "DOMErrorHandler"
-                               , "DOMException"
-                               , "DOMImplementation"
-                               , "DOMImplementationList"
-                               , "DOMImplementationSource"
-                               , "DOMLocator"
-                               , "DOMNamedNodeMap"
-                               , "DOMNameList"
-                               , "DOMNameSpaceNode"
-                               , "DOMNode"
-                               , "DOMNodeList"
-                               , "DOMNotation"
-                               , "DOMProcessingInstruction"
-                               , "DOMStringExtend"
-                               , "DOMStringList"
-                               , "DOMText"
-                               , "DOMTypeinfo"
-                               , "DOMUserDataHandler"
-                               , "DOMXPath"
-                               , "EmptyIterator"
-                               , "ErrorException"
-                               , "Exception"
-                               , "FilesystemIterator"
-                               , "FilterIterator"
-                               , "GlobIterator"
-                               , "InfiniteIterator"
-                               , "InvalidArgumentException"
-                               , "Iterator"
-                               , "IteratorAggregate"
-                               , "IteratorIterator"
-                               , "LengthException"
-                               , "LibXMLError"
-                               , "LimitIterator"
-                               , "LogicException"
-                               , "MultipleIterator"
-                               , "MySQLi"
-                               , "MySQLi_Driver"
-                               , "MySQLi_Result"
-                               , "MySQLi_SQL_Exception"
-                               , "MySQLi_STMT"
-                               , "MySQLi_Warning"
-                               , "NoRewindIterator"
-                               , "OCI-Collection"
-                               , "OCI-LOB"
-                               , "OuterIterator"
-                               , "OutOfBoundsException"
-                               , "OutOfRangeException"
-                               , "OverflowException"
-                               , "ParentIterator"
-                               , "PDO"
-                               , "PDOException"
-                               , "PDORow"
-                               , "PDOStatement"
-                               , "Phar"
-                               , "PharData"
-                               , "PharException"
-                               , "PharFileInfo"
-                               , "php_user_filter"
-                               , "RangeException"
-                               , "RecursiveArrayIterator"
-                               , "RecursiveCachingIterator"
-                               , "RecursiveDirectoryIterator"
-                               , "RecursiveFilterIterator"
-                               , "RecursiveIterator"
-                               , "RecursiveIteratorIterator"
-                               , "RecursiveRegexIterator"
-                               , "RecursiveTreeIterator"
-                               , "Reflection"
-                               , "ReflectionClass"
-                               , "ReflectionException"
-                               , "ReflectionExtension"
-                               , "ReflectionFunction"
-                               , "ReflectionFunctionAbstract"
-                               , "ReflectionMethod"
-                               , "ReflectionObject"
-                               , "ReflectionParameter"
-                               , "ReflectionProperty"
-                               , "Reflector"
-                               , "RegexIterator"
-                               , "RuntimeException"
-                               , "SeekableIterator"
-                               , "Serializable"
-                               , "SimpleXMLElement"
-                               , "SimpleXMLIterator"
-                               , "SplDoublyLinkedList"
-                               , "SplFileInfo"
-                               , "SplFileObject"
-                               , "SplFixedArray"
-                               , "SplHeap"
-                               , "SplMaxHeap"
-                               , "SplMinHeap"
-                               , "SplObjectStorage"
-                               , "SplObserver"
-                               , "SplPriorityQueue"
-                               , "SplQueue"
-                               , "SplStack"
-                               , "SplSubject"
-                               , "SplTempFileObject"
-                               , "SQLite3"
-                               , "SQLite3Result"
-                               , "SQLite3Stmt"
-                               , "SQLiteDatabase"
-                               , "SQLiteException"
-                               , "SQLiteResult"
-                               , "SQLiteUnbuffered"
-                               , "stdClass"
-                               , "Traversable"
-                               , "UnderflowException"
-                               , "UnexpectedValueException"
-                               , "XMLReader"
-                               , "XMLWriter"
-                               , "XSLTProcessor"
-                               , "ZipArchive"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '@'
-                      , rAttribute = ErrorTok
-                      , 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
-                               [ "_"
-                               , "abs"
-                               , "acos"
-                               , "acosh"
-                               , "addcslashes"
-                               , "addslashes"
-                               , "apache_get_modules"
-                               , "apache_get_version"
-                               , "apache_getenv"
-                               , "apache_lookup_uri"
-                               , "apache_note"
-                               , "apache_request_headers"
-                               , "apache_response_headers"
-                               , "apache_setenv"
-                               , "array"
-                               , "array_change_key_case"
-                               , "array_chunk"
-                               , "array_combine"
-                               , "array_count_values"
-                               , "array_diff"
-                               , "array_diff_assoc"
-                               , "array_diff_key"
-                               , "array_diff_uassoc"
-                               , "array_diff_ukey"
-                               , "array_fill"
-                               , "array_fill_keys"
-                               , "array_filter"
-                               , "array_flip"
-                               , "array_intersect"
-                               , "array_intersect_assoc"
-                               , "array_intersect_key"
-                               , "array_intersect_uassoc"
-                               , "array_intersect_ukey"
-                               , "array_key_exists"
-                               , "array_keys"
-                               , "array_map"
-                               , "array_merge"
-                               , "array_merge_recursive"
-                               , "array_multisort"
-                               , "array_pad"
-                               , "array_pop"
-                               , "array_product"
-                               , "array_push"
-                               , "array_rand"
-                               , "array_reduce"
-                               , "array_replace"
-                               , "array_replace_recursive"
-                               , "array_reverse"
-                               , "array_search"
-                               , "array_shift"
-                               , "array_slice"
-                               , "array_splice"
-                               , "array_sum"
-                               , "array_udiff"
-                               , "array_udiff_assoc"
-                               , "array_udiff_uassoc"
-                               , "array_uintersect"
-                               , "array_uintersect_assoc"
-                               , "array_uintersect_uassoc"
-                               , "array_unique"
-                               , "array_unshift"
-                               , "array_values"
-                               , "array_walk"
-                               , "array_walk_recursive"
-                               , "arsort"
-                               , "ascii2ebcdic"
-                               , "asin"
-                               , "asinh"
-                               , "asort"
-                               , "aspell_check"
-                               , "aspell_check_raw"
-                               , "aspell_new"
-                               , "aspell_suggest"
-                               , "assert"
-                               , "assert_options"
-                               , "atan"
-                               , "atan2"
-                               , "atanh"
-                               , "base64_decode"
-                               , "base64_encode"
-                               , "base_convert"
-                               , "basename"
-                               , "bcadd"
-                               , "bccomp"
-                               , "bcdiv"
-                               , "bcmod"
-                               , "bcmul"
-                               , "bcpow"
-                               , "bcpowmod"
-                               , "bcscale"
-                               , "bcsqrt"
-                               , "bcsub"
-                               , "bin2hex"
-                               , "bind_textdomain_codeset"
-                               , "bindec"
-                               , "bindtextdomain"
-                               , "bzclose"
-                               , "bzcompress"
-                               , "bzdecompress"
-                               , "bzerrno"
-                               , "bzerror"
-                               , "bzerrstr"
-                               , "bzflush"
-                               , "bzopen"
-                               , "bzread"
-                               , "bzwrite"
-                               , "cal_days_in_month"
-                               , "cal_from_jd"
-                               , "cal_info"
-                               , "cal_to_jd"
-                               , "call_user_func"
-                               , "call_user_func_array"
-                               , "ccvs_add"
-                               , "ccvs_auth"
-                               , "ccvs_command"
-                               , "ccvs_count"
-                               , "ccvs_delete"
-                               , "ccvs_done"
-                               , "ccvs_init"
-                               , "ccvs_lookup"
-                               , "ccvs_new"
-                               , "ccvs_report"
-                               , "ccvs_return"
-                               , "ccvs_reverse"
-                               , "ccvs_sale"
-                               , "ccvs_status"
-                               , "ccvs_textvalue"
-                               , "ccvs_void"
-                               , "ceil"
-                               , "chdir"
-                               , "checkdate"
-                               , "checkdnsrr"
-                               , "chgrp"
-                               , "chmod"
-                               , "chop"
-                               , "chown"
-                               , "chr"
-                               , "chroot"
-                               , "chunk_split"
-                               , "class_exists"
-                               , "class_implements"
-                               , "class_parents"
-                               , "clearstatcache"
-                               , "closedir"
-                               , "closelog"
-                               , "com"
-                               , "com_addref"
-                               , "com_get"
-                               , "com_invoke"
-                               , "com_isenum"
-                               , "com_load"
-                               , "com_load_typelib"
-                               , "com_propget"
-                               , "com_propput"
-                               , "com_propset"
-                               , "com_release"
-                               , "com_set"
-                               , "compact"
-                               , "connection_aborted"
-                               , "connection_status"
-                               , "connection_timeout"
-                               , "constant"
-                               , "convert_cyr_string"
-                               , "convert_uudecode"
-                               , "convert_uuencode"
-                               , "copy"
-                               , "cos"
-                               , "cosh"
-                               , "count"
-                               , "count_chars"
-                               , "cpdf_add_annotation"
-                               , "cpdf_add_outline"
-                               , "cpdf_arc"
-                               , "cpdf_begin_text"
-                               , "cpdf_circle"
-                               , "cpdf_clip"
-                               , "cpdf_close"
-                               , "cpdf_closepath"
-                               , "cpdf_closepath_fill_stroke"
-                               , "cpdf_closepath_stroke"
-                               , "cpdf_continue_text"
-                               , "cpdf_curveto"
-                               , "cpdf_end_text"
-                               , "cpdf_fill"
-                               , "cpdf_fill_stroke"
-                               , "cpdf_finalize"
-                               , "cpdf_finalize_page"
-                               , "cpdf_global_set_document_limits"
-                               , "cpdf_import_jpeg"
-                               , "cpdf_lineto"
-                               , "cpdf_moveto"
-                               , "cpdf_newpath"
-                               , "cpdf_open"
-                               , "cpdf_output_buffer"
-                               , "cpdf_page_init"
-                               , "cpdf_place_inline_image"
-                               , "cpdf_rect"
-                               , "cpdf_restore"
-                               , "cpdf_rlineto"
-                               , "cpdf_rmoveto"
-                               , "cpdf_rotate"
-                               , "cpdf_rotate_text"
-                               , "cpdf_save"
-                               , "cpdf_save_to_file"
-                               , "cpdf_scale"
-                               , "cpdf_set_action_url"
-                               , "cpdf_set_char_spacing"
-                               , "cpdf_set_creator"
-                               , "cpdf_set_current_page"
-                               , "cpdf_set_font"
-                               , "cpdf_set_font_directories"
-                               , "cpdf_set_font_map_file"
-                               , "cpdf_set_horiz_scaling"
-                               , "cpdf_set_keywords"
-                               , "cpdf_set_leading"
-                               , "cpdf_set_page_animation"
-                               , "cpdf_set_subject"
-                               , "cpdf_set_text_matrix"
-                               , "cpdf_set_text_pos"
-                               , "cpdf_set_text_rendering"
-                               , "cpdf_set_text_rise"
-                               , "cpdf_set_title"
-                               , "cpdf_set_viewer_preferences"
-                               , "cpdf_set_word_spacing"
-                               , "cpdf_setdash"
-                               , "cpdf_setflat"
-                               , "cpdf_setgray"
-                               , "cpdf_setgray_fill"
-                               , "cpdf_setgray_stroke"
-                               , "cpdf_setlinecap"
-                               , "cpdf_setlinejoin"
-                               , "cpdf_setlinewidth"
-                               , "cpdf_setmiterlimit"
-                               , "cpdf_setrgbcolor"
-                               , "cpdf_setrgbcolor_fill"
-                               , "cpdf_setrgbcolor_stroke"
-                               , "cpdf_show"
-                               , "cpdf_show_xy"
-                               , "cpdf_stringwidth"
-                               , "cpdf_stroke"
-                               , "cpdf_text"
-                               , "cpdf_translate"
-                               , "crack_check"
-                               , "crack_closedict"
-                               , "crack_getlastmessage"
-                               , "crack_opendict"
-                               , "crc32"
-                               , "create_function"
-                               , "crypt"
-                               , "ctype_alnum"
-                               , "ctype_alpha"
-                               , "ctype_cntrl"
-                               , "ctype_digit"
-                               , "ctype_graph"
-                               , "ctype_lower"
-                               , "ctype_print"
-                               , "ctype_punct"
-                               , "ctype_space"
-                               , "ctype_upper"
-                               , "ctype_xdigit"
-                               , "curl_close"
-                               , "curl_copy_handle"
-                               , "curl_errno"
-                               , "curl_error"
-                               , "curl_exec"
-                               , "curl_getinfo"
-                               , "curl_init"
-                               , "curl_multi_add_handle"
-                               , "curl_multi_close"
-                               , "curl_multi_exec"
-                               , "curl_multi_getcontent"
-                               , "curl_multi_info_read"
-                               , "curl_multi_init"
-                               , "curl_multi_remove_handle"
-                               , "curl_multi_select"
-                               , "curl_setopt"
-                               , "curl_setopt_array"
-                               , "curl_version"
-                               , "current"
-                               , "cybercash_base64_decode"
-                               , "cybercash_base64_encode"
-                               , "cybercash_decr"
-                               , "cybercash_encr"
-                               , "cybermut_creerformulairecm"
-                               , "cybermut_creerreponsecm"
-                               , "cybermut_testmac"
-                               , "cyrus_authenticate"
-                               , "cyrus_bind"
-                               , "cyrus_close"
-                               , "cyrus_connect"
-                               , "cyrus_query"
-                               , "cyrus_unbind"
-                               , "date"
-                               , "date_add"
-                               , "date_create"
-                               , "date_create_from_format"
-                               , "date_date_set"
-                               , "date_default_timezone_get"
-                               , "date_default_timezone_set"
-                               , "date_diff"
-                               , "date_format"
-                               , "date_get_last_errors"
-                               , "date_interval_create_from_date_string"
-                               , "date_interval_format"
-                               , "date_isodate_set"
-                               , "date_modify"
-                               , "date_offset_get"
-                               , "date_parse"
-                               , "date_parse_from_format"
-                               , "date_sub"
-                               , "date_sun_info"
-                               , "date_sunrise"
-                               , "date_sunset"
-                               , "date_time_ set"
-                               , "date_timestamp_get"
-                               , "date_timestamp_set"
-                               , "date_timezone_get"
-                               , "date_timezone_set"
-                               , "dba_close"
-                               , "dba_delete"
-                               , "dba_exists"
-                               , "dba_fetch"
-                               , "dba_firstkey"
-                               , "dba_handlers"
-                               , "dba_insert"
-                               , "dba_key_split"
-                               , "dba_list"
-                               , "dba_nextkey"
-                               , "dba_open"
-                               , "dba_optimize"
-                               , "dba_popen"
-                               , "dba_replace"
-                               , "dba_sync"
-                               , "dbase_add_record"
-                               , "dbase_close"
-                               , "dbase_create"
-                               , "dbase_delete_record"
-                               , "dbase_get_header_info"
-                               , "dbase_get_record"
-                               , "dbase_get_record_with_names"
-                               , "dbase_numfields"
-                               , "dbase_numrecords"
-                               , "dbase_open"
-                               , "dbase_pack"
-                               , "dbase_replace_record"
-                               , "dblist"
-                               , "dbmclose"
-                               , "dbmdelete"
-                               , "dbmexists"
-                               , "dbmfetch"
-                               , "dbmfirstkey"
-                               , "dbminsert"
-                               , "dbmnextkey"
-                               , "dbmopen"
-                               , "dbmreplace"
-                               , "dbplus_add"
-                               , "dbplus_aql"
-                               , "dbplus_chdir"
-                               , "dbplus_close"
-                               , "dbplus_curr"
-                               , "dbplus_errcode"
-                               , "dbplus_errno"
-                               , "dbplus_find"
-                               , "dbplus_first"
-                               , "dbplus_flush"
-                               , "dbplus_freealllocks"
-                               , "dbplus_freelock"
-                               , "dbplus_freerlocks"
-                               , "dbplus_getlock"
-                               , "dbplus_getunique"
-                               , "dbplus_info"
-                               , "dbplus_last"
-                               , "dbplus_lockrel"
-                               , "dbplus_next"
-                               , "dbplus_open"
-                               , "dbplus_prev"
-                               , "dbplus_rchperm"
-                               , "dbplus_rcreate"
-                               , "dbplus_rcrtexact"
-                               , "dbplus_rcrtlike"
-                               , "dbplus_resolve"
-                               , "dbplus_restorepos"
-                               , "dbplus_rkeys"
-                               , "dbplus_ropen"
-                               , "dbplus_rquery"
-                               , "dbplus_rrename"
-                               , "dbplus_rsecindex"
-                               , "dbplus_runlink"
-                               , "dbplus_rzap"
-                               , "dbplus_savepos"
-                               , "dbplus_setindex"
-                               , "dbplus_setindexbynumber"
-                               , "dbplus_sql"
-                               , "dbplus_tcl"
-                               , "dbplus_tremove"
-                               , "dbplus_undo"
-                               , "dbplus_undoprepare"
-                               , "dbplus_unlockrel"
-                               , "dbplus_unselect"
-                               , "dbplus_update"
-                               , "dbplus_xlockrel"
-                               , "dbplus_xunlockrel"
-                               , "dbx_close"
-                               , "dbx_compare"
-                               , "dbx_connect"
-                               , "dbx_error"
-                               , "dbx_escape_string"
-                               , "dbx_fetch_row"
-                               , "dbx_query"
-                               , "dbx_sort"
-                               , "dcgettext"
-                               , "dcngettext"
-                               , "debug_backtrace"
-                               , "debug_print_backtrace"
-                               , "debug_zval_dump"
-                               , "decbin"
-                               , "dechex"
-                               , "decoct"
-                               , "define"
-                               , "define_syslog_variables"
-                               , "defined"
-                               , "deg2rad"
-                               , "dgettext"
-                               , "die"
-                               , "dio_close"
-                               , "dio_fcntl"
-                               , "dio_open"
-                               , "dio_read"
-                               , "dio_seek"
-                               , "dio_stat"
-                               , "dio_tcsetattr"
-                               , "dio_truncate"
-                               , "dio_write"
-                               , "dir"
-                               , "dirname"
-                               , "disk_free_space"
-                               , "disk_total_space"
-                               , "diskfreespace"
-                               , "dl"
-                               , "dngettext"
-                               , "dns_check_record"
-                               , "dns_get_mx"
-                               , "dns_get_record"
-                               , "dom_import_simplexml"
-                               , "domxml_add_root"
-                               , "domxml_attributes"
-                               , "domxml_children"
-                               , "domxml_dumpmem"
-                               , "domxml_get_attribute"
-                               , "domxml_new_child"
-                               , "domxml_new_xmldoc"
-                               , "domxml_node"
-                               , "domxml_node_set_content"
-                               , "domxml_node_unlink_node"
-                               , "domxml_root"
-                               , "domxml_set_attribute"
-                               , "domxml_version"
-                               , "doubleval"
-                               , "each"
-                               , "easter_date"
-                               , "easter_days"
-                               , "ebcdic2ascii"
-                               , "echo"
-                               , "empty"
-                               , "end"
-                               , "error_get_last"
-                               , "error_log"
-                               , "error_reporting"
-                               , "escapeshellarg"
-                               , "escapeshellcmd"
-                               , "eval"
-                               , "exec"
-                               , "exif_imagetype"
-                               , "exif_read_data"
-                               , "exif_tagname"
-                               , "exif_thumbnail"
-                               , "exit"
-                               , "exp"
-                               , "explode"
-                               , "expm1"
-                               , "extension_loaded"
-                               , "extract"
-                               , "ezmlm_hash"
-                               , "fam_cancel_monitor"
-                               , "fam_close"
-                               , "fam_monitor_collection"
-                               , "fam_monitor_directory"
-                               , "fam_monitor_file"
-                               , "fam_next_event"
-                               , "fam_open"
-                               , "fam_pending"
-                               , "fam_resume_monitor"
-                               , "fam_suspend_monitor"
-                               , "fbsql_affected_rows"
-                               , "fbsql_autocommit"
-                               , "fbsql_change_user"
-                               , "fbsql_close"
-                               , "fbsql_commit"
-                               , "fbsql_connect"
-                               , "fbsql_create_blob"
-                               , "fbsql_create_clob"
-                               , "fbsql_create_db"
-                               , "fbsql_data_seek"
-                               , "fbsql_database"
-                               , "fbsql_database_password"
-                               , "fbsql_db_query"
-                               , "fbsql_db_status"
-                               , "fbsql_drop_db"
-                               , "fbsql_errno"
-                               , "fbsql_error"
-                               , "fbsql_fetch_array"
-                               , "fbsql_fetch_assoc"
-                               , "fbsql_fetch_field"
-                               , "fbsql_fetch_lengths"
-                               , "fbsql_fetch_object"
-                               , "fbsql_fetch_row"
-                               , "fbsql_field_flags"
-                               , "fbsql_field_len"
-                               , "fbsql_field_name"
-                               , "fbsql_field_seek"
-                               , "fbsql_field_table"
-                               , "fbsql_field_type"
-                               , "fbsql_free_result"
-                               , "fbsql_get_autostart_info"
-                               , "fbsql_hostname"
-                               , "fbsql_insert_id"
-                               , "fbsql_list_dbs"
-                               , "fbsql_list_fields"
-                               , "fbsql_list_tables"
-                               , "fbsql_next_result"
-                               , "fbsql_num_fields"
-                               , "fbsql_num_rows"
-                               , "fbsql_password"
-                               , "fbsql_pconnect"
-                               , "fbsql_query"
-                               , "fbsql_read_blob"
-                               , "fbsql_read_clob"
-                               , "fbsql_result"
-                               , "fbsql_rollback"
-                               , "fbsql_select_db"
-                               , "fbsql_set_lob_mode"
-                               , "fbsql_set_transaction"
-                               , "fbsql_start_db"
-                               , "fbsql_stop_db"
-                               , "fbsql_tablename"
-                               , "fbsql_username"
-                               , "fbsql_warnings"
-                               , "fclose"
-                               , "fdf_add_template"
-                               , "fdf_close"
-                               , "fdf_create"
-                               , "fdf_get_file"
-                               , "fdf_get_status"
-                               , "fdf_get_value"
-                               , "fdf_next_field_name"
-                               , "fdf_open"
-                               , "fdf_save"
-                               , "fdf_set_ap"
-                               , "fdf_set_encoding"
-                               , "fdf_set_file"
-                               , "fdf_set_flags"
-                               , "fdf_set_javascript_action"
-                               , "fdf_set_opt"
-                               , "fdf_set_status"
-                               , "fdf_set_submit_form_action"
-                               , "fdf_set_value"
-                               , "feof"
-                               , "fflush"
-                               , "fgetc"
-                               , "fgetcsv"
-                               , "fgets"
-                               , "fgetss"
-                               , "file"
-                               , "file_exists"
-                               , "file_get_contents"
-                               , "file_put_contents"
-                               , "fileatime"
-                               , "filectime"
-                               , "filegroup"
-                               , "fileinode"
-                               , "filemtime"
-                               , "fileowner"
-                               , "fileperms"
-                               , "filepro"
-                               , "filepro_fieldcount"
-                               , "filepro_fieldname"
-                               , "filepro_fieldtype"
-                               , "filepro_fieldwidth"
-                               , "filepro_retrieve"
-                               , "filepro_rowcount"
-                               , "filesize"
-                               , "filetype"
-                               , "filter_has_var"
-                               , "filter_id"
-                               , "filter_input"
-                               , "filter_input_array"
-                               , "filter_list"
-                               , "filter_var"
-                               , "filter_var_array"
-                               , "floatval"
-                               , "flock"
-                               , "floor"
-                               , "flush"
-                               , "fmod"
-                               , "fnmatch"
-                               , "fopen"
-                               , "forward_static_call"
-                               , "forward_static_call_array"
-                               , "fpassthru"
-                               , "fprintf"
-                               , "fputcsv"
-                               , "fputs"
-                               , "fread"
-                               , "frenchtojd"
-                               , "fribidi_log2vis"
-                               , "fscanf"
-                               , "fseek"
-                               , "fsockopen"
-                               , "fstat"
-                               , "ftell"
-                               , "ftok"
-                               , "ftp_alloc"
-                               , "ftp_cdup"
-                               , "ftp_chdir"
-                               , "ftp_chmod"
-                               , "ftp_close"
-                               , "ftp_connect"
-                               , "ftp_delete"
-                               , "ftp_exec"
-                               , "ftp_fget"
-                               , "ftp_fput"
-                               , "ftp_get"
-                               , "ftp_get_option"
-                               , "ftp_login"
-                               , "ftp_mdtm"
-                               , "ftp_mkdir"
-                               , "ftp_nb_continue"
-                               , "ftp_nb_fget"
-                               , "ftp_nb_fput"
-                               , "ftp_nb_get"
-                               , "ftp_nb_put"
-                               , "ftp_nlist"
-                               , "ftp_pasv"
-                               , "ftp_put"
-                               , "ftp_pwd"
-                               , "ftp_quit"
-                               , "ftp_raw"
-                               , "ftp_rawlist"
-                               , "ftp_rename"
-                               , "ftp_rmdir"
-                               , "ftp_set_option"
-                               , "ftp_site"
-                               , "ftp_size"
-                               , "ftp_ssl_connect"
-                               , "ftp_systype"
-                               , "ftruncate"
-                               , "func_get_arg"
-                               , "func_get_args"
-                               , "func_num_args"
-                               , "function_exists"
-                               , "fwrite"
-                               , "gc_collect_cycles"
-                               , "gc_disable"
-                               , "gc_enable"
-                               , "gc_enabled"
-                               , "gd_info"
-                               , "get_browser"
-                               , "get_called_class"
-                               , "get_cfg_var"
-                               , "get_class"
-                               , "get_class_methods"
-                               , "get_class_vars"
-                               , "get_current_user"
-                               , "get_declared_classes"
-                               , "get_declared_interfaces"
-                               , "get_defined_constants"
-                               , "get_defined_functions"
-                               , "get_defined_vars"
-                               , "get_extension_funcs"
-                               , "get_headers"
-                               , "get_html_translation_table"
-                               , "get_include_path"
-                               , "get_included_files"
-                               , "get_loaded_extensions"
-                               , "get_magic_quotes_gpc"
-                               , "get_magic_quotes_runtime"
-                               , "get_meta_tags"
-                               , "get_object_vars"
-                               , "get_parent_class"
-                               , "get_required_files"
-                               , "get_resource_type"
-                               , "getallheaders"
-                               , "getcwd"
-                               , "getdate"
-                               , "getenv"
-                               , "gethostbyaddr"
-                               , "gethostbyname"
-                               , "gethostbynamel"
-                               , "gethostname"
-                               , "getimagesize"
-                               , "getlastmod"
-                               , "getmxrr"
-                               , "getmygid"
-                               , "getmyinode"
-                               , "getmypid"
-                               , "getmyuid"
-                               , "getopt"
-                               , "getprotobyname"
-                               , "getprotobynumber"
-                               , "getrandmax"
-                               , "getrusage"
-                               , "getservbyname"
-                               , "getservbyport"
-                               , "gettext"
-                               , "gettimeofday"
-                               , "gettype"
-                               , "glob"
-                               , "gmdate"
-                               , "gmmktime"
-                               , "gmp_abs"
-                               , "gmp_add"
-                               , "gmp_and"
-                               , "gmp_clrbit"
-                               , "gmp_cmp"
-                               , "gmp_com"
-                               , "gmp_div"
-                               , "gmp_div_q"
-                               , "gmp_div_qr"
-                               , "gmp_div_r"
-                               , "gmp_divexact"
-                               , "gmp_fact"
-                               , "gmp_gcd"
-                               , "gmp_gcdext"
-                               , "gmp_hamdist"
-                               , "gmp_init"
-                               , "gmp_intval"
-                               , "gmp_invert"
-                               , "gmp_jacobi"
-                               , "gmp_legendre"
-                               , "gmp_mod"
-                               , "gmp_mul"
-                               , "gmp_neg"
-                               , "gmp_or"
-                               , "gmp_perfect_square"
-                               , "gmp_popcount"
-                               , "gmp_pow"
-                               , "gmp_powm"
-                               , "gmp_prob_prime"
-                               , "gmp_random"
-                               , "gmp_scan0"
-                               , "gmp_scan1"
-                               , "gmp_setbit"
-                               , "gmp_sign"
-                               , "gmp_sqrt"
-                               , "gmp_sqrtrem"
-                               , "gmp_strval"
-                               , "gmp_sub"
-                               , "gmp_xor"
-                               , "gmstrftime"
-                               , "gregoriantojd"
-                               , "gzclose"
-                               , "gzcompress"
-                               , "gzdeflate"
-                               , "gzencode"
-                               , "gzeof"
-                               , "gzfile"
-                               , "gzgetc"
-                               , "gzgets"
-                               , "gzgetss"
-                               , "gzinflate"
-                               , "gzopen"
-                               , "gzpassthru"
-                               , "gzputs"
-                               , "gzread"
-                               , "gzrewind"
-                               , "gzseek"
-                               , "gztell"
-                               , "gzuncompress"
-                               , "gzwrite"
-                               , "hash"
-                               , "hash_algos"
-                               , "hash_copy"
-                               , "hash_file"
-                               , "hash_final"
-                               , "hash_hmac"
-                               , "hash_hmac_file"
-                               , "hash_init"
-                               , "hash_update"
-                               , "hash_update_file"
-                               , "hash_update_stream"
-                               , "header"
-                               , "header_remove"
-                               , "headers_list"
-                               , "headers_sent"
-                               , "hebrev"
-                               , "hebrevc"
-                               , "hexdec"
-                               , "highlight_file"
-                               , "highlight_string"
-                               , "html_entity_decode"
-                               , "htmlentities"
-                               , "htmlspecialchars"
-                               , "htmlspecialchars_decode"
-                               , "http_build_query"
-                               , "hw_array2objrec"
-                               , "hw_changeobject"
-                               , "hw_children"
-                               , "hw_childrenobj"
-                               , "hw_close"
-                               , "hw_connect"
-                               , "hw_connection_info"
-                               , "hw_cp"
-                               , "hw_deleteobject"
-                               , "hw_docbyanchor"
-                               , "hw_docbyanchorobj"
-                               , "hw_document_attributes"
-                               , "hw_document_bodytag"
-                               , "hw_document_content"
-                               , "hw_document_setcontent"
-                               , "hw_document_size"
-                               , "hw_dummy"
-                               , "hw_edittext"
-                               , "hw_error"
-                               , "hw_errormsg"
-                               , "hw_free_document"
-                               , "hw_getanchors"
-                               , "hw_getanchorsobj"
-                               , "hw_getandlock"
-                               , "hw_getchildcoll"
-                               , "hw_getchildcollobj"
-                               , "hw_getchilddoccoll"
-                               , "hw_getchilddoccollobj"
-                               , "hw_getobject"
-                               , "hw_getobjectbyquery"
-                               , "hw_getobjectbyquerycoll"
-                               , "hw_getobjectbyquerycollobj"
-                               , "hw_getobjectbyqueryobj"
-                               , "hw_getparents"
-                               , "hw_getparentsobj"
-                               , "hw_getrellink"
-                               , "hw_getremote"
-                               , "hw_getremotechildren"
-                               , "hw_getsrcbydestobj"
-                               , "hw_gettext"
-                               , "hw_getusername"
-                               , "hw_identify"
-                               , "hw_incollections"
-                               , "hw_info"
-                               , "hw_inscoll"
-                               , "hw_insdoc"
-                               , "hw_insertanchors"
-                               , "hw_insertdocument"
-                               , "hw_insertobject"
-                               , "hw_mapid"
-                               , "hw_modifyobject"
-                               , "hw_mv"
-                               , "hw_new_document"
-                               , "hw_objrec2array"
-                               , "hw_output_document"
-                               , "hw_pconnect"
-                               , "hw_pipedocument"
-                               , "hw_root"
-                               , "hw_setlinkroot"
-                               , "hw_stat"
-                               , "hw_unlock"
-                               , "hw_who"
-                               , "hypot"
-                               , "ibase_blob_add"
-                               , "ibase_blob_cancel"
-                               , "ibase_blob_close"
-                               , "ibase_blob_create"
-                               , "ibase_blob_echo"
-                               , "ibase_blob_get"
-                               , "ibase_blob_import"
-                               , "ibase_blob_info"
-                               , "ibase_blob_open"
-                               , "ibase_close"
-                               , "ibase_commit"
-                               , "ibase_connect"
-                               , "ibase_errmsg"
-                               , "ibase_execute"
-                               , "ibase_fetch_object"
-                               , "ibase_fetch_row"
-                               , "ibase_field_info"
-                               , "ibase_free_query"
-                               , "ibase_free_result"
-                               , "ibase_num_fields"
-                               , "ibase_pconnect"
-                               , "ibase_prepare"
-                               , "ibase_query"
-                               , "ibase_rollback"
-                               , "ibase_timefmt"
-                               , "ibase_trans"
-                               , "icap_close"
-                               , "icap_create_calendar"
-                               , "icap_delete_calendar"
-                               , "icap_delete_event"
-                               , "icap_fetch_event"
-                               , "icap_list_alarms"
-                               , "icap_list_events"
-                               , "icap_open"
-                               , "icap_rename_calendar"
-                               , "icap_reopen"
-                               , "icap_snooze"
-                               , "icap_store_event"
-                               , "iconv"
-                               , "iconv_get_encoding"
-                               , "iconv_mime_decode"
-                               , "iconv_mime_decode_headers"
-                               , "iconv_mime_encode"
-                               , "iconv_set_encoding"
-                               , "iconv_strlen"
-                               , "iconv_strpos"
-                               , "iconv_strrpos"
-                               , "iconv_substr"
-                               , "idate"
-                               , "ifx_affected_rows"
-                               , "ifx_blobinfile_mode"
-                               , "ifx_byteasvarchar"
-                               , "ifx_close"
-                               , "ifx_connect"
-                               , "ifx_copy_blob"
-                               , "ifx_create_blob"
-                               , "ifx_create_char"
-                               , "ifx_do"
-                               , "ifx_error"
-                               , "ifx_errormsg"
-                               , "ifx_fetch_row"
-                               , "ifx_fieldproperties"
-                               , "ifx_fieldtypes"
-                               , "ifx_free_blob"
-                               , "ifx_free_char"
-                               , "ifx_free_result"
-                               , "ifx_get_blob"
-                               , "ifx_get_char"
-                               , "ifx_getsqlca"
-                               , "ifx_htmltbl_result"
-                               , "ifx_nullformat"
-                               , "ifx_num_fields"
-                               , "ifx_num_rows"
-                               , "ifx_pconnect"
-                               , "ifx_prepare"
-                               , "ifx_query"
-                               , "ifx_textasvarchar"
-                               , "ifx_update_blob"
-                               , "ifx_update_char"
-                               , "ifxus_close_slob"
-                               , "ifxus_create_slob"
-                               , "ifxus_free_slob"
-                               , "ifxus_open_slob"
-                               , "ifxus_read_slob"
-                               , "ifxus_seek_slob"
-                               , "ifxus_tell_slob"
-                               , "ifxus_write_slob"
-                               , "ignore_user_abort"
-                               , "image2wbmp"
-                               , "image_type_to_extension"
-                               , "image_type_to_mime_type"
-                               , "imagealphablending"
-                               , "imageantialias"
-                               , "imagearc"
-                               , "imagechar"
-                               , "imagecharup"
-                               , "imagecolorallocate"
-                               , "imagecolorallocatealpha"
-                               , "imagecolorat"
-                               , "imagecolorclosest"
-                               , "imagecolorclosestalpha"
-                               , "imagecolorclosesthwb"
-                               , "imagecolordeallocate"
-                               , "imagecolorexact"
-                               , "imagecolorexactalpha"
-                               , "imagecolormatch"
-                               , "imagecolorresolve"
-                               , "imagecolorresolvealpha"
-                               , "imagecolorset"
-                               , "imagecolorsforindex"
-                               , "imagecolorstotal"
-                               , "imagecolortransparent"
-                               , "imageconvolution"
-                               , "imagecopy"
-                               , "imagecopymerge"
-                               , "imagecopymergegray"
-                               , "imagecopyresampled"
-                               , "imagecopyresized"
-                               , "imagecreate"
-                               , "imagecreatefromgd"
-                               , "imagecreatefromgd2"
-                               , "imagecreatefromgd2part"
-                               , "imagecreatefromgif"
-                               , "imagecreatefromjpeg"
-                               , "imagecreatefrompng"
-                               , "imagecreatefromstring"
-                               , "imagecreatefromwbmp"
-                               , "imagecreatefromxbm"
-                               , "imagecreatefromxpm"
-                               , "imagecreatetruecolor"
-                               , "imagedashedline"
-                               , "imagedestroy"
-                               , "imageellipse"
-                               , "imagefill"
-                               , "imagefilledarc"
-                               , "imagefilledellipse"
-                               , "imagefilledpolygon"
-                               , "imagefilledrectangle"
-                               , "imagefilltoborder"
-                               , "imagefilter"
-                               , "imagefontheight"
-                               , "imagefontwidth"
-                               , "imageftbbox"
-                               , "imagefttext"
-                               , "imagegammacorrect"
-                               , "imagegd"
-                               , "imagegd2"
-                               , "imagegif"
-                               , "imageinterlace"
-                               , "imageistruecolor"
-                               , "imagejpeg"
-                               , "imagelayereffect"
-                               , "imageline"
-                               , "imageloadfont"
-                               , "imagepalettecopy"
-                               , "imagepng"
-                               , "imagepolygon"
-                               , "imagepsbbox"
-                               , "imagepsencodefont"
-                               , "imagepsextendfont"
-                               , "imagepsfreefont"
-                               , "imagepsloadfont"
-                               , "imagepsslantfont"
-                               , "imagepstext"
-                               , "imagerectangle"
-                               , "imagerotate"
-                               , "imagesavealpha"
-                               , "imagesetbrush"
-                               , "imagesetpixel"
-                               , "imagesetstyle"
-                               , "imagesetthickness"
-                               , "imagesettile"
-                               , "imagestring"
-                               , "imagestringup"
-                               , "imagesx"
-                               , "imagesy"
-                               , "imagetruecolortopalette"
-                               , "imagettfbbox"
-                               , "imagettftext"
-                               , "imagetypes"
-                               , "imagewbmp"
-                               , "imagexbm"
-                               , "imap_8bit"
-                               , "imap_alerts"
-                               , "imap_append"
-                               , "imap_base64"
-                               , "imap_binary"
-                               , "imap_body"
-                               , "imap_bodystruct"
-                               , "imap_check"
-                               , "imap_clearflag_full"
-                               , "imap_close"
-                               , "imap_create"
-                               , "imap_createmailbox"
-                               , "imap_delete"
-                               , "imap_deletemailbox"
-                               , "imap_errors"
-                               , "imap_expunge"
-                               , "imap_fetch_overview"
-                               , "imap_fetchbody"
-                               , "imap_fetchheader"
-                               , "imap_fetchstructure"
-                               , "imap_fetchtext"
-                               , "imap_get_quota"
-                               , "imap_get_quotaroot"
-                               , "imap_getacl"
-                               , "imap_getmailboxes"
-                               , "imap_getsubscribed"
-                               , "imap_header"
-                               , "imap_headerinfo"
-                               , "imap_headers"
-                               , "imap_last_error"
-                               , "imap_list"
-                               , "imap_listmailbox"
-                               , "imap_listsubscribed"
-                               , "imap_lsub"
-                               , "imap_mail"
-                               , "imap_mail_compose"
-                               , "imap_mail_copy"
-                               , "imap_mail_move"
-                               , "imap_mailboxmsginfo"
-                               , "imap_mime_header_decode"
-                               , "imap_msgno"
-                               , "imap_num_msg"
-                               , "imap_num_recent"
-                               , "imap_open"
-                               , "imap_ping"
-                               , "imap_popen"
-                               , "imap_qprint"
-                               , "imap_rename"
-                               , "imap_renamemailbox"
-                               , "imap_reopen"
-                               , "imap_rfc822_parse_adrlist"
-                               , "imap_rfc822_parse_headers"
-                               , "imap_rfc822_write_address"
-                               , "imap_scan"
-                               , "imap_scanmailbox"
-                               , "imap_search"
-                               , "imap_set_quota"
-                               , "imap_setacl"
-                               , "imap_setflag_full"
-                               , "imap_sort"
-                               , "imap_status"
-                               , "imap_subscribe"
-                               , "imap_thread"
-                               , "imap_timeout"
-                               , "imap_uid"
-                               , "imap_undelete"
-                               , "imap_unsubscribe"
-                               , "imap_utf7_decode"
-                               , "imap_utf7_encode"
-                               , "imap_utf8"
-                               , "implode"
-                               , "import_request_variables"
-                               , "in_array"
-                               , "include"
-                               , "include_once"
-                               , "inet_ntop"
-                               , "inet_pton"
-                               , "ingres_autocommit"
-                               , "ingres_close"
-                               , "ingres_commit"
-                               , "ingres_connect"
-                               , "ingres_fetch_array"
-                               , "ingres_fetch_object"
-                               , "ingres_fetch_row"
-                               , "ingres_field_length"
-                               , "ingres_field_name"
-                               , "ingres_field_nullable"
-                               , "ingres_field_precision"
-                               , "ingres_field_scale"
-                               , "ingres_field_type"
-                               , "ingres_num_fields"
-                               , "ingres_num_rows"
-                               , "ingres_pconnect"
-                               , "ingres_query"
-                               , "ingres_rollback"
-                               , "ini_alter"
-                               , "ini_get"
-                               , "ini_get_all"
-                               , "ini_restore"
-                               , "ini_set"
-                               , "interface_exists"
-                               , "intval"
-                               , "ip2long"
-                               , "iptcembed"
-                               , "iptcparse"
-                               , "ircg_channel_mode"
-                               , "ircg_disconnect"
-                               , "ircg_fetch_error_msg"
-                               , "ircg_get_username"
-                               , "ircg_html_encode"
-                               , "ircg_ignore_add"
-                               , "ircg_ignore_del"
-                               , "ircg_is_conn_alive"
-                               , "ircg_join"
-                               , "ircg_kick"
-                               , "ircg_lookup_format_messages"
-                               , "ircg_msg"
-                               , "ircg_nick"
-                               , "ircg_nickname_escape"
-                               , "ircg_nickname_unescape"
-                               , "ircg_notice"
-                               , "ircg_part"
-                               , "ircg_pconnect"
-                               , "ircg_register_format_messages"
-                               , "ircg_set_current"
-                               , "ircg_set_file"
-                               , "ircg_set_on_die"
-                               , "ircg_topic"
-                               , "ircg_whois"
-                               , "is_a"
-                               , "is_array"
-                               , "is_bool"
-                               , "is_callable"
-                               , "is_dir"
-                               , "is_double"
-                               , "is_executable"
-                               , "is_file"
-                               , "is_finite"
-                               , "is_float"
-                               , "is_infinite"
-                               , "is_int"
-                               , "is_integer"
-                               , "is_link"
-                               , "is_long"
-                               , "is_nan"
-                               , "is_null"
-                               , "is_numeric"
-                               , "is_object"
-                               , "is_readable"
-                               , "is_real"
-                               , "is_resource"
-                               , "is_scalar"
-                               , "is_string"
-                               , "is_subclass_of"
-                               , "is_uploaded_file"
-                               , "is_writable"
-                               , "is_writeable"
-                               , "isset"
-                               , "iterator_apply"
-                               , "iterator_count"
-                               , "iterator_to_array"
-                               , "java_last_exception_clear"
-                               , "java_last_exception_get"
-                               , "jddayofweek"
-                               , "jdmonthname"
-                               , "jdtofrench"
-                               , "jdtogregorian"
-                               , "jdtojewish"
-                               , "jdtojulian"
-                               , "jdtounix"
-                               , "jewishtojd"
-                               , "join"
-                               , "jpeg2wbmp"
-                               , "json_decode"
-                               , "json_encode"
-                               , "json_last_error"
-                               , "juliantojd"
-                               , "key"
-                               , "key_exists"
-                               , "krsort"
-                               , "ksort"
-                               , "lcfirst"
-                               , "lcg_value"
-                               , "lchgrp"
-                               , "lchown"
-                               , "ldap_8859_to_t61"
-                               , "ldap_add"
-                               , "ldap_bind"
-                               , "ldap_close"
-                               , "ldap_compare"
-                               , "ldap_connect"
-                               , "ldap_count_entries"
-                               , "ldap_delete"
-                               , "ldap_dn2ufn"
-                               , "ldap_err2str"
-                               , "ldap_errno"
-                               , "ldap_error"
-                               , "ldap_explode_dn"
-                               , "ldap_first_attribute"
-                               , "ldap_first_entry"
-                               , "ldap_first_reference"
-                               , "ldap_free_result"
-                               , "ldap_get_attributes"
-                               , "ldap_get_dn"
-                               , "ldap_get_entries"
-                               , "ldap_get_option"
-                               , "ldap_get_values"
-                               , "ldap_get_values_len"
-                               , "ldap_list"
-                               , "ldap_mod_add"
-                               , "ldap_mod_del"
-                               , "ldap_mod_replace"
-                               , "ldap_modify"
-                               , "ldap_next_attribute"
-                               , "ldap_next_entry"
-                               , "ldap_next_reference"
-                               , "ldap_parse_reference"
-                               , "ldap_parse_result"
-                               , "ldap_read"
-                               , "ldap_rename"
-                               , "ldap_search"
-                               , "ldap_set_option"
-                               , "ldap_set_rebind_proc"
-                               , "ldap_sort"
-                               , "ldap_start_tls"
-                               , "ldap_t61_to_8859"
-                               , "ldap_unbind"
-                               , "levenshtein"
-                               , "libxml_clear_errors"
-                               , "libxml_get_errors"
-                               , "libxml_get_last_error"
-                               , "libxml_set_streams_context"
-                               , "libxml_use_internal_errors"
-                               , "link"
-                               , "linkinfo"
-                               , "list"
-                               , "localeconv"
-                               , "localtime"
-                               , "log"
-                               , "log10"
-                               , "log1p"
-                               , "long2ip"
-                               , "lstat"
-                               , "ltrim"
-                               , "magic_quotes_runtime"
-                               , "mail"
-                               , "mailparse_determine_best_xfer_encoding"
-                               , "mailparse_msg_create"
-                               , "mailparse_msg_extract_part"
-                               , "mailparse_msg_extract_part_file"
-                               , "mailparse_msg_free"
-                               , "mailparse_msg_get_part"
-                               , "mailparse_msg_get_part_data"
-                               , "mailparse_msg_get_structure"
-                               , "mailparse_msg_parse"
-                               , "mailparse_msg_parse_file"
-                               , "mailparse_rfc822_parse_addresses"
-                               , "mailparse_stream_encode"
-                               , "mailparse_uudecode_all"
-                               , "max"
-                               , "mb_check_encoding"
-                               , "mb_convert_case"
-                               , "mb_convert_encoding"
-                               , "mb_convert_kana"
-                               , "mb_convert_variables"
-                               , "mb_decode_mimeheader"
-                               , "mb_decode_numericentity"
-                               , "mb_detect_encoding"
-                               , "mb_detect_order"
-                               , "mb_encode_mimeheader"
-                               , "mb_encode_numericentity"
-                               , "mb_encoding_aliases"
-                               , "mb_ereg"
-                               , "mb_ereg_match"
-                               , "mb_ereg_replace"
-                               , "mb_ereg_search"
-                               , "mb_ereg_search_getpos"
-                               , "mb_ereg_search_getregs"
-                               , "mb_ereg_search_init"
-                               , "mb_ereg_search_pos"
-                               , "mb_ereg_search_regs"
-                               , "mb_ereg_search_setpos"
-                               , "mb_eregi"
-                               , "mb_eregi_replace"
-                               , "mb_get_info"
-                               , "mb_http_input"
-                               , "mb_http_output"
-                               , "mb_internal_encoding"
-                               , "mb_language"
-                               , "mb_list_encodings"
-                               , "mb_output_handler"
-                               , "mb_parse_str"
-                               , "mb_preferred_mime_name"
-                               , "mb_regex_encoding"
-                               , "mb_regex_set_options"
-                               , "mb_send_mail"
-                               , "mb_split"
-                               , "mb_strcut"
-                               , "mb_strimwidth"
-                               , "mb_stripos"
-                               , "mb_stristr"
-                               , "mb_strlen"
-                               , "mb_strpos"
-                               , "mb_strrchr"
-                               , "mb_strrichr"
-                               , "mb_strripos"
-                               , "mb_strrpos"
-                               , "mb_strstr"
-                               , "mb_strtolower"
-                               , "mb_strtoupper"
-                               , "mb_strwidth"
-                               , "mb_substitute_character"
-                               , "mb_substr"
-                               , "mb_substr_count"
-                               , "mcal_append_event"
-                               , "mcal_close"
-                               , "mcal_create_calendar"
-                               , "mcal_date_compare"
-                               , "mcal_date_valid"
-                               , "mcal_day_of_week"
-                               , "mcal_day_of_year"
-                               , "mcal_days_in_month"
-                               , "mcal_delete_calendar"
-                               , "mcal_delete_event"
-                               , "mcal_event_add_attribute"
-                               , "mcal_event_init"
-                               , "mcal_event_set_alarm"
-                               , "mcal_event_set_category"
-                               , "mcal_event_set_class"
-                               , "mcal_event_set_description"
-                               , "mcal_event_set_end"
-                               , "mcal_event_set_recur_daily"
-                               , "mcal_event_set_recur_monthly_mday"
-                               , "mcal_event_set_recur_monthly_wday"
-                               , "mcal_event_set_recur_none"
-                               , "mcal_event_set_recur_weekly"
-                               , "mcal_event_set_recur_yearly"
-                               , "mcal_event_set_start"
-                               , "mcal_event_set_title"
-                               , "mcal_expunge"
-                               , "mcal_fetch_current_stream_event"
-                               , "mcal_fetch_event"
-                               , "mcal_is_leap_year"
-                               , "mcal_list_alarms"
-                               , "mcal_list_events"
-                               , "mcal_next_recurrence"
-                               , "mcal_open"
-                               , "mcal_popen"
-                               , "mcal_rename_calendar"
-                               , "mcal_reopen"
-                               , "mcal_snooze"
-                               , "mcal_store_event"
-                               , "mcal_time_valid"
-                               , "mcal_week_of_year"
-                               , "mcrypt_cbc"
-                               , "mcrypt_cfb"
-                               , "mcrypt_create_iv"
-                               , "mcrypt_decrypt"
-                               , "mcrypt_enc_get_algorithms_name"
-                               , "mcrypt_enc_get_block_size"
-                               , "mcrypt_enc_get_iv_size"
-                               , "mcrypt_enc_get_key_size"
-                               , "mcrypt_enc_get_modes_name"
-                               , "mcrypt_enc_get_supported_key_sizes"
-                               , "mcrypt_enc_is_block_algorithm"
-                               , "mcrypt_enc_is_block_algorithm_mode"
-                               , "mcrypt_enc_is_block_mode"
-                               , "mcrypt_enc_self_test"
-                               , "mcrypt_encrypt"
-                               , "mcrypt_generic"
-                               , "mcrypt_generic_deinit"
-                               , "mcrypt_generic_end"
-                               , "mcrypt_generic_init"
-                               , "mcrypt_get_block_size"
-                               , "mcrypt_get_cipher_name"
-                               , "mcrypt_get_iv_size"
-                               , "mcrypt_get_key_size"
-                               , "mcrypt_list_algorithms"
-                               , "mcrypt_list_modes"
-                               , "mcrypt_module_close"
-                               , "mcrypt_module_get_algo_block_size"
-                               , "mcrypt_module_get_algo_key_size"
-                               , "mcrypt_module_get_supported_key_sizes"
-                               , "mcrypt_module_is_block_algorithm"
-                               , "mcrypt_module_is_block_algorithm_mode"
-                               , "mcrypt_module_is_block_mode"
-                               , "mcrypt_module_open"
-                               , "mcrypt_module_self_test"
-                               , "mcrypt_ofb"
-                               , "md5"
-                               , "md5_file"
-                               , "mdecrypt_generic"
-                               , "memory_get_peak_usage"
-                               , "memory_get_usage"
-                               , "metaphone"
-                               , "method_exists"
-                               , "mhash"
-                               , "mhash_count"
-                               , "mhash_get_block_size"
-                               , "mhash_get_hash_name"
-                               , "mhash_keygen_s2k"
-                               , "microtime"
-                               , "min"
-                               , "ming_setcubicthreshold"
-                               , "ming_setscale"
-                               , "ming_useswfversion"
-                               , "mkdir"
-                               , "mktime"
-                               , "money_format"
-                               , "move_uploaded_file"
-                               , "msession_connect"
-                               , "msession_count"
-                               , "msession_create"
-                               , "msession_destroy"
-                               , "msession_disconnect"
-                               , "msession_find"
-                               , "msession_get"
-                               , "msession_get_array"
-                               , "msession_getdata"
-                               , "msession_inc"
-                               , "msession_list"
-                               , "msession_listvar"
-                               , "msession_lock"
-                               , "msession_plugin"
-                               , "msession_randstr"
-                               , "msession_set"
-                               , "msession_set_array"
-                               , "msession_setdata"
-                               , "msession_timeout"
-                               , "msession_uniq"
-                               , "msession_unlock"
-                               , "msg_get_queue"
-                               , "msg_receive"
-                               , "msg_remove_queue"
-                               , "msg_send"
-                               , "msg_set_queue"
-                               , "msg_stat_queue"
-                               , "msql"
-                               , "msql_affected_rows"
-                               , "msql_close"
-                               , "msql_connect"
-                               , "msql_create_db"
-                               , "msql_createdb"
-                               , "msql_data_seek"
-                               , "msql_dbname"
-                               , "msql_drop_db"
-                               , "msql_dropdb"
-                               , "msql_error"
-                               , "msql_fetch_array"
-                               , "msql_fetch_field"
-                               , "msql_fetch_object"
-                               , "msql_fetch_row"
-                               , "msql_field_seek"
-                               , "msql_fieldflags"
-                               , "msql_fieldlen"
-                               , "msql_fieldname"
-                               , "msql_fieldtable"
-                               , "msql_fieldtype"
-                               , "msql_free_result"
-                               , "msql_freeresult"
-                               , "msql_list_dbs"
-                               , "msql_list_fields"
-                               , "msql_list_tables"
-                               , "msql_listdbs"
-                               , "msql_listfields"
-                               , "msql_listtables"
-                               , "msql_num_fields"
-                               , "msql_num_rows"
-                               , "msql_numfields"
-                               , "msql_numrows"
-                               , "msql_pconnect"
-                               , "msql_query"
-                               , "msql_regcase"
-                               , "msql_result"
-                               , "msql_select_db"
-                               , "msql_selectdb"
-                               , "msql_tablename"
-                               , "mssql_bind"
-                               , "mssql_close"
-                               , "mssql_connect"
-                               , "mssql_data_seek"
-                               , "mssql_execute"
-                               , "mssql_fetch_array"
-                               , "mssql_fetch_assoc"
-                               , "mssql_fetch_batch"
-                               , "mssql_fetch_field"
-                               , "mssql_fetch_object"
-                               , "mssql_fetch_row"
-                               , "mssql_field_length"
-                               , "mssql_field_name"
-                               , "mssql_field_seek"
-                               , "mssql_field_type"
-                               , "mssql_free_result"
-                               , "mssql_get_last_message"
-                               , "mssql_guid_string"
-                               , "mssql_init"
-                               , "mssql_min_error_severity"
-                               , "mssql_min_message_severity"
-                               , "mssql_next_result"
-                               , "mssql_num_fields"
-                               , "mssql_num_rows"
-                               , "mssql_pconnect"
-                               , "mssql_query"
-                               , "mssql_result"
-                               , "mssql_rows_affected"
-                               , "mssql_select_db"
-                               , "mt_getrandmax"
-                               , "mt_rand"
-                               , "mt_srand"
-                               , "muscat_close"
-                               , "muscat_get"
-                               , "muscat_give"
-                               , "muscat_setup"
-                               , "muscat_setup_net"
-                               , "mysql"
-                               , "mysql_affected_rows"
-                               , "mysql_client_encoding"
-                               , "mysql_close"
-                               , "mysql_connect"
-                               , "mysql_data_seek"
-                               , "mysql_db_name"
-                               , "mysql_db_query"
-                               , "mysql_errno"
-                               , "mysql_error"
-                               , "mysql_escape_string"
-                               , "mysql_fetch_array"
-                               , "mysql_fetch_assoc"
-                               , "mysql_fetch_field"
-                               , "mysql_fetch_lengths"
-                               , "mysql_fetch_object"
-                               , "mysql_fetch_row"
-                               , "mysql_field_flags"
-                               , "mysql_field_len"
-                               , "mysql_field_name"
-                               , "mysql_field_seek"
-                               , "mysql_field_table"
-                               , "mysql_field_type"
-                               , "mysql_free_result"
-                               , "mysql_get_client_info"
-                               , "mysql_get_host_info"
-                               , "mysql_get_proto_info"
-                               , "mysql_get_server_info"
-                               , "mysql_info"
-                               , "mysql_insert_id"
-                               , "mysql_list_dbs"
-                               , "mysql_list_processes"
-                               , "mysql_num_fields"
-                               , "mysql_num_rows"
-                               , "mysql_pconnect"
-                               , "mysql_ping"
-                               , "mysql_query"
-                               , "mysql_real_escape_string"
-                               , "mysql_result"
-                               , "mysql_select_db"
-                               , "mysql_set_charset"
-                               , "mysql_stat"
-                               , "mysql_table_name"
-                               , "mysql_thread_id"
-                               , "mysql_unbuffered_query"
-                               , "mysqli_affected_rows"
-                               , "mysqli_autocommit"
-                               , "mysqli_bind_param"
-                               , "mysqli_bind_result"
-                               , "mysqli_change_user"
-                               , "mysqli_character_set_name"
-                               , "mysqli_client_encoding"
-                               , "mysqli_close"
-                               , "mysqli_commit"
-                               , "mysqli_connect"
-                               , "mysqli_connect_errno"
-                               , "mysqli_connect_error"
-                               , "mysqli_data_seek"
-                               , "mysqli_debug"
-                               , "mysqli_dump_debug_info"
-                               , "mysqli_errno"
-                               , "mysqli_error"
-                               , "mysqli_escape_string"
-                               , "mysqli_execute"
-                               , "mysqli_fetch"
-                               , "mysqli_fetch_array"
-                               , "mysqli_fetch_assoc"
-                               , "mysqli_fetch_field"
-                               , "mysqli_fetch_field_direct"
-                               , "mysqli_fetch_fields"
-                               , "mysqli_fetch_lengths"
-                               , "mysqli_fetch_object"
-                               , "mysqli_fetch_row"
-                               , "mysqli_field_count"
-                               , "mysqli_field_seek"
-                               , "mysqli_field_tell"
-                               , "mysqli_free_result"
-                               , "mysqli_get_cache_stats"
-                               , "mysqli_get_client_info"
-                               , "mysqli_get_client_stats"
-                               , "mysqli_get_client_version"
-                               , "mysqli_get_host_info"
-                               , "mysqli_get_metadata"
-                               , "mysqli_get_proto_info"
-                               , "mysqli_get_server_info"
-                               , "mysqli_get_server_version"
-                               , "mysqli_info"
-                               , "mysqli_init"
-                               , "mysqli_insert_id"
-                               , "mysqli_kill"
-                               , "mysqli_more_results"
-                               , "mysqli_multi_query"
-                               , "mysqli_next_result"
-                               , "mysqli_num_fields"
-                               , "mysqli_num_rows"
-                               , "mysqli_options"
-                               , "mysqli_param_count"
-                               , "mysqli_ping"
-                               , "mysqli_prepare"
-                               , "mysqli_query"
-                               , "mysqli_real_connect"
-                               , "mysqli_real_escape_string"
-                               , "mysqli_real_query"
-                               , "mysqli_refresh"
-                               , "mysqli_report"
-                               , "mysqli_rollback"
-                               , "mysqli_select_db"
-                               , "mysqli_send_long_data"
-                               , "mysqli_set_charset"
-                               , "mysqli_set_local_infile_default"
-                               , "mysqli_set_local_infile_handler"
-                               , "mysqli_set_opt"
-                               , "mysqli_sqlstate"
-                               , "mysqli_ssl_set"
-                               , "mysqli_stat"
-                               , "mysqli_stmt_affected_rows"
-                               , "mysqli_stmt_attr_get"
-                               , "mysqli_stmt_attr_set"
-                               , "mysqli_stmt_bind_param"
-                               , "mysqli_stmt_bind_result"
-                               , "mysqli_stmt_close"
-                               , "mysqli_stmt_data_seek"
-                               , "mysqli_stmt_errno"
-                               , "mysqli_stmt_error"
-                               , "mysqli_stmt_execute"
-                               , "mysqli_stmt_fetch"
-                               , "mysqli_stmt_field_count"
-                               , "mysqli_stmt_free_result"
-                               , "mysqli_stmt_get_warnings"
-                               , "mysqli_stmt_init"
-                               , "mysqli_stmt_insert_id"
-                               , "mysqli_stmt_num_rows"
-                               , "mysqli_stmt_param_count"
-                               , "mysqli_stmt_prepare"
-                               , "mysqli_stmt_reset"
-                               , "mysqli_stmt_result_metadata"
-                               , "mysqli_stmt_send_long_data"
-                               , "mysqli_stmt_sqlstate"
-                               , "mysqli_stmt_store_result"
-                               , "mysqli_store_result"
-                               , "mysqli_thread_id"
-                               , "mysqli_thread_safe"
-                               , "mysqli_use_result"
-                               , "mysqli_warning_count"
-                               , "natcasesort"
-                               , "natsort"
-                               , "ncurses_addch"
-                               , "ncurses_addchnstr"
-                               , "ncurses_addchstr"
-                               , "ncurses_addnstr"
-                               , "ncurses_addstr"
-                               , "ncurses_assume_default_colors"
-                               , "ncurses_attroff"
-                               , "ncurses_attron"
-                               , "ncurses_attrset"
-                               , "ncurses_baudrate"
-                               , "ncurses_beep"
-                               , "ncurses_bkgd"
-                               , "ncurses_bkgdset"
-                               , "ncurses_border"
-                               , "ncurses_bottom_panel"
-                               , "ncurses_can_change_color"
-                               , "ncurses_cbreak"
-                               , "ncurses_clear"
-                               , "ncurses_clrtobot"
-                               , "ncurses_clrtoeol"
-                               , "ncurses_color_content"
-                               , "ncurses_color_set"
-                               , "ncurses_curs_set"
-                               , "ncurses_def_prog_mode"
-                               , "ncurses_def_shell_mode"
-                               , "ncurses_define_key"
-                               , "ncurses_del_panel"
-                               , "ncurses_delay_output"
-                               , "ncurses_delch"
-                               , "ncurses_deleteln"
-                               , "ncurses_delwin"
-                               , "ncurses_doupdate"
-                               , "ncurses_echo"
-                               , "ncurses_echochar"
-                               , "ncurses_end"
-                               , "ncurses_erase"
-                               , "ncurses_erasechar"
-                               , "ncurses_filter"
-                               , "ncurses_flash"
-                               , "ncurses_flushinp"
-                               , "ncurses_getch"
-                               , "ncurses_getmaxyx"
-                               , "ncurses_getmouse"
-                               , "ncurses_getyx"
-                               , "ncurses_halfdelay"
-                               , "ncurses_has_colors"
-                               , "ncurses_has_ic"
-                               , "ncurses_has_il"
-                               , "ncurses_has_key"
-                               , "ncurses_hide_panel"
-                               , "ncurses_hline"
-                               , "ncurses_inch"
-                               , "ncurses_init"
-                               , "ncurses_init_color"
-                               , "ncurses_init_pair"
-                               , "ncurses_insch"
-                               , "ncurses_insdelln"
-                               , "ncurses_insertln"
-                               , "ncurses_insstr"
-                               , "ncurses_instr"
-                               , "ncurses_isendwin"
-                               , "ncurses_keyok"
-                               , "ncurses_keypad"
-                               , "ncurses_killchar"
-                               , "ncurses_longname"
-                               , "ncurses_meta"
-                               , "ncurses_mouse_trafo"
-                               , "ncurses_mouseinterval"
-                               , "ncurses_mousemask"
-                               , "ncurses_move"
-                               , "ncurses_move_panel"
-                               , "ncurses_mvaddch"
-                               , "ncurses_mvaddchnstr"
-                               , "ncurses_mvaddchstr"
-                               , "ncurses_mvaddnstr"
-                               , "ncurses_mvaddstr"
-                               , "ncurses_mvcur"
-                               , "ncurses_mvdelch"
-                               , "ncurses_mvgetch"
-                               , "ncurses_mvhline"
-                               , "ncurses_mvinch"
-                               , "ncurses_mvvline"
-                               , "ncurses_mvwaddstr"
-                               , "ncurses_napms"
-                               , "ncurses_new_panel"
-                               , "ncurses_newpad"
-                               , "ncurses_newwin"
-                               , "ncurses_nl"
-                               , "ncurses_nocbreak"
-                               , "ncurses_noecho"
-                               , "ncurses_nonl"
-                               , "ncurses_noqiflush"
-                               , "ncurses_noraw"
-                               , "ncurses_pair_content"
-                               , "ncurses_panel_above"
-                               , "ncurses_panel_below"
-                               , "ncurses_panel_window"
-                               , "ncurses_pnoutrefresh"
-                               , "ncurses_prefresh"
-                               , "ncurses_putp"
-                               , "ncurses_qiflush"
-                               , "ncurses_raw"
-                               , "ncurses_refresh"
-                               , "ncurses_replace_panel"
-                               , "ncurses_reset_prog_mode"
-                               , "ncurses_reset_shell_mode"
-                               , "ncurses_resetty"
-                               , "ncurses_savetty"
-                               , "ncurses_scr_dump"
-                               , "ncurses_scr_init"
-                               , "ncurses_scr_restore"
-                               , "ncurses_scr_set"
-                               , "ncurses_scrl"
-                               , "ncurses_show_panel"
-                               , "ncurses_slk_attr"
-                               , "ncurses_slk_attroff"
-                               , "ncurses_slk_attron"
-                               , "ncurses_slk_attrset"
-                               , "ncurses_slk_clear"
-                               , "ncurses_slk_color"
-                               , "ncurses_slk_init"
-                               , "ncurses_slk_noutrefresh"
-                               , "ncurses_slk_refresh"
-                               , "ncurses_slk_restore"
-                               , "ncurses_slk_set"
-                               , "ncurses_slk_touch"
-                               , "ncurses_standend"
-                               , "ncurses_standout"
-                               , "ncurses_start_color"
-                               , "ncurses_termattrs"
-                               , "ncurses_termname"
-                               , "ncurses_timeout"
-                               , "ncurses_top_panel"
-                               , "ncurses_typeahead"
-                               , "ncurses_ungetch"
-                               , "ncurses_ungetmouse"
-                               , "ncurses_update_panels"
-                               , "ncurses_use_default_colors"
-                               , "ncurses_use_env"
-                               , "ncurses_use_extended_names"
-                               , "ncurses_vidattr"
-                               , "ncurses_vline"
-                               , "ncurses_waddch"
-                               , "ncurses_waddstr"
-                               , "ncurses_wattroff"
-                               , "ncurses_wattron"
-                               , "ncurses_wattrset"
-                               , "ncurses_wborder"
-                               , "ncurses_wclear"
-                               , "ncurses_wcolor_set"
-                               , "ncurses_werase"
-                               , "ncurses_wgetch"
-                               , "ncurses_whline"
-                               , "ncurses_wmouse_trafo"
-                               , "ncurses_wmove"
-                               , "ncurses_wnoutrefresh"
-                               , "ncurses_wrefresh"
-                               , "ncurses_wstandend"
-                               , "ncurses_wstandout"
-                               , "ncurses_wvline"
-                               , "next"
-                               , "ngettext"
-                               , "nl2br"
-                               , "nl_langinfo"
-                               , "notes_body"
-                               , "notes_copy_db"
-                               , "notes_create_db"
-                               , "notes_create_note"
-                               , "notes_drop_db"
-                               , "notes_find_note"
-                               , "notes_header_info"
-                               , "notes_list_msgs"
-                               , "notes_mark_read"
-                               , "notes_mark_unread"
-                               , "notes_nav_create"
-                               , "notes_search"
-                               , "notes_unread"
-                               , "notes_version"
-                               , "number_format"
-                               , "ob_clean"
-                               , "ob_end_clean"
-                               , "ob_end_flush"
-                               , "ob_flush"
-                               , "ob_get_clean"
-                               , "ob_get_contents"
-                               , "ob_get_flush"
-                               , "ob_get_length"
-                               , "ob_get_level"
-                               , "ob_get_status"
-                               , "ob_gzhandler"
-                               , "ob_iconv_handler"
-                               , "ob_implicit_flush"
-                               , "ob_list_handlers"
-                               , "ob_start"
-                               , "oci_bind_array_by_name"
-                               , "oci_bind_by_name"
-                               , "oci_cancel"
-                               , "oci_close"
-                               , "oci_commit"
-                               , "oci_connect"
-                               , "oci_define_by_name"
-                               , "oci_error"
-                               , "oci_execute"
-                               , "oci_fetch"
-                               , "oci_fetch_all"
-                               , "oci_fetch_array"
-                               , "oci_fetch_assoc"
-                               , "oci_fetch_object"
-                               , "oci_fetch_row"
-                               , "oci_field_is_null"
-                               , "oci_field_name"
-                               , "oci_field_precision"
-                               , "oci_field_scale"
-                               , "oci_field_size"
-                               , "oci_field_type"
-                               , "oci_field_type_raw"
-                               , "oci_free_statement"
-                               , "oci_internal_debug"
-                               , "oci_lob_copy"
-                               , "oci_lob_is_equal"
-                               , "oci_new_collection"
-                               , "oci_new_connect"
-                               , "oci_new_cursor"
-                               , "oci_new_descriptor"
-                               , "oci_num_fields"
-                               , "oci_num_rows"
-                               , "oci_parse"
-                               , "oci_password_change"
-                               , "oci_pconnect"
-                               , "oci_result"
-                               , "oci_rollback"
-                               , "oci_server_version"
-                               , "oci_set_action"
-                               , "oci_set_client_identifier"
-                               , "oci_set_client_info"
-                               , "oci_set_edition"
-                               , "oci_set_module_name"
-                               , "oci_set_prefetch"
-                               , "oci_statement_type"
-                               , "ocibindbyname"
-                               , "ocicancel"
-                               , "ocicollappend"
-                               , "ocicollassign"
-                               , "ocicollassignelem"
-                               , "ocicollgetelem"
-                               , "ocicollmax"
-                               , "ocicollsize"
-                               , "ocicolltrim"
-                               , "ocicolumnisnull"
-                               , "ocicolumnname"
-                               , "ocicolumnprecision"
-                               , "ocicolumnscale"
-                               , "ocicolumnsize"
-                               , "ocicolumntype"
-                               , "ocicolumntyperaw"
-                               , "ocicommit"
-                               , "ocidefinebyname"
-                               , "ocierror"
-                               , "ociexecute"
-                               , "ocifetch"
-                               , "ocifetchstatement"
-                               , "ocifreecollection"
-                               , "ocifreecursor"
-                               , "ocifreedesc"
-                               , "ocifreestatement"
-                               , "ociinternaldebug"
-                               , "ociloadlob"
-                               , "ocilogoff"
-                               , "ocilogon"
-                               , "ocinewcollection"
-                               , "ocinewcursor"
-                               , "ocinewdescriptor"
-                               , "ocinlogon"
-                               , "ocinumcols"
-                               , "ociparse"
-                               , "ociplogon"
-                               , "ociresult"
-                               , "ocirollback"
-                               , "ocirowcount"
-                               , "ocisavelob"
-                               , "ocisavelobfile"
-                               , "ociserverversion"
-                               , "ocisetprefetch"
-                               , "ocistatementtype"
-                               , "ociwritelobtofile"
-                               , "octdec"
-                               , "odbc_autocommit"
-                               , "odbc_binmode"
-                               , "odbc_close"
-                               , "odbc_close_all"
-                               , "odbc_columnprivileges"
-                               , "odbc_columns"
-                               , "odbc_commit"
-                               , "odbc_connect"
-                               , "odbc_cursor"
-                               , "odbc_data_source"
-                               , "odbc_do"
-                               , "odbc_error"
-                               , "odbc_errormsg"
-                               , "odbc_exec"
-                               , "odbc_execute"
-                               , "odbc_fetch_array"
-                               , "odbc_fetch_into"
-                               , "odbc_fetch_object"
-                               , "odbc_fetch_row"
-                               , "odbc_field_len"
-                               , "odbc_field_name"
-                               , "odbc_field_num"
-                               , "odbc_field_precision"
-                               , "odbc_field_scale"
-                               , "odbc_field_type"
-                               , "odbc_foreignkeys"
-                               , "odbc_free_result"
-                               , "odbc_gettypeinfo"
-                               , "odbc_longreadlen"
-                               , "odbc_next_result"
-                               , "odbc_num_fields"
-                               , "odbc_num_rows"
-                               , "odbc_pconnect"
-                               , "odbc_prepare"
-                               , "odbc_primarykeys"
-                               , "odbc_procedurecolumns"
-                               , "odbc_procedures"
-                               , "odbc_result"
-                               , "odbc_result_all"
-                               , "odbc_rollback"
-                               , "odbc_setoption"
-                               , "odbc_specialcolumns"
-                               , "odbc_statistics"
-                               , "odbc_tableprivileges"
-                               , "odbc_tables"
-                               , "opendir"
-                               , "openlog"
-                               , "openssl_csr_export"
-                               , "openssl_csr_export_to_file"
-                               , "openssl_csr_new"
-                               , "openssl_csr_sign"
-                               , "openssl_error_string"
-                               , "openssl_free_key"
-                               , "openssl_get_privatekey"
-                               , "openssl_get_publickey"
-                               , "openssl_open"
-                               , "openssl_pkcs7_decrypt"
-                               , "openssl_pkcs7_encrypt"
-                               , "openssl_pkcs7_sign"
-                               , "openssl_pkcs7_verify"
-                               , "openssl_pkey_export"
-                               , "openssl_pkey_export_to_file"
-                               , "openssl_pkey_free"
-                               , "openssl_pkey_get_private"
-                               , "openssl_pkey_get_public"
-                               , "openssl_pkey_new"
-                               , "openssl_private_decrypt"
-                               , "openssl_private_encrypt"
-                               , "openssl_public_decrypt"
-                               , "openssl_public_encrypt"
-                               , "openssl_seal"
-                               , "openssl_sign"
-                               , "openssl_verify"
-                               , "openssl_x509_check_private_key"
-                               , "openssl_x509_checkpurpose"
-                               , "openssl_x509_export"
-                               , "openssl_x509_export_to_file"
-                               , "openssl_x509_free"
-                               , "openssl_x509_parse"
-                               , "openssl_x509_read"
-                               , "ord"
-                               , "output_add_rewrite_var"
-                               , "output_reset_rewrite_vars"
-                               , "overload"
-                               , "ovrimos_close"
-                               , "ovrimos_commit"
-                               , "ovrimos_connect"
-                               , "ovrimos_cursor"
-                               , "ovrimos_exec"
-                               , "ovrimos_execute"
-                               , "ovrimos_fetch_into"
-                               , "ovrimos_fetch_row"
-                               , "ovrimos_field_len"
-                               , "ovrimos_field_name"
-                               , "ovrimos_field_num"
-                               , "ovrimos_field_type"
-                               , "ovrimos_free_result"
-                               , "ovrimos_longreadlen"
-                               , "ovrimos_num_fields"
-                               , "ovrimos_num_rows"
-                               , "ovrimos_prepare"
-                               , "ovrimos_result"
-                               , "ovrimos_result_all"
-                               , "ovrimos_rollback"
-                               , "pack"
-                               , "parse_ini_file"
-                               , "parse_ini_string"
-                               , "parse_str"
-                               , "parse_url"
-                               , "passthru"
-                               , "pathinfo"
-                               , "pclose"
-                               , "pcntl_alarm"
-                               , "pcntl_exec"
-                               , "pcntl_fork"
-                               , "pcntl_getpriority"
-                               , "pcntl_setpriority"
-                               , "pcntl_signal"
-                               , "pcntl_wait"
-                               , "pcntl_waitpid"
-                               , "pcntl_wexitstatus"
-                               , "pcntl_wifexited"
-                               , "pcntl_wifsignaled"
-                               , "pcntl_wifstopped"
-                               , "pcntl_wstopsig"
-                               , "pcntl_wtermsig"
-                               , "pdf_add_annotation"
-                               , "pdf_add_bookmark"
-                               , "pdf_add_launchlink"
-                               , "pdf_add_locallink"
-                               , "pdf_add_note"
-                               , "pdf_add_outline"
-                               , "pdf_add_pdflink"
-                               , "pdf_add_thumbnail"
-                               , "pdf_add_weblink"
-                               , "pdf_arc"
-                               , "pdf_arcn"
-                               , "pdf_attach_file"
-                               , "pdf_begin_page"
-                               , "pdf_begin_pattern"
-                               , "pdf_begin_template"
-                               , "pdf_circle"
-                               , "pdf_clip"
-                               , "pdf_close"
-                               , "pdf_close_image"
-                               , "pdf_close_pdi"
-                               , "pdf_close_pdi_page"
-                               , "pdf_closepath"
-                               , "pdf_closepath_fill_stroke"
-                               , "pdf_closepath_stroke"
-                               , "pdf_concat"
-                               , "pdf_continue_text"
-                               , "pdf_curveto"
-                               , "pdf_delete"
-                               , "pdf_end_page"
-                               , "pdf_end_pattern"
-                               , "pdf_end_template"
-                               , "pdf_endpath"
-                               , "pdf_fill"
-                               , "pdf_fill_stroke"
-                               , "pdf_findfont"
-                               , "pdf_get_buffer"
-                               , "pdf_get_font"
-                               , "pdf_get_fontname"
-                               , "pdf_get_fontsize"
-                               , "pdf_get_image_height"
-                               , "pdf_get_image_width"
-                               , "pdf_get_majorversion"
-                               , "pdf_get_minorversion"
-                               , "pdf_get_parameter"
-                               , "pdf_get_pdi_parameter"
-                               , "pdf_get_pdi_value"
-                               , "pdf_get_value"
-                               , "pdf_initgraphics"
-                               , "pdf_lineto"
-                               , "pdf_makespotcolor"
-                               , "pdf_moveto"
-                               , "pdf_new"
-                               , "pdf_open"
-                               , "pdf_open_ccitt"
-                               , "pdf_open_file"
-                               , "pdf_open_gif"
-                               , "pdf_open_image"
-                               , "pdf_open_image_file"
-                               , "pdf_open_jpeg"
-                               , "pdf_open_memory_image"
-                               , "pdf_open_pdi"
-                               , "pdf_open_pdi_page"
-                               , "pdf_open_png"
-                               , "pdf_open_tiff"
-                               , "pdf_place_image"
-                               , "pdf_place_pdi_page"
-                               , "pdf_rect"
-                               , "pdf_restore"
-                               , "pdf_rotate"
-                               , "pdf_save"
-                               , "pdf_scale"
-                               , "pdf_set_border_color"
-                               , "pdf_set_border_dash"
-                               , "pdf_set_border_style"
-                               , "pdf_set_char_spacing"
-                               , "pdf_set_duration"
-                               , "pdf_set_font"
-                               , "pdf_set_horiz_scaling"
-                               , "pdf_set_info"
-                               , "pdf_set_info_author"
-                               , "pdf_set_info_creator"
-                               , "pdf_set_info_keywords"
-                               , "pdf_set_info_subject"
-                               , "pdf_set_info_title"
-                               , "pdf_set_leading"
-                               , "pdf_set_parameter"
-                               , "pdf_set_text_pos"
-                               , "pdf_set_text_rendering"
-                               , "pdf_set_text_rise"
-                               , "pdf_set_transition"
-                               , "pdf_set_value"
-                               , "pdf_set_word_spacing"
-                               , "pdf_setcolor"
-                               , "pdf_setdash"
-                               , "pdf_setflat"
-                               , "pdf_setfont"
-                               , "pdf_setgray"
-                               , "pdf_setgray_fill"
-                               , "pdf_setgray_stroke"
-                               , "pdf_setlinecap"
-                               , "pdf_setlinejoin"
-                               , "pdf_setlinewidth"
-                               , "pdf_setmatrix"
-                               , "pdf_setmiterlimit"
-                               , "pdf_setpolydash"
-                               , "pdf_setrgbcolor"
-                               , "pdf_setrgbcolor_fill"
-                               , "pdf_setrgbcolor_stroke"
-                               , "pdf_show"
-                               , "pdf_show_boxed"
-                               , "pdf_show_xy"
-                               , "pdf_skew"
-                               , "pdf_stringwidth"
-                               , "pdf_stroke"
-                               , "pdf_translate"
-                               , "pdo_drivers"
-                               , "pfpro_cleanup"
-                               , "pfpro_init"
-                               , "pfpro_process"
-                               , "pfpro_process_raw"
-                               , "pfpro_version"
-                               , "pfsockopen"
-                               , "pg_affected_rows"
-                               , "pg_cancel_query"
-                               , "pg_client_encoding"
-                               , "pg_clientencoding"
-                               , "pg_close"
-                               , "pg_cmdtuples"
-                               , "pg_connect"
-                               , "pg_connection_busy"
-                               , "pg_connection_reset"
-                               , "pg_connection_status"
-                               , "pg_convert"
-                               , "pg_copy_from"
-                               , "pg_copy_to"
-                               , "pg_dbname"
-                               , "pg_delete"
-                               , "pg_end_copy"
-                               , "pg_errormessage"
-                               , "pg_escape_bytea"
-                               , "pg_escape_string"
-                               , "pg_exec"
-                               , "pg_fetch_all"
-                               , "pg_fetch_array"
-                               , "pg_fetch_assoc"
-                               , "pg_fetch_object"
-                               , "pg_fetch_result"
-                               , "pg_fetch_row"
-                               , "pg_field_is_null"
-                               , "pg_field_name"
-                               , "pg_field_num"
-                               , "pg_field_prtlen"
-                               , "pg_field_size"
-                               , "pg_field_type"
-                               , "pg_fieldisnull"
-                               , "pg_fieldname"
-                               , "pg_fieldnum"
-                               , "pg_fieldprtlen"
-                               , "pg_fieldsize"
-                               , "pg_fieldtype"
-                               , "pg_free_result"
-                               , "pg_freeresult"
-                               , "pg_get_notify"
-                               , "pg_get_pid"
-                               , "pg_get_result"
-                               , "pg_getlastoid"
-                               , "pg_host"
-                               , "pg_insert"
-                               , "pg_last_error"
-                               , "pg_last_notice"
-                               , "pg_last_oid"
-                               , "pg_lo_close"
-                               , "pg_lo_create"
-                               , "pg_lo_export"
-                               , "pg_lo_import"
-                               , "pg_lo_open"
-                               , "pg_lo_read"
-                               , "pg_lo_read_all"
-                               , "pg_lo_seek"
-                               , "pg_lo_tell"
-                               , "pg_lo_unlink"
-                               , "pg_lo_write"
-                               , "pg_loclose"
-                               , "pg_locreate"
-                               , "pg_loexport"
-                               , "pg_loimport"
-                               , "pg_loopen"
-                               , "pg_loread"
-                               , "pg_loreadall"
-                               , "pg_lounlink"
-                               , "pg_lowrite"
-                               , "pg_meta_data"
-                               , "pg_num_fields"
-                               , "pg_num_rows"
-                               , "pg_numfields"
-                               , "pg_numrows"
-                               , "pg_options"
-                               , "pg_parameter_status"
-                               , "pg_pconnect"
-                               , "pg_ping"
-                               , "pg_port"
-                               , "pg_put_line"
-                               , "pg_query"
-                               , "pg_result"
-                               , "pg_result_error"
-                               , "pg_result_seek"
-                               , "pg_result_status"
-                               , "pg_select"
-                               , "pg_send_query"
-                               , "pg_set_client_encoding"
-                               , "pg_setclientencoding"
-                               , "pg_trace"
-                               , "pg_tty"
-                               , "pg_unescape_bytea"
-                               , "pg_untrace"
-                               , "pg_update"
-                               , "pg_version"
-                               , "php_egg_logo_guid"
-                               , "php_ini_loaded_file"
-                               , "php_ini_scanned_files"
-                               , "php_logo_guid"
-                               , "php_real_logo_guid"
-                               , "php_sapi_name"
-                               , "php_strip_whitespace"
-                               , "php_uname"
-                               , "phpcredits"
-                               , "phpinfo"
-                               , "phpversion"
-                               , "pi"
-                               , "png2wbmp"
-                               , "popen"
-                               , "pos"
-                               , "posix_ctermid"
-                               , "posix_errno"
-                               , "posix_get_last_error"
-                               , "posix_getcwd"
-                               , "posix_getegid"
-                               , "posix_geteuid"
-                               , "posix_getgid"
-                               , "posix_getgrgid"
-                               , "posix_getgrnam"
-                               , "posix_getgroups"
-                               , "posix_getlogin"
-                               , "posix_getpgid"
-                               , "posix_getpgrp"
-                               , "posix_getpid"
-                               , "posix_getppid"
-                               , "posix_getpwnam"
-                               , "posix_getpwuid"
-                               , "posix_getrlimit"
-                               , "posix_getsid"
-                               , "posix_getuid"
-                               , "posix_isatty"
-                               , "posix_kill"
-                               , "posix_mkfifo"
-                               , "posix_setegid"
-                               , "posix_seteuid"
-                               , "posix_setgid"
-                               , "posix_setpgid"
-                               , "posix_setsid"
-                               , "posix_setuid"
-                               , "posix_strerror"
-                               , "posix_times"
-                               , "posix_ttyname"
-                               , "posix_uname"
-                               , "pow"
-                               , "preg_filter"
-                               , "preg_grep"
-                               , "preg_last_error"
-                               , "preg_match"
-                               , "preg_match_all"
-                               , "preg_quote"
-                               , "preg_replace"
-                               , "preg_replace_callback"
-                               , "preg_split"
-                               , "prev"
-                               , "print"
-                               , "print_r"
-                               , "printer_abort"
-                               , "printer_close"
-                               , "printer_create_brush"
-                               , "printer_create_dc"
-                               , "printer_create_font"
-                               , "printer_create_pen"
-                               , "printer_delete_brush"
-                               , "printer_delete_dc"
-                               , "printer_delete_font"
-                               , "printer_delete_pen"
-                               , "printer_draw_bmp"
-                               , "printer_draw_chord"
-                               , "printer_draw_elipse"
-                               , "printer_draw_line"
-                               , "printer_draw_pie"
-                               , "printer_draw_rectangle"
-                               , "printer_draw_roundrect"
-                               , "printer_draw_text"
-                               , "printer_end_doc"
-                               , "printer_end_page"
-                               , "printer_get_option"
-                               , "printer_list"
-                               , "printer_logical_fontheight"
-                               , "printer_open"
-                               , "printer_select_brush"
-                               , "printer_select_font"
-                               , "printer_select_pen"
-                               , "printer_set_option"
-                               , "printer_start_doc"
-                               , "printer_start_page"
-                               , "printer_write"
-                               , "printf"
-                               , "proc_close"
-                               , "proc_get_status"
-                               , "proc_nice"
-                               , "proc_open"
-                               , "proc_terminate"
-                               , "property_exists"
-                               , "pspell_add_to_personal"
-                               , "pspell_add_to_session"
-                               , "pspell_check"
-                               , "pspell_clear_session"
-                               , "pspell_config_create"
-                               , "pspell_config_ignore"
-                               , "pspell_config_mode"
-                               , "pspell_config_personal"
-                               , "pspell_config_repl"
-                               , "pspell_config_runtogether"
-                               , "pspell_config_save_repl"
-                               , "pspell_new"
-                               , "pspell_new_config"
-                               , "pspell_new_personal"
-                               , "pspell_save_wordlist"
-                               , "pspell_store_replacement"
-                               , "pspell_suggest"
-                               , "putenv"
-                               , "qdom_error"
-                               , "qdom_tree"
-                               , "quoted_printable_decode"
-                               , "quoted_printable_encode"
-                               , "quotemeta"
-                               , "rad2deg"
-                               , "rand"
-                               , "range"
-                               , "rawurldecode"
-                               , "rawurlencode"
-                               , "read_exif_data"
-                               , "readdir"
-                               , "readfile"
-                               , "readgzfile"
-                               , "readline"
-                               , "readline_add_history"
-                               , "readline_clear_history"
-                               , "readline_completion_function"
-                               , "readline_info"
-                               , "readline_list_history"
-                               , "readline_read_history"
-                               , "readline_write_history"
-                               , "readlink"
-                               , "realpath"
-                               , "realpath_cache_get"
-                               , "realpath_cache_size"
-                               , "recode"
-                               , "recode_file"
-                               , "recode_string"
-                               , "register_shutdown_function"
-                               , "register_tick_function"
-                               , "rename"
-                               , "require"
-                               , "require_once"
-                               , "reset"
-                               , "restore_error_handler"
-                               , "restore_exception_handler"
-                               , "restore_include_path"
-                               , "rewind"
-                               , "rewinddir"
-                               , "rmdir"
-                               , "round"
-                               , "rsort"
-                               , "rtrim"
-                               , "scandir"
-                               , "sem_acquire"
-                               , "sem_get"
-                               , "sem_release"
-                               , "sem_remove"
-                               , "serialize"
-                               , "sesam_affected_rows"
-                               , "sesam_commit"
-                               , "sesam_connect"
-                               , "sesam_diagnostic"
-                               , "sesam_disconnect"
-                               , "sesam_errormsg"
-                               , "sesam_execimm"
-                               , "sesam_fetch_array"
-                               , "sesam_fetch_result"
-                               , "sesam_fetch_row"
-                               , "sesam_field_array"
-                               , "sesam_field_name"
-                               , "sesam_free_result"
-                               , "sesam_num_fields"
-                               , "sesam_query"
-                               , "sesam_rollback"
-                               , "sesam_seek_row"
-                               , "sesam_settransaction"
-                               , "session_cache_expire"
-                               , "session_cache_limiter"
-                               , "session_commit"
-                               , "session_decode"
-                               , "session_destroy"
-                               , "session_encode"
-                               , "session_get_cookie_params"
-                               , "session_id"
-                               , "session_is_registered"
-                               , "session_module_name"
-                               , "session_name"
-                               , "session_regenerate_id"
-                               , "session_register"
-                               , "session_save_path"
-                               , "session_set_cookie_params"
-                               , "session_set_save_handler"
-                               , "session_start"
-                               , "session_unregister"
-                               , "session_unset"
-                               , "session_write_close"
-                               , "set_error_handler"
-                               , "set_exception_handler"
-                               , "set_file_buffer"
-                               , "set_include_path"
-                               , "set_magic_quotes_runtime"
-                               , "set_socket_blocking"
-                               , "set_time_limit"
-                               , "setcookie"
-                               , "setlocale"
-                               , "setrawcookie"
-                               , "settype"
-                               , "sha1"
-                               , "sha1_file"
-                               , "sha256"
-                               , "sha256_file"
-                               , "shell_exec"
-                               , "shm_attach"
-                               , "shm_detach"
-                               , "shm_get_var"
-                               , "shm_put_var"
-                               , "shm_remove"
-                               , "shm_remove_var"
-                               , "shmop_close"
-                               , "shmop_delete"
-                               , "shmop_open"
-                               , "shmop_read"
-                               , "shmop_size"
-                               , "shmop_write"
-                               , "show_source"
-                               , "shuffle"
-                               , "similar_text"
-                               , "simplexml_import_dom"
-                               , "simplexml_load_file"
-                               , "simplexml_load_string"
-                               , "sin"
-                               , "sinh"
-                               , "sizeof"
-                               , "sleep"
-                               , "snmp3_get"
-                               , "snmp3_getnext"
-                               , "snmp3_real_walk"
-                               , "snmp3_set"
-                               , "snmp3_walk"
-                               , "snmp_get_quick_print"
-                               , "snmp_get_valueretrieval"
-                               , "snmp_read_mib"
-                               , "snmp_set_enum_print"
-                               , "snmp_set_oid_numeric_print"
-                               , "snmp_set_quick_print"
-                               , "snmp_set_valueretrieval"
-                               , "snmpget"
-                               , "snmpgetnext"
-                               , "snmprealwalk"
-                               , "snmpset"
-                               , "snmpwalk"
-                               , "snmpwalkoid"
-                               , "socket_accept"
-                               , "socket_bind"
-                               , "socket_clear_error"
-                               , "socket_close"
-                               , "socket_connect"
-                               , "socket_create"
-                               , "socket_create_listen"
-                               , "socket_create_pair"
-                               , "socket_get_option"
-                               , "socket_get_status"
-                               , "socket_getopt"
-                               , "socket_getpeername"
-                               , "socket_getsockname"
-                               , "socket_last_error"
-                               , "socket_listen"
-                               , "socket_read"
-                               , "socket_recv"
-                               , "socket_recvfrom"
-                               , "socket_select"
-                               , "socket_send"
-                               , "socket_sendto"
-                               , "socket_set_block"
-                               , "socket_set_blocking"
-                               , "socket_set_nonblock"
-                               , "socket_set_option"
-                               , "socket_set_timeout"
-                               , "socket_setopt"
-                               , "socket_shutdown"
-                               , "socket_strerror"
-                               , "socket_write"
-                               , "sort"
-                               , "soundex"
-                               , "spl_autoload"
-                               , "spl_autoload_call"
-                               , "spl_autoload_extensions"
-                               , "spl_autoload_functions"
-                               , "spl_autoload_register"
-                               , "spl_autoload_unregister"
-                               , "spl_classes"
-                               , "spl_object_hash"
-                               , "sprintf"
-                               , "sqlite_array_query"
-                               , "sqlite_busy_timeout"
-                               , "sqlite_changes"
-                               , "sqlite_close"
-                               , "sqlite_column"
-                               , "sqlite_create_aggregate"
-                               , "sqlite_create_function"
-                               , "sqlite_current"
-                               , "sqlite_error_string"
-                               , "sqlite_escape_string"
-                               , "sqlite_exec"
-                               , "sqlite_factory"
-                               , "sqlite_fetch_all"
-                               , "sqlite_fetch_array"
-                               , "sqlite_fetch_column_types"
-                               , "sqlite_fetch_object"
-                               , "sqlite_fetch_single"
-                               , "sqlite_fetch_string"
-                               , "sqlite_field_name"
-                               , "sqlite_has_more"
-                               , "sqlite_has_prev"
-                               , "sqlite_last_error"
-                               , "sqlite_last_insert_rowid"
-                               , "sqlite_libencoding"
-                               , "sqlite_libversion"
-                               , "sqlite_next"
-                               , "sqlite_num_fields"
-                               , "sqlite_num_rows"
-                               , "sqlite_open"
-                               , "sqlite_popen"
-                               , "sqlite_prev"
-                               , "sqlite_query"
-                               , "sqlite_rewind"
-                               , "sqlite_seek"
-                               , "sqlite_single_query"
-                               , "sqlite_udf_decode_binary"
-                               , "sqlite_udf_encode_binary"
-                               , "sqlite_unbuffered_query"
-                               , "sqlite_valid"
-                               , "sqrt"
-                               , "srand"
-                               , "sscanf"
-                               , "stat"
-                               , "str_getcsv"
-                               , "str_ireplace"
-                               , "str_pad"
-                               , "str_repeat"
-                               , "str_replace"
-                               , "str_rot13"
-                               , "str_shuffle"
-                               , "str_split"
-                               , "str_word_count"
-                               , "strcasecmp"
-                               , "strchr"
-                               , "strcmp"
-                               , "strcoll"
-                               , "strcspn"
-                               , "stream_bucket_append"
-                               , "stream_bucket_make_writeable"
-                               , "stream_bucket_new"
-                               , "stream_bucket_prepend"
-                               , "stream_context_create"
-                               , "stream_context_get_default"
-                               , "stream_context_get_options"
-                               , "stream_context_get_params"
-                               , "stream_context_set_default"
-                               , "stream_context_set_option"
-                               , "stream_context_set_params"
-                               , "stream_copy_to_stream"
-                               , "stream_filter_append"
-                               , "stream_filter_prepend"
-                               , "stream_filter_register"
-                               , "stream_filter_remove"
-                               , "stream_get_contents"
-                               , "stream_get_filters"
-                               , "stream_get_line"
-                               , "stream_get_meta_data"
-                               , "stream_get_transports"
-                               , "stream_get_wrappers"
-                               , "stream_is_local"
-                               , "stream_register_wrapper"
-                               , "stream_resolve_include_path"
-                               , "stream_select"
-                               , "stream_set_blocking"
-                               , "stream_set_read_buffer"
-                               , "stream_set_timeout"
-                               , "stream_set_write_buffer"
-                               , "stream_socket_accept"
-                               , "stream_socket_client"
-                               , "stream_socket_enable_crypto"
-                               , "stream_socket_get_name"
-                               , "stream_socket_pair"
-                               , "stream_socket_recvfrom"
-                               , "stream_socket_sendto"
-                               , "stream_socket_server"
-                               , "stream_socket_shutdown"
-                               , "stream_supports_lock"
-                               , "stream_wrapper_register"
-                               , "stream_wrapper_restore"
-                               , "stream_wrapper_unregister"
-                               , "strftime"
-                               , "strip_tags"
-                               , "stripcslashes"
-                               , "stripos"
-                               , "stripslashes"
-                               , "stristr"
-                               , "strlen"
-                               , "strnatcasecmp"
-                               , "strnatcmp"
-                               , "strncasecmp"
-                               , "strncmp"
-                               , "strpbrk"
-                               , "strpos"
-                               , "strptime"
-                               , "strrchr"
-                               , "strrev"
-                               , "strripos"
-                               , "strrpos"
-                               , "strspn"
-                               , "strstr"
-                               , "strtok"
-                               , "strtolower"
-                               , "strtotime"
-                               , "strtoupper"
-                               , "strtr"
-                               , "strval"
-                               , "substr"
-                               , "substr_compare"
-                               , "substr_count"
-                               , "substr_replace"
-                               , "suhosin_encrypt_cookie"
-                               , "suhosin_get_raw_cookies"
-                               , "swf_actiongeturl"
-                               , "swf_actiongotoframe"
-                               , "swf_actiongotolabel"
-                               , "swf_actionnextframe"
-                               , "swf_actionplay"
-                               , "swf_actionprevframe"
-                               , "swf_actionsettarget"
-                               , "swf_actionstop"
-                               , "swf_actiontogglequality"
-                               , "swf_actionwaitforframe"
-                               , "swf_addbuttonrecord"
-                               , "swf_addcolor"
-                               , "swf_closefile"
-                               , "swf_definebitmap"
-                               , "swf_definefont"
-                               , "swf_defineline"
-                               , "swf_definepoly"
-                               , "swf_definerect"
-                               , "swf_definetext"
-                               , "swf_endbutton"
-                               , "swf_enddoaction"
-                               , "swf_endshape"
-                               , "swf_endsymbol"
-                               , "swf_fontsize"
-                               , "swf_fontslant"
-                               , "swf_fonttracking"
-                               , "swf_getbitmapinfo"
-                               , "swf_getfontinfo"
-                               , "swf_getframe"
-                               , "swf_labelframe"
-                               , "swf_lookat"
-                               , "swf_modifyobject"
-                               , "swf_mulcolor"
-                               , "swf_nextid"
-                               , "swf_oncondition"
-                               , "swf_openfile"
-                               , "swf_ortho"
-                               , "swf_ortho2"
-                               , "swf_perspective"
-                               , "swf_placeobject"
-                               , "swf_polarview"
-                               , "swf_popmatrix"
-                               , "swf_posround"
-                               , "swf_pushmatrix"
-                               , "swf_removeobject"
-                               , "swf_rotate"
-                               , "swf_scale"
-                               , "swf_setfont"
-                               , "swf_setframe"
-                               , "swf_shapearc"
-                               , "swf_shapecurveto"
-                               , "swf_shapecurveto3"
-                               , "swf_shapefillbitmapclip"
-                               , "swf_shapefillbitmaptile"
-                               , "swf_shapefilloff"
-                               , "swf_shapefillsolid"
-                               , "swf_shapelinesolid"
-                               , "swf_shapelineto"
-                               , "swf_shapemoveto"
-                               , "swf_showframe"
-                               , "swf_startbutton"
-                               , "swf_startdoaction"
-                               , "swf_startshape"
-                               , "swf_startsymbol"
-                               , "swf_textwidth"
-                               , "swf_translate"
-                               , "swf_viewport"
-                               , "swfaction"
-                               , "swfbitmap"
-                               , "swfbitmap.getheight"
-                               , "swfbitmap.getwidth"
-                               , "swfbutton"
-                               , "swfbutton.addaction"
-                               , "swfbutton.addshape"
-                               , "swfbutton.setaction"
-                               , "swfbutton.setdown"
-                               , "swfbutton.sethit"
-                               , "swfbutton.setover"
-                               , "swfbutton.setup"
-                               , "swfbutton_keypress"
-                               , "swfdisplayitem"
-                               , "swfdisplayitem.addcolor"
-                               , "swfdisplayitem.move"
-                               , "swfdisplayitem.moveto"
-                               , "swfdisplayitem.multcolor"
-                               , "swfdisplayitem.remove"
-                               , "swfdisplayitem.rotate"
-                               , "swfdisplayitem.rotateto"
-                               , "swfdisplayitem.scale"
-                               , "swfdisplayitem.scaleto"
-                               , "swfdisplayitem.setdepth"
-                               , "swfdisplayitem.setname"
-                               , "swfdisplayitem.setratio"
-                               , "swfdisplayitem.skewx"
-                               , "swfdisplayitem.skewxto"
-                               , "swfdisplayitem.skewy"
-                               , "swfdisplayitem.skewyto"
-                               , "swffill"
-                               , "swffill.moveto"
-                               , "swffill.rotateto"
-                               , "swffill.scaleto"
-                               , "swffill.skewxto"
-                               , "swffill.skewyto"
-                               , "swffont"
-                               , "swffont.getwidth"
-                               , "swfgradient"
-                               , "swfgradient.addentry"
-                               , "swfmorph"
-                               , "swfmorph.getshape1"
-                               , "swfmorph.getshape2"
-                               , "swfmovie"
-                               , "swfmovie.add"
-                               , "swfmovie.nextframe"
-                               , "swfmovie.output"
-                               , "swfmovie.remove"
-                               , "swfmovie.save"
-                               , "swfmovie.setbackground"
-                               , "swfmovie.setdimension"
-                               , "swfmovie.setframes"
-                               , "swfmovie.setrate"
-                               , "swfmovie.streammp3"
-                               , "swfshape"
-                               , "swfshape.addfill"
-                               , "swfshape.drawcurve"
-                               , "swfshape.drawcurveto"
-                               , "swfshape.drawline"
-                               , "swfshape.drawlineto"
-                               , "swfshape.movepen"
-                               , "swfshape.movepento"
-                               , "swfshape.setleftfill"
-                               , "swfshape.setline"
-                               , "swfshape.setrightfill"
-                               , "swfsprite"
-                               , "swfsprite.add"
-                               , "swfsprite.nextframe"
-                               , "swfsprite.remove"
-                               , "swfsprite.setframes"
-                               , "swftext"
-                               , "swftext.addstring"
-                               , "swftext.getwidth"
-                               , "swftext.moveto"
-                               , "swftext.setcolor"
-                               , "swftext.setfont"
-                               , "swftext.setheight"
-                               , "swftext.setspacing"
-                               , "swftextfield"
-                               , "swftextfield.addstring"
-                               , "swftextfield.align"
-                               , "swftextfield.setbounds"
-                               , "swftextfield.setcolor"
-                               , "swftextfield.setfont"
-                               , "swftextfield.setheight"
-                               , "swftextfield.setindentation"
-                               , "swftextfield.setleftmargin"
-                               , "swftextfield.setlinespacing"
-                               , "swftextfield.setmargins"
-                               , "swftextfield.setname"
-                               , "swftextfield.setrightmargin"
-                               , "sybase_affected_rows"
-                               , "sybase_close"
-                               , "sybase_connect"
-                               , "sybase_data_seek"
-                               , "sybase_fetch_array"
-                               , "sybase_fetch_field"
-                               , "sybase_fetch_object"
-                               , "sybase_fetch_row"
-                               , "sybase_field_seek"
-                               , "sybase_free_result"
-                               , "sybase_get_last_message"
-                               , "sybase_min_client_severity"
-                               , "sybase_min_error_severity"
-                               , "sybase_min_message_severity"
-                               , "sybase_min_server_severity"
-                               , "sybase_num_fields"
-                               , "sybase_num_rows"
-                               , "sybase_pconnect"
-                               , "sybase_query"
-                               , "sybase_result"
-                               , "sybase_select_db"
-                               , "symlink"
-                               , "sys_get_temp_dir"
-                               , "sys_getloadavg"
-                               , "syslog"
-                               , "system"
-                               , "tan"
-                               , "tanh"
-                               , "tempnam"
-                               , "textdomain"
-                               , "time"
-                               , "time_nanosleep"
-                               , "time_sleep_until"
-                               , "timezone_abbreviations_list"
-                               , "timezone_identifiers_list"
-                               , "timezone_location_get"
-                               , "timezone_name_from_abbr"
-                               , "timezone_name_get"
-                               , "timezone_offset_get"
-                               , "timezone_open"
-                               , "timezone_transitions_get"
-                               , "timezone_version_get"
-                               , "tmpfile"
-                               , "token_get_all"
-                               , "token_name"
-                               , "touch"
-                               , "trigger_error"
-                               , "trim"
-                               , "uasort"
-                               , "ucfirst"
-                               , "ucwords"
-                               , "udm_add_search_limit"
-                               , "udm_alloc_agent"
-                               , "udm_api_version"
-                               , "udm_cat_list"
-                               , "udm_cat_path"
-                               , "udm_check_charset"
-                               , "udm_check_stored"
-                               , "udm_clear_search_limits"
-                               , "udm_close_stored"
-                               , "udm_crc32"
-                               , "udm_errno"
-                               , "udm_error"
-                               , "udm_find"
-                               , "udm_free_agent"
-                               , "udm_free_ispell_data"
-                               , "udm_free_res"
-                               , "udm_get_doc_count"
-                               , "udm_get_res_field"
-                               , "udm_get_res_param"
-                               , "udm_load_ispell_data"
-                               , "udm_open_stored"
-                               , "udm_set_agent_param"
-                               , "uksort"
-                               , "umask"
-                               , "uniqid"
-                               , "unixtojd"
-                               , "unlink"
-                               , "unpack"
-                               , "unregister_tick_function"
-                               , "unserialize"
-                               , "unset"
-                               , "urldecode"
-                               , "urlencode"
-                               , "use_soap_error_handler"
-                               , "user_error"
-                               , "usleep"
-                               , "usort"
-                               , "utf8_decode"
-                               , "utf8_encode"
-                               , "var_dump"
-                               , "var_export"
-                               , "variant"
-                               , "version_compare"
-                               , "vfprintf"
-                               , "virtual"
-                               , "vpopmail_add_alias_domain"
-                               , "vpopmail_add_alias_domain_ex"
-                               , "vpopmail_add_domain"
-                               , "vpopmail_add_domain_ex"
-                               , "vpopmail_add_user"
-                               , "vpopmail_alias_add"
-                               , "vpopmail_alias_del"
-                               , "vpopmail_alias_del_domain"
-                               , "vpopmail_alias_get"
-                               , "vpopmail_alias_get_all"
-                               , "vpopmail_auth_user"
-                               , "vpopmail_del_domain"
-                               , "vpopmail_del_domain_ex"
-                               , "vpopmail_del_user"
-                               , "vpopmail_error"
-                               , "vpopmail_passwd"
-                               , "vpopmail_set_user_quota"
-                               , "vprintf"
-                               , "vsprintf"
-                               , "w32api_deftype"
-                               , "w32api_init_dtype"
-                               , "w32api_invoke_function"
-                               , "w32api_register_function"
-                               , "w32api_set_call_method"
-                               , "wddx_add_vars"
-                               , "wddx_deserialize"
-                               , "wddx_packet_end"
-                               , "wddx_packet_start"
-                               , "wddx_serialize_value"
-                               , "wddx_serialize_vars"
-                               , "wordwrap"
-                               , "xdebug_break"
-                               , "xdebug_call_class"
-                               , "xdebug_call_file"
-                               , "xdebug_call_function"
-                               , "xdebug_call_line"
-                               , "xdebug_clear_aggr_profiling_data"
-                               , "xdebug_debug_zval"
-                               , "xdebug_debug_zval_stdout"
-                               , "xdebug_disable"
-                               , "xdebug_dump_aggr_profiling_data"
-                               , "xdebug_dump_superglobals"
-                               , "xdebug_enable"
-                               , "xdebug_get_code_coverage"
-                               , "xdebug_get_collected_errors"
-                               , "xdebug_get_declared_vars"
-                               , "xdebug_get_formatted_function_stack"
-                               , "xdebug_get_function_count"
-                               , "xdebug_get_function_stack"
-                               , "xdebug_get_headers"
-                               , "xdebug_get_profiler_filename"
-                               , "xdebug_get_stack_depth"
-                               , "xdebug_get_tracefile_name"
-                               , "xdebug_is_enabled"
-                               , "xdebug_memory_usage"
-                               , "xdebug_peak_memory_usage"
-                               , "xdebug_print_function_stack"
-                               , "xdebug_start_code_coverage"
-                               , "xdebug_start_error_collection"
-                               , "xdebug_start_trace"
-                               , "xdebug_stop_code_coverage"
-                               , "xdebug_stop_error_collection"
-                               , "xdebug_stop_trace"
-                               , "xdebug_time_index"
-                               , "xdebug_var_dump"
-                               , "xml_error_string"
-                               , "xml_get_current_byte_index"
-                               , "xml_get_current_column_number"
-                               , "xml_get_current_line_number"
-                               , "xml_get_error_code"
-                               , "xml_parse"
-                               , "xml_parse_into_struct"
-                               , "xml_parser_create"
-                               , "xml_parser_create_ns"
-                               , "xml_parser_free"
-                               , "xml_parser_get_option"
-                               , "xml_parser_set_option"
-                               , "xml_set_character_data_handler"
-                               , "xml_set_default_handler"
-                               , "xml_set_element_handler"
-                               , "xml_set_end_namespace_decl_handler"
-                               , "xml_set_external_entity_ref_handler"
-                               , "xml_set_notation_decl_handler"
-                               , "xml_set_object"
-                               , "xml_set_processing_instruction_handler"
-                               , "xml_set_start_namespace_decl_handler"
-                               , "xml_set_unparsed_entity_decl_handler"
-                               , "xmldoc"
-                               , "xmldocfile"
-                               , "xmlrpc_decode"
-                               , "xmlrpc_decode_request"
-                               , "xmlrpc_encode"
-                               , "xmlrpc_encode_request"
-                               , "xmlrpc_get_type"
-                               , "xmlrpc_is_fault"
-                               , "xmlrpc_parse_method_descriptions"
-                               , "xmlrpc_server_add_introspection_data"
-                               , "xmlrpc_server_call_method"
-                               , "xmlrpc_server_create"
-                               , "xmlrpc_server_destroy"
-                               , "xmlrpc_server_register_introspection_callback"
-                               , "xmlrpc_server_register_method"
-                               , "xmlrpc_set_type"
-                               , "xmltree"
-                               , "xmlwriter_end_attribute"
-                               , "xmlwriter_end_cdata"
-                               , "xmlwriter_end_comment"
-                               , "xmlwriter_end_document"
-                               , "xmlwriter_end_dtd"
-                               , "xmlwriter_end_dtd_attlist"
-                               , "xmlwriter_end_dtd_element"
-                               , "xmlwriter_end_dtd_entity"
-                               , "xmlwriter_end_element"
-                               , "xmlwriter_end_pi"
-                               , "xmlwriter_flush"
-                               , "xmlwriter_full_end_element"
-                               , "xmlwriter_open_memory"
-                               , "xmlwriter_open_uri"
-                               , "xmlwriter_output_memory"
-                               , "xmlwriter_set_indent"
-                               , "xmlwriter_set_indent_string"
-                               , "xmlwriter_start_attribute"
-                               , "xmlwriter_start_attribute_ns"
-                               , "xmlwriter_start_cdata"
-                               , "xmlwriter_start_comment"
-                               , "xmlwriter_start_document"
-                               , "xmlwriter_start_dtd"
-                               , "xmlwriter_start_dtd_attlist"
-                               , "xmlwriter_start_dtd_element"
-                               , "xmlwriter_start_dtd_entity"
-                               , "xmlwriter_start_element"
-                               , "xmlwriter_start_element_ns"
-                               , "xmlwriter_start_pi"
-                               , "xmlwriter_text"
-                               , "xmlwriter_write_attribute"
-                               , "xmlwriter_write_attribute_ns"
-                               , "xmlwriter_write_cdata"
-                               , "xmlwriter_write_comment"
-                               , "xmlwriter_write_dtd"
-                               , "xmlwriter_write_dtd_attlist"
-                               , "xmlwriter_write_dtd_element"
-                               , "xmlwriter_write_dtd_entity"
-                               , "xmlwriter_write_element"
-                               , "xmlwriter_write_element_ns"
-                               , "xmlwriter_write_pi"
-                               , "xmlwriter_write_raw"
-                               , "xpath_eval"
-                               , "xpath_eval_expression"
-                               , "xpath_new_context"
-                               , "xptr_eval"
-                               , "xptr_new_context"
-                               , "xslt_create"
-                               , "xslt_errno"
-                               , "xslt_error"
-                               , "xslt_free"
-                               , "xslt_process"
-                               , "xslt_set_base"
-                               , "xslt_set_encoding"
-                               , "xslt_set_error_handler"
-                               , "xslt_set_log"
-                               , "xslt_set_sax_handler"
-                               , "xslt_set_sax_handlers"
-                               , "xslt_set_scheme_handler"
-                               , "xslt_set_scheme_handlers"
-                               , "yaz_addinfo"
-                               , "yaz_ccl_conf"
-                               , "yaz_ccl_parse"
-                               , "yaz_close"
-                               , "yaz_connect"
-                               , "yaz_database"
-                               , "yaz_element"
-                               , "yaz_errno"
-                               , "yaz_error"
-                               , "yaz_hits"
-                               , "yaz_itemorder"
-                               , "yaz_present"
-                               , "yaz_range"
-                               , "yaz_record"
-                               , "yaz_scan"
-                               , "yaz_scan_result"
-                               , "yaz_search"
-                               , "yaz_sort"
-                               , "yaz_syntax"
-                               , "yaz_wait"
-                               , "yp_all"
-                               , "yp_cat"
-                               , "yp_err_string"
-                               , "yp_errno"
-                               , "yp_first"
-                               , "yp_get_default_domain"
-                               , "yp_master"
-                               , "yp_match"
-                               , "yp_next"
-                               , "yp_order"
-                               , "zend_logo_guid"
-                               , "zend_version"
-                               , "zip_close"
-                               , "zip_entry_close"
-                               , "zip_entry_compressedsize"
-                               , "zip_entry_compressionmethod"
-                               , "zip_entry_filesize"
-                               , "zip_entry_name"
-                               , "zip_entry_open"
-                               , "zip_entry_read"
-                               , "zip_open"
-                               , "zip_read"
-                               , "zlib_get_coding_type"
-                               ])
-                      , rAttribute = FunctionTok
-                      , 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
-                               [ "__autoload"
-                               , "__call"
-                               , "__clone"
-                               , "__construct"
-                               , "__destruct"
-                               , "__get"
-                               , "__halt_compiler"
-                               , "__isset"
-                               , "__set"
-                               , "__set_state"
-                               , "__sleep"
-                               , "__toString"
-                               , "__unset"
-                               , "__wakeup"
-                               ])
-                      , rAttribute = FunctionTok
-                      , 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
-                               [ "__CLASS__"
-                               , "__COMPILER_HALT_OFFSET__"
-                               , "__DIR__"
-                               , "__FILE__"
-                               , "__FUNCTION__"
-                               , "__LINE__"
-                               , "__METHOD__"
-                               , "__NAMESPACE__"
-                               , "__TRAIT__"
-                               , "ABDAY_1"
-                               , "ABDAY_2"
-                               , "ABDAY_3"
-                               , "ABDAY_4"
-                               , "ABDAY_5"
-                               , "ABDAY_6"
-                               , "ABDAY_7"
-                               , "ABMON_1"
-                               , "ABMON_10"
-                               , "ABMON_11"
-                               , "ABMON_12"
-                               , "ABMON_2"
-                               , "ABMON_3"
-                               , "ABMON_4"
-                               , "ABMON_5"
-                               , "ABMON_6"
-                               , "ABMON_7"
-                               , "ABMON_8"
-                               , "ABMON_9"
-                               , "AF_INET"
-                               , "AF_INET6"
-                               , "AF_UNIX"
-                               , "ALT_DIGITS"
-                               , "AM_STR"
-                               , "ASSERT_ACTIVE"
-                               , "ASSERT_BAIL"
-                               , "ASSERT_CALLBACK"
-                               , "ASSERT_QUIET_EVAL"
-                               , "ASSERT_WARNING"
-                               , "C_EXPLICIT_ABSTRACT"
-                               , "C_FINAL"
-                               , "C_IMPLICIT_ABSTRACT"
-                               , "CAL_DOW_DAYNO"
-                               , "CAL_DOW_LONG"
-                               , "CAL_DOW_SHORT"
-                               , "CAL_EASTER_ALWAYS_GREGORIAN"
-                               , "CAL_EASTER_ALWAYS_JULIAN"
-                               , "CAL_EASTER_DEFAULT"
-                               , "CAL_EASTER_ROMAN"
-                               , "CAL_FRENCH"
-                               , "CAL_GREGORIAN"
-                               , "CAL_JEWISH"
-                               , "CAL_JEWISH_ADD_ALAFIM"
-                               , "CAL_JEWISH_ADD_ALAFIM_GERESH"
-                               , "CAL_JEWISH_ADD_GERESHAYIM"
-                               , "CAL_JULIAN"
-                               , "CAL_MONTH_FRENCH"
-                               , "CAL_MONTH_GREGORIAN_LONG"
-                               , "CAL_MONTH_GREGORIAN_SHORT"
-                               , "CAL_MONTH_JEWISH"
-                               , "CAL_MONTH_JULIAN_LONG"
-                               , "CAL_MONTH_JULIAN_SHORT"
-                               , "CAL_NUM_CALS"
-                               , "CASE_LOWER"
-                               , "CASE_UPPER"
-                               , "CHAR_MAX"
-                               , "CIT_CALL_TOSTRING"
-                               , "CIT_CATCH_GET_CHILD"
-                               , "CL_EXPUNGE"
-                               , "CODESET"
-                               , "CONNECTION_ABORTED"
-                               , "CONNECTION_NORMAL"
-                               , "CONNECTION_TIMEOUT"
-                               , "COUNT_NORMAL"
-                               , "COUNT_RECURSIVE"
-                               , "CP_MOVE"
-                               , "CP_UID"
-                               , "CREDITS_ALL"
-                               , "CREDITS_DOCS"
-                               , "CREDITS_FULLPAGE"
-                               , "CREDITS_GENERAL"
-                               , "CREDITS_GROUP"
-                               , "CREDITS_MODULES"
-                               , "CREDITS_QA"
-                               , "CREDITS_SAPI"
-                               , "CRNCYSTR"
-                               , "CRYPT_BLOWFISH"
-                               , "CRYPT_EXT_DES"
-                               , "CRYPT_MD5"
-                               , "CRYPT_SALT_LENGTH"
-                               , "CRYPT_STD_DES"
-                               , "CURL_HTTP_VERSION_1_0"
-                               , "CURL_HTTP_VERSION_1_1"
-                               , "CURL_HTTP_VERSION_NONE"
-                               , "CURL_NETRC_IGNORED"
-                               , "CURL_NETRC_OPTIONAL"
-                               , "CURL_NETRC_REQUIRED"
-                               , "CURL_TIMECOND_IFMODSINCE"
-                               , "CURL_TIMECOND_IFUNMODSINCE"
-                               , "CURL_TIMECOND_LASTMOD"
-                               , "CURL_VERSION_IPV6"
-                               , "CURL_VERSION_KERBEROS4"
-                               , "CURL_VERSION_LIBZ"
-                               , "CURL_VERSION_SSL"
-                               , "CURLAUTH_ANY"
-                               , "CURLAUTH_ANYSAFE"
-                               , "CURLAUTH_BASIC"
-                               , "CURLAUTH_DIGEST"
-                               , "CURLAUTH_GSSNEGOTIATE"
-                               , "CURLAUTH_NTLM"
-                               , "CURLCLOSEPOLICY_CALLBACK"
-                               , "CURLCLOSEPOLICY_LEAST_RECENTLY_USED"
-                               , "CURLCLOSEPOLICY_LEAST_TRAFFIC"
-                               , "CURLCLOSEPOLICY_OLDEST"
-                               , "CURLCLOSEPOLICY_SLOWEST"
-                               , "CURLE_ABORTED_BY_CALLBACK"
-                               , "CURLE_BAD_CALLING_ORDER"
-                               , "CURLE_BAD_CONTENT_ENCODING"
-                               , "CURLE_BAD_FUNCTION_ARGUMENT"
-                               , "CURLE_BAD_PASSWORD_ENTERED"
-                               , "CURLE_COULDNT_CONNECT"
-                               , "CURLE_COULDNT_RESOLVE_HOST"
-                               , "CURLE_COULDNT_RESOLVE_PROXY"
-                               , "CURLE_FAILED_INIT"
-                               , "CURLE_FILE_COULDNT_READ_FILE"
-                               , "CURLE_FTP_ACCESS_DENIED"
-                               , "CURLE_FTP_BAD_DOWNLOAD_RESUME"
-                               , "CURLE_FTP_CANT_GET_HOST"
-                               , "CURLE_FTP_CANT_RECONNECT"
-                               , "CURLE_FTP_COULDNT_GET_SIZE"
-                               , "CURLE_FTP_COULDNT_RETR_FILE"
-                               , "CURLE_FTP_COULDNT_SET_ASCII"
-                               , "CURLE_FTP_COULDNT_SET_BINARY"
-                               , "CURLE_FTP_COULDNT_STOR_FILE"
-                               , "CURLE_FTP_COULDNT_USE_REST"
-                               , "CURLE_FTP_PORT_FAILED"
-                               , "CURLE_FTP_QUOTE_ERROR"
-                               , "CURLE_FTP_USER_PASSWORD_INCORRECT"
-                               , "CURLE_FTP_WEIRD_227_FORMAT"
-                               , "CURLE_FTP_WEIRD_PASS_REPLY"
-                               , "CURLE_FTP_WEIRD_PASV_REPLY"
-                               , "CURLE_FTP_WEIRD_SERVER_REPLY"
-                               , "CURLE_FTP_WEIRD_USER_REPLY"
-                               , "CURLE_FTP_WRITE_ERROR"
-                               , "CURLE_FUNCTION_NOT_FOUND"
-                               , "CURLE_GOT_NOTHING"
-                               , "CURLE_HTTP_NOT_FOUND"
-                               , "CURLE_HTTP_PORT_FAILED"
-                               , "CURLE_HTTP_POST_ERROR"
-                               , "CURLE_HTTP_RANGE_ERROR"
-                               , "CURLE_LDAP_CANNOT_BIND"
-                               , "CURLE_LDAP_SEARCH_FAILED"
-                               , "CURLE_LIBRARY_NOT_FOUND"
-                               , "CURLE_MALFORMAT_USER"
-                               , "CURLE_OBSOLETE"
-                               , "CURLE_OK"
-                               , "CURLE_OPERATION_TIMEOUTED"
-                               , "CURLE_OUT_OF_MEMORY"
-                               , "CURLE_PARTIAL_FILE"
-                               , "CURLE_READ_ERROR"
-                               , "CURLE_RECV_ERROR"
-                               , "CURLE_SEND_ERROR"
-                               , "CURLE_SHARE_IN_USE"
-                               , "CURLE_SSL_CACERT"
-                               , "CURLE_SSL_CERTPROBLEM"
-                               , "CURLE_SSL_CIPHER"
-                               , "CURLE_SSL_CONNECT_ERROR"
-                               , "CURLE_SSL_ENGINE_NOTFOUND"
-                               , "CURLE_SSL_ENGINE_SETFAILED"
-                               , "CURLE_SSL_PEER_CERTIFICATE"
-                               , "CURLE_TELNET_OPTION_SYNTAX"
-                               , "CURLE_TOO_MANY_REDIRECTS"
-                               , "CURLE_UNKNOWN_TELNET_OPTION"
-                               , "CURLE_UNSUPPORTED_PROTOCOL"
-                               , "CURLE_URL_MALFORMAT"
-                               , "CURLE_URL_MALFORMAT_USER"
-                               , "CURLE_WRITE_ERROR"
-                               , "CURLINFO_CONNECT_TIME"
-                               , "CURLINFO_CONTENT_LENGTH_DOWNLOAD"
-                               , "CURLINFO_CONTENT_LENGTH_UPLOAD"
-                               , "CURLINFO_CONTENT_TYPE"
-                               , "CURLINFO_EFFECTIVE_URL"
-                               , "CURLINFO_FILETIME"
-                               , "CURLINFO_HEADER_OUT"
-                               , "CURLINFO_HEADER_SIZE"
-                               , "CURLINFO_HTTP_CODE"
-                               , "CURLINFO_NAMELOOKUP_TIME"
-                               , "CURLINFO_PRETRANSFER_TIME"
-                               , "CURLINFO_REDIRECT_COUNT"
-                               , "CURLINFO_REDIRECT_TIME"
-                               , "CURLINFO_REQUEST_SIZE"
-                               , "CURLINFO_SIZE_DOWNLOAD"
-                               , "CURLINFO_SIZE_UPLOAD"
-                               , "CURLINFO_SPEED_DOWNLOAD"
-                               , "CURLINFO_SPEED_UPLOAD"
-                               , "CURLINFO_SSL_VERIFYRESULT"
-                               , "CURLINFO_STARTTRANSFER_TIME"
-                               , "CURLINFO_TOTAL_TIME"
-                               , "CURLM_BAD_EASY_HANDLE"
-                               , "CURLM_BAD_HANDLE"
-                               , "CURLM_CALL_MULTI_PERFORM"
-                               , "CURLM_INTERNAL_ERROR"
-                               , "CURLM_OK"
-                               , "CURLM_OUT_OF_MEMORY"
-                               , "CURLMSG_DONE"
-                               , "CURLOPT_BINARYTRANSFER"
-                               , "CURLOPT_BUFFERSIZE"
-                               , "CURLOPT_CAINFO"
-                               , "CURLOPT_CAPATH"
-                               , "CURLOPT_CLOSEPOLICY"
-                               , "CURLOPT_CONNECTTIMEOUT"
-                               , "CURLOPT_COOKIE"
-                               , "CURLOPT_COOKIEFILE"
-                               , "CURLOPT_COOKIEJAR"
-                               , "CURLOPT_CRLF"
-                               , "CURLOPT_CUSTOMREQUEST"
-                               , "CURLOPT_DNS_CACHE_TIMEOUT"
-                               , "CURLOPT_DNS_USE_GLOBAL_CACHE"
-                               , "CURLOPT_EGDSOCKET"
-                               , "CURLOPT_ENCODING"
-                               , "CURLOPT_FAILONERROR"
-                               , "CURLOPT_FILE"
-                               , "CURLOPT_FILETIME"
-                               , "CURLOPT_FOLLOWLOCATION"
-                               , "CURLOPT_FORBID_REUSE"
-                               , "CURLOPT_FRESH_CONNECT"
-                               , "CURLOPT_FTP_USE_EPRT"
-                               , "CURLOPT_FTP_USE_EPSV"
-                               , "CURLOPT_FTPAPPEND"
-                               , "CURLOPT_FTPASCII"
-                               , "CURLOPT_FTPLISTONLY"
-                               , "CURLOPT_FTPPORT"
-                               , "CURLOPT_HEADER"
-                               , "CURLOPT_HEADERFUNCTION"
-                               , "CURLOPT_HTTP200ALIASES"
-                               , "CURLOPT_HTTP_VERSION"
-                               , "CURLOPT_HTTPAUTH"
-                               , "CURLOPT_HTTPGET"
-                               , "CURLOPT_HTTPHEADER"
-                               , "CURLOPT_HTTPPROXYTUNNEL"
-                               , "CURLOPT_INFILE"
-                               , "CURLOPT_INFILESIZE"
-                               , "CURLOPT_INTERFACE"
-                               , "CURLOPT_KRB4LEVEL"
-                               , "CURLOPT_LOW_SPEED_LIMIT"
-                               , "CURLOPT_LOW_SPEED_TIME"
-                               , "CURLOPT_MAXCONNECTS"
-                               , "CURLOPT_MAXREDIRS"
-                               , "CURLOPT_MUTE"
-                               , "CURLOPT_NETRC"
-                               , "CURLOPT_NOBODY"
-                               , "CURLOPT_NOPROGRESS"
-                               , "CURLOPT_NOSIGNAL"
-                               , "CURLOPT_PASSWDFUNCTION"
-                               , "CURLOPT_PORT"
-                               , "CURLOPT_POST"
-                               , "CURLOPT_POSTFIELDS"
-                               , "CURLOPT_POSTQUOTE"
-                               , "CURLOPT_PROXY"
-                               , "CURLOPT_PROXYAUTH"
-                               , "CURLOPT_PROXYPORT"
-                               , "CURLOPT_PROXYTYPE"
-                               , "CURLOPT_PROXYUSERPWD"
-                               , "CURLOPT_PUT"
-                               , "CURLOPT_QUOTE"
-                               , "CURLOPT_RANDOM_FILE"
-                               , "CURLOPT_RANGE"
-                               , "CURLOPT_READDATA"
-                               , "CURLOPT_READFUNCTION"
-                               , "CURLOPT_REFERER"
-                               , "CURLOPT_RESUME_FROM"
-                               , "CURLOPT_RETURNTRANSFER"
-                               , "CURLOPT_SSL_CIPHER_LIST"
-                               , "CURLOPT_SSL_VERIFYHOST"
-                               , "CURLOPT_SSL_VERIFYPEER"
-                               , "CURLOPT_SSLCERT"
-                               , "CURLOPT_SSLCERTPASSWD"
-                               , "CURLOPT_SSLCERTTYPE"
-                               , "CURLOPT_SSLENGINE"
-                               , "CURLOPT_SSLENGINE_DEFAULT"
-                               , "CURLOPT_SSLKEY"
-                               , "CURLOPT_SSLKEYPASSWD"
-                               , "CURLOPT_SSLKEYTYPE"
-                               , "CURLOPT_SSLVERSION"
-                               , "CURLOPT_STDERR"
-                               , "CURLOPT_TIMECONDITION"
-                               , "CURLOPT_TIMEOUT"
-                               , "CURLOPT_TIMEVALUE"
-                               , "CURLOPT_TRANSFERTEXT"
-                               , "CURLOPT_UNRESTRICTED_AUTH"
-                               , "CURLOPT_UPLOAD"
-                               , "CURLOPT_URL"
-                               , "CURLOPT_USERAGENT"
-                               , "CURLOPT_USERPWD"
-                               , "CURLOPT_VERBOSE"
-                               , "CURLOPT_WRITEFUNCTION"
-                               , "CURLOPT_WRITEHEADER"
-                               , "CURLPROXY_HTTP"
-                               , "CURLPROXY_SOCKS5"
-                               , "CURLVERSION_NOW"
-                               , "D_FMT"
-                               , "D_T_FMT"
-                               , "DATE_ATOM"
-                               , "DATE_COOKIE"
-                               , "DATE_ISO8601"
-                               , "DATE_RFC1036"
-                               , "DATE_RFC1123"
-                               , "DATE_RFC2822"
-                               , "DATE_RFC3339"
-                               , "DATE_RFC822"
-                               , "DATE_RFC850"
-                               , "DATE_RSS"
-                               , "DATE_W3C"
-                               , "DAY_1"
-                               , "DAY_2"
-                               , "DAY_3"
-                               , "DAY_4"
-                               , "DAY_5"
-                               , "DAY_6"
-                               , "DAY_7"
-                               , "DBX_CMP_ASC"
-                               , "DBX_CMP_DESC"
-                               , "DBX_CMP_NATIVE"
-                               , "DBX_CMP_NUMBER"
-                               , "DBX_CMP_TEXT"
-                               , "DBX_COLNAMES_LOWERCASE"
-                               , "DBX_COLNAMES_UNCHANGED"
-                               , "DBX_COLNAMES_UPPERCASE"
-                               , "DBX_FBSQL"
-                               , "DBX_MSSQL"
-                               , "DBX_MYSQL"
-                               , "DBX_OCI8"
-                               , "DBX_ODBC"
-                               , "DBX_PERSISTENT"
-                               , "DBX_PGSQL"
-                               , "DBX_RESULT_ASSOC"
-                               , "DBX_RESULT_INDEX"
-                               , "DBX_RESULT_INFO"
-                               , "DBX_RESULT_UNBUFFERED"
-                               , "DBX_SQLITE"
-                               , "DBX_SYBASECT"
-                               , "DEFAULT_INCLUDE_PATH"
-                               , "DIRECTORY_SEPARATOR"
-                               , "DNS_A"
-                               , "DNS_AAAA"
-                               , "DNS_ALL"
-                               , "DNS_ANY"
-                               , "DNS_CNAME"
-                               , "DNS_HINFO"
-                               , "DNS_MX"
-                               , "DNS_NAPTR"
-                               , "DNS_NS"
-                               , "DNS_PTR"
-                               , "DNS_SOA"
-                               , "DNS_SRV"
-                               , "DNS_TXT"
-                               , "DOM_HIERARCHY_REQUEST_ERR"
-                               , "DOM_INDEX_SIZE_ERR"
-                               , "DOM_INUSE_ATTRIBUTE_ERR"
-                               , "DOM_INVALID_ACCESS_ERR"
-                               , "DOM_INVALID_CHARACTER_ERR"
-                               , "DOM_INVALID_MODIFICATION_ERR"
-                               , "DOM_INVALID_STATE_ERR"
-                               , "DOM_NAMESPACE_ERR"
-                               , "DOM_NO_DATA_ALLOWED_ERR"
-                               , "DOM_NO_MODIFICATION_ALLOWED_ERR"
-                               , "DOM_NOT_FOUND_ERR"
-                               , "DOM_NOT_SUPPORTED_ERR"
-                               , "DOM_PHP_ERR"
-                               , "DOM_SYNTAX_ERR"
-                               , "DOM_VALIDATION_ERR"
-                               , "DOM_WRONG_DOCUMENT_ERR"
-                               , "DOMSTRING_SIZE_ERR"
-                               , "E_ALL"
-                               , "E_COMPILE_ERROR"
-                               , "E_COMPILE_WARNING"
-                               , "E_CORE_ERROR"
-                               , "E_CORE_WARNING"
-                               , "E_DEPRECATED"
-                               , "E_ERROR"
-                               , "E_NOTICE"
-                               , "E_PARSE"
-                               , "E_RECOVERABLE_ERROR"
-                               , "E_STRICT"
-                               , "E_USER_DEPRECATED"
-                               , "E_USER_ERROR"
-                               , "E_USER_NOTICE"
-                               , "E_USER_WARNING"
-                               , "E_WARNING"
-                               , "ENC7BIT"
-                               , "ENC8BIT"
-                               , "ENCBASE64"
-                               , "ENCBINARY"
-                               , "ENCOTHER"
-                               , "ENCQUOTEDPRINTABLE"
-                               , "ENT_COMPAT"
-                               , "ENT_NOQUOTES"
-                               , "ENT_QUOTES"
-                               , "ERA"
-                               , "ERA_D_FMT"
-                               , "ERA_D_T_FMT"
-                               , "ERA_T_FMT"
-                               , "EXIF_USE_MBSTRING"
-                               , "EXTR_IF_EXISTS"
-                               , "EXTR_OVERWRITE"
-                               , "EXTR_PREFIX_ALL"
-                               , "EXTR_PREFIX_IF_EXISTS"
-                               , "EXTR_PREFIX_INVALID"
-                               , "EXTR_PREFIX_SAME"
-                               , "EXTR_REFS"
-                               , "EXTR_SKIP"
-                               , "F_DUPFD"
-                               , "F_GETFD"
-                               , "F_GETFL"
-                               , "F_GETLK"
-                               , "F_GETOWN"
-                               , "F_RDLCK"
-                               , "F_SETFL"
-                               , "F_SETLK"
-                               , "F_SETLKW"
-                               , "F_SETOWN"
-                               , "F_UNLCK"
-                               , "F_WRLCK"
-                               , "false"
-                               , "FAMAcknowledge"
-                               , "FAMChanged"
-                               , "FAMCreated"
-                               , "FAMDeleted"
-                               , "FAMEndExist"
-                               , "FAMExists"
-                               , "FAMMoved"
-                               , "FAMStartExecuting"
-                               , "FAMStopExecuting"
-                               , "FILE_APPEND"
-                               , "FILE_IGNORE_NEW_LINES"
-                               , "FILE_NO_DEFAULT_CONTEXT"
-                               , "FILE_SKIP_EMPTY_LINES"
-                               , "FILE_USE_INCLUDE_PATH"
-                               , "FNM_CASEFOLD"
-                               , "FNM_NOESCAPE"
-                               , "FNM_PATHNAME"
-                               , "FNM_PERIOD"
-                               , "FORCE_DEFLATE"
-                               , "FORCE_GZIP"
-                               , "FT_INTERNAL"
-                               , "FT_NOT"
-                               , "FT_PEEK"
-                               , "FT_PREFETCHTEXT"
-                               , "FT_UID"
-                               , "FTP_ASCII"
-                               , "FTP_AUTORESUME"
-                               , "FTP_AUTOSEEK"
-                               , "FTP_BINARY"
-                               , "FTP_FAILED"
-                               , "FTP_FINISHED"
-                               , "FTP_IMAGE"
-                               , "FTP_MOREDATA"
-                               , "FTP_TEXT"
-                               , "FTP_TIMEOUT_SEC"
-                               , "GD_BUNDLED"
-                               , "GLOB_BRACE"
-                               , "GLOB_MARK"
-                               , "GLOB_NOCHECK"
-                               , "GLOB_NOESCAPE"
-                               , "GLOB_NOSORT"
-                               , "GLOB_ONLYDIR"
-                               , "GMP_ROUND_MINUSINF"
-                               , "GMP_ROUND_PLUSINF"
-                               , "GMP_ROUND_ZERO"
-                               , "HASH_HMAC"
-                               , "HTML_ENTITIES"
-                               , "HTML_SPECIALCHARS"
-                               , "ICONV_IMPL"
-                               , "ICONV_MIME_DECODE_CONTINUE_ON_ERROR"
-                               , "ICONV_MIME_DECODE_STRICT"
-                               , "ICONV_VERSION"
-                               , "IMAGETYPE_BMP"
-                               , "IMAGETYPE_GIF"
-                               , "IMAGETYPE_IFF"
-                               , "IMAGETYPE_JB2"
-                               , "IMAGETYPE_JP2"
-                               , "IMAGETYPE_JPC"
-                               , "IMAGETYPE_JPEG"
-                               , "IMAGETYPE_JPEG2000"
-                               , "IMAGETYPE_JPX"
-                               , "IMAGETYPE_PNG"
-                               , "IMAGETYPE_PSD"
-                               , "IMAGETYPE_SWF"
-                               , "IMAGETYPE_TIFF_II"
-                               , "IMAGETYPE_TIFF_MM"
-                               , "IMAGETYPE_WBMP"
-                               , "IMAGETYPE_XBM"
-                               , "IMAP_CLOSETIMEOUT"
-                               , "IMAP_OPENTIMEOUT"
-                               , "IMAP_READTIMEOUT"
-                               , "IMAP_WRITETIMEOUT"
-                               , "IMG_ARC_CHORD"
-                               , "IMG_ARC_EDGED"
-                               , "IMG_ARC_NOFILL"
-                               , "IMG_ARC_PIE"
-                               , "IMG_ARC_ROUNDED"
-                               , "IMG_COLOR_BRUSHED"
-                               , "IMG_COLOR_STYLED"
-                               , "IMG_COLOR_STYLEDBRUSHED"
-                               , "IMG_COLOR_TILED"
-                               , "IMG_COLOR_TRANSPARENT"
-                               , "IMG_EFFECT_ALPHABLEND"
-                               , "IMG_EFFECT_NORMAL"
-                               , "IMG_EFFECT_OVERLAY"
-                               , "IMG_EFFECT_REPLACE"
-                               , "IMG_FILTER_BRIGHTNESS"
-                               , "IMG_FILTER_COLORIZE"
-                               , "IMG_FILTER_CONTRAST"
-                               , "IMG_FILTER_EDGEDETECT"
-                               , "IMG_FILTER_EMBOSS"
-                               , "IMG_FILTER_GAUSSIAN_BLUR"
-                               , "IMG_FILTER_GRAYSCALE"
-                               , "IMG_FILTER_MEAN_REMOVAL"
-                               , "IMG_FILTER_NEGATE"
-                               , "IMG_FILTER_SELECTIVE_BLUR"
-                               , "IMG_FILTER_SMOOTH"
-                               , "IMG_GD2_COMPRESSED"
-                               , "IMG_GD2_RAW"
-                               , "IMG_GIF"
-                               , "IMG_JPEG"
-                               , "IMG_JPG"
-                               , "IMG_PNG"
-                               , "IMG_WBMP"
-                               , "IMG_XPM"
-                               , "INF"
-                               , "INFO_ALL"
-                               , "INFO_CONFIGURATION"
-                               , "INFO_CREDITS"
-                               , "INFO_ENVIRONMENT"
-                               , "INFO_GENERAL"
-                               , "INFO_LICENSE"
-                               , "INFO_MODULES"
-                               , "INFO_VARIABLES"
-                               , "INI_ALL"
-                               , "INI_PERDIR"
-                               , "INI_SYSTEM"
-                               , "INI_USER"
-                               , "LATT_HASCHILDREN"
-                               , "LATT_HASNOCHILDREN"
-                               , "LATT_MARKED"
-                               , "LATT_NOINFERIORS"
-                               , "LATT_NOSELECT"
-                               , "LATT_REFERRAL"
-                               , "LATT_UNMARKED"
-                               , "LC_ALL"
-                               , "LC_COLLATE"
-                               , "LC_CTYPE"
-                               , "LC_MESSAGES"
-                               , "LC_MONETARY"
-                               , "LC_NUMERIC"
-                               , "LC_TIME"
-                               , "LDAP_DEREF_ALWAYS"
-                               , "LDAP_DEREF_FINDING"
-                               , "LDAP_DEREF_NEVER"
-                               , "LDAP_DEREF_SEARCHING"
-                               , "LDAP_OPT_CLIENT_CONTROLS"
-                               , "LDAP_OPT_DEBUG_LEVEL"
-                               , "LDAP_OPT_DEREF"
-                               , "LDAP_OPT_ERROR_NUMBER"
-                               , "LDAP_OPT_ERROR_STRING"
-                               , "LDAP_OPT_HOST_NAME"
-                               , "LDAP_OPT_MATCHED_DN"
-                               , "LDAP_OPT_PROTOCOL_VERSION"
-                               , "LDAP_OPT_REFERRALS"
-                               , "LDAP_OPT_RESTART"
-                               , "LDAP_OPT_SERVER_CONTROLS"
-                               , "LDAP_OPT_SIZELIMIT"
-                               , "LDAP_OPT_TIMELIMIT"
-                               , "LIBXML_COMPACT"
-                               , "LIBXML_DOTTED_VERSION"
-                               , "LIBXML_DTDATTR"
-                               , "LIBXML_DTDLOAD"
-                               , "LIBXML_DTDVALID"
-                               , "LIBXML_ERR_ERROR"
-                               , "LIBXML_ERR_FATAL"
-                               , "LIBXML_ERR_NONE"
-                               , "LIBXML_ERR_WARNING"
-                               , "LIBXML_NOBLANKS"
-                               , "LIBXML_NOCDATA"
-                               , "LIBXML_NOEMPTYTAG"
-                               , "LIBXML_NOENT"
-                               , "LIBXML_NOERROR"
-                               , "LIBXML_NONET"
-                               , "LIBXML_NOWARNING"
-                               , "LIBXML_NOXMLDECL"
-                               , "LIBXML_NSCLEAN"
-                               , "LIBXML_VERSION"
-                               , "LIBXML_XINCLUDE"
-                               , "LOCK_EX"
-                               , "LOCK_NB"
-                               , "LOCK_SH"
-                               , "LOCK_UN"
-                               , "LOG_ALERT"
-                               , "LOG_AUTH"
-                               , "LOG_AUTHPRIV"
-                               , "LOG_CONS"
-                               , "LOG_CRIT"
-                               , "LOG_CRON"
-                               , "LOG_DAEMON"
-                               , "LOG_DEBUG"
-                               , "LOG_EMERG"
-                               , "LOG_ERR"
-                               , "LOG_INFO"
-                               , "LOG_KERN"
-                               , "LOG_LOCAL0"
-                               , "LOG_LOCAL1"
-                               , "LOG_LOCAL2"
-                               , "LOG_LOCAL3"
-                               , "LOG_LOCAL4"
-                               , "LOG_LOCAL5"
-                               , "LOG_LOCAL6"
-                               , "LOG_LOCAL7"
-                               , "LOG_LPR"
-                               , "LOG_MAIL"
-                               , "LOG_NDELAY"
-                               , "LOG_NEWS"
-                               , "LOG_NOTICE"
-                               , "LOG_NOWAIT"
-                               , "LOG_ODELAY"
-                               , "LOG_PERROR"
-                               , "LOG_PID"
-                               , "LOG_SYSLOG"
-                               , "LOG_USER"
-                               , "LOG_UUCP"
-                               , "LOG_WARNING"
-                               , "M_1_PI"
-                               , "M_2_PI"
-                               , "M_2_SQRTPI"
-                               , "M_ABSTRACT"
-                               , "M_E"
-                               , "M_FINAL"
-                               , "M_LN10"
-                               , "M_LN2"
-                               , "M_LOG10E"
-                               , "M_LOG2E"
-                               , "M_PI"
-                               , "M_PI_2"
-                               , "M_PI_4"
-                               , "M_PRIVATE"
-                               , "M_PROTECTED"
-                               , "M_PUBLIC"
-                               , "M_SQRT1_2"
-                               , "M_SQRT2"
-                               , "M_STATIC"
-                               , "MB_CASE_LOWER"
-                               , "MB_CASE_TITLE"
-                               , "MB_CASE_UPPER"
-                               , "MB_OVERLOAD_MAIL"
-                               , "MB_OVERLOAD_REGEX"
-                               , "MB_OVERLOAD_STRING"
-                               , "MCRYPT_3DES"
-                               , "MCRYPT_ARCFOUR"
-                               , "MCRYPT_ARCFOUR_IV"
-                               , "MCRYPT_BLOWFISH"
-                               , "MCRYPT_BLOWFISH_COMPAT"
-                               , "MCRYPT_CAST_128"
-                               , "MCRYPT_CAST_256"
-                               , "MCRYPT_CRYPT"
-                               , "MCRYPT_DECRYPT"
-                               , "MCRYPT_DES"
-                               , "MCRYPT_DEV_RANDOM"
-                               , "MCRYPT_DEV_URANDOM"
-                               , "MCRYPT_ENCRYPT"
-                               , "MCRYPT_ENIGNA"
-                               , "MCRYPT_GOST"
-                               , "MCRYPT_IDEA"
-                               , "MCRYPT_LOKI97"
-                               , "MCRYPT_MARS"
-                               , "MCRYPT_MODE_CBC"
-                               , "MCRYPT_MODE_CFB"
-                               , "MCRYPT_MODE_ECB"
-                               , "MCRYPT_MODE_NOFB"
-                               , "MCRYPT_MODE_OFB"
-                               , "MCRYPT_MODE_STREAM"
-                               , "MCRYPT_PANAMA"
-                               , "MCRYPT_RAND"
-                               , "MCRYPT_RC2"
-                               , "MCRYPT_RC6"
-                               , "MCRYPT_RIJNDAEL_128"
-                               , "MCRYPT_RIJNDAEL_192"
-                               , "MCRYPT_RIJNDAEL_256"
-                               , "MCRYPT_SAFER128"
-                               , "MCRYPT_SAFER64"
-                               , "MCRYPT_SAFERPLUS"
-                               , "MCRYPT_SERPENT"
-                               , "MCRYPT_SKIPJACK"
-                               , "MCRYPT_THREEWAY"
-                               , "MCRYPT_TRIPLEDES"
-                               , "MCRYPT_TWOFISH"
-                               , "MCRYPT_WAKE"
-                               , "MCRYPT_XTEA"
-                               , "MHASH_ADLER32"
-                               , "MHASH_CRC32"
-                               , "MHASH_CRC32B"
-                               , "MHASH_GOST"
-                               , "MHASH_HAVAL128"
-                               , "MHASH_HAVAL160"
-                               , "MHASH_HAVAL192"
-                               , "MHASH_HAVAL224"
-                               , "MHASH_HAVAL256"
-                               , "MHASH_MD2"
-                               , "MHASH_MD4"
-                               , "MHASH_MD5"
-                               , "MHASH_RIPEMD128"
-                               , "MHASH_RIPEMD160"
-                               , "MHASH_RIPEMD256"
-                               , "MHASH_RIPEMD320"
-                               , "MHASH_SHA1"
-                               , "MHASH_SHA224"
-                               , "MHASH_SHA256"
-                               , "MHASH_SHA384"
-                               , "MHASH_SHA512"
-                               , "MHASH_SNEFRU128"
-                               , "MHASH_SNEFRU256"
-                               , "MHASH_TIGER"
-                               , "MHASH_TIGER128"
-                               , "MHASH_TIGER160"
-                               , "MHASH_WHIRLPOOL"
-                               , "MON_1"
-                               , "MON_10"
-                               , "MON_11"
-                               , "MON_12"
-                               , "MON_2"
-                               , "MON_3"
-                               , "MON_4"
-                               , "MON_5"
-                               , "MON_6"
-                               , "MON_7"
-                               , "MON_8"
-                               , "MON_9"
-                               , "MSG_DONTROUTE"
-                               , "MSG_EXCEPT"
-                               , "MSG_IPC_NOWAIT"
-                               , "MSG_NOERROR"
-                               , "MSG_OOB"
-                               , "MSG_PEEK"
-                               , "MSG_WAITALL"
-                               , "MYSQL_ASSOC"
-                               , "MYSQL_BOTH"
-                               , "MYSQL_CLIENT_COMPRESS"
-                               , "MYSQL_CLIENT_IGNORE_SPACE"
-                               , "MYSQL_CLIENT_INTERACTIVE"
-                               , "MYSQL_CLIENT_SSL"
-                               , "MYSQL_NUM"
-                               , "MYSQLI_ASSOC"
-                               , "MYSQLI_AUTO_INCREMENT_FLAG"
-                               , "MYSQLI_BLOB_FLAG"
-                               , "MYSQLI_BOTH"
-                               , "MYSQLI_CLIENT_COMPRESS"
-                               , "MYSQLI_CLIENT_FOUND_ROWS"
-                               , "MYSQLI_CLIENT_IGNORE_SPACE"
-                               , "MYSQLI_CLIENT_INTERACTIVE"
-                               , "MYSQLI_CLIENT_NO_SCHEMA"
-                               , "MYSQLI_CLIENT_SSL"
-                               , "MYSQLI_GROUP_FLAG"
-                               , "MYSQLI_INIT_COMMAND"
-                               , "MYSQLI_MULTIPLE_KEY_FLAG"
-                               , "MYSQLI_NO_DATA"
-                               , "MYSQLI_NOT_NULL_FLAG"
-                               , "MYSQLI_NUM"
-                               , "MYSQLI_NUM_FLAG"
-                               , "MYSQLI_OPT_CONNECT_TIMEOUT"
-                               , "MYSQLI_OPT_LOCAL_INFILE"
-                               , "MYSQLI_PART_KEY_FLAG"
-                               , "MYSQLI_PRI_KEY_FLAG"
-                               , "MYSQLI_READ_DEFAULT_FILE"
-                               , "MYSQLI_READ_DEFAULT_GROUP"
-                               , "MYSQLI_REPORT_ALL"
-                               , "MYSQLI_REPORT_ERROR"
-                               , "MYSQLI_REPORT_INDEX"
-                               , "MYSQLI_REPORT_OFF"
-                               , "MYSQLI_REPORT_STRICT"
-                               , "MYSQLI_RPL_ADMIN"
-                               , "MYSQLI_RPL_MASTER"
-                               , "MYSQLI_RPL_SLAVE"
-                               , "MYSQLI_SET_FLAG"
-                               , "MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH"
-                               , "MYSQLI_STORE_RESULT"
-                               , "MYSQLI_TIMESTAMP_FLAG"
-                               , "MYSQLI_TYPE_BLOB"
-                               , "MYSQLI_TYPE_CHAR"
-                               , "MYSQLI_TYPE_DATE"
-                               , "MYSQLI_TYPE_DATETIME"
-                               , "MYSQLI_TYPE_DECIMAL"
-                               , "MYSQLI_TYPE_DOUBLE"
-                               , "MYSQLI_TYPE_ENUM"
-                               , "MYSQLI_TYPE_FLOAT"
-                               , "MYSQLI_TYPE_GEOMETRY"
-                               , "MYSQLI_TYPE_INT24"
-                               , "MYSQLI_TYPE_INTERVAL"
-                               , "MYSQLI_TYPE_LONG"
-                               , "MYSQLI_TYPE_LONG_BLOB"
-                               , "MYSQLI_TYPE_LONGLONG"
-                               , "MYSQLI_TYPE_MEDIUM_BLOB"
-                               , "MYSQLI_TYPE_NEWDATE"
-                               , "MYSQLI_TYPE_NULL"
-                               , "MYSQLI_TYPE_SET"
-                               , "MYSQLI_TYPE_SHORT"
-                               , "MYSQLI_TYPE_STRING"
-                               , "MYSQLI_TYPE_TIME"
-                               , "MYSQLI_TYPE_TIMESTAMP"
-                               , "MYSQLI_TYPE_TINY"
-                               , "MYSQLI_TYPE_TINY_BLOB"
-                               , "MYSQLI_TYPE_VAR_STRING"
-                               , "MYSQLI_TYPE_YEAR"
-                               , "MYSQLI_UNIQUE_KEY_FLAG"
-                               , "MYSQLI_UNSIGNED_FLAG"
-                               , "MYSQLI_USE_RESULT"
-                               , "MYSQLI_ZEROFILL_FLAG"
-                               , "NAN"
-                               , "NCURSES_A_ALTCHARSET"
-                               , "NCURSES_A_BLINK"
-                               , "NCURSES_A_BOLD"
-                               , "NCURSES_A_CHARTEXT"
-                               , "NCURSES_A_DIM"
-                               , "NCURSES_A_INVIS"
-                               , "NCURSES_A_NORMAL"
-                               , "NCURSES_A_PROTECT"
-                               , "NCURSES_A_REVERSE"
-                               , "NCURSES_A_STANDOUT"
-                               , "NCURSES_A_UNDERLINE"
-                               , "NCURSES_ALL_MOUSE_EVENTS"
-                               , "NCURSES_BUTTON1_CLICKED"
-                               , "NCURSES_BUTTON1_DOUBLE_CLICKED"
-                               , "NCURSES_BUTTON1_PRESSED"
-                               , "NCURSES_BUTTON1_RELEASED"
-                               , "NCURSES_BUTTON1_TRIPLE_CLICKED"
-                               , "NCURSES_BUTTON2_CLICKED"
-                               , "NCURSES_BUTTON2_DOUBLE_CLICKED"
-                               , "NCURSES_BUTTON2_PRESSED"
-                               , "NCURSES_BUTTON2_RELEASED"
-                               , "NCURSES_BUTTON2_TRIPLE_CLICKED"
-                               , "NCURSES_BUTTON3_CLICKED"
-                               , "NCURSES_BUTTON3_DOUBLE_CLICKED"
-                               , "NCURSES_BUTTON3_PRESSED"
-                               , "NCURSES_BUTTON3_RELEASED"
-                               , "NCURSES_BUTTON3_TRIPLE_CLICKED"
-                               , "NCURSES_BUTTON4_CLICKED"
-                               , "NCURSES_BUTTON4_DOUBLE_CLICKED"
-                               , "NCURSES_BUTTON4_PRESSED"
-                               , "NCURSES_BUTTON4_RELEASED"
-                               , "NCURSES_BUTTON4_TRIPLE_CLICKED"
-                               , "NCURSES_BUTTON_ALT"
-                               , "NCURSES_BUTTON_CTRL"
-                               , "NCURSES_BUTTON_SHIFT"
-                               , "NCURSES_COLOR_BLACK"
-                               , "NCURSES_COLOR_BLUE"
-                               , "NCURSES_COLOR_CYAN"
-                               , "NCURSES_COLOR_GREEN"
-                               , "NCURSES_COLOR_MAGENTA"
-                               , "NCURSES_COLOR_RED"
-                               , "NCURSES_COLOR_WHITE"
-                               , "NCURSES_COLOR_YELLOW"
-                               , "NCURSES_KEY_A1"
-                               , "NCURSES_KEY_A3"
-                               , "NCURSES_KEY_B2"
-                               , "NCURSES_KEY_BACKSPACE"
-                               , "NCURSES_KEY_BEG"
-                               , "NCURSES_KEY_BTAB"
-                               , "NCURSES_KEY_C1"
-                               , "NCURSES_KEY_C3"
-                               , "NCURSES_KEY_CANCEL"
-                               , "NCURSES_KEY_CATAB"
-                               , "NCURSES_KEY_CLEAR"
-                               , "NCURSES_KEY_CLOSE"
-                               , "NCURSES_KEY_COMMAND"
-                               , "NCURSES_KEY_COPY"
-                               , "NCURSES_KEY_CREATE"
-                               , "NCURSES_KEY_CTAB"
-                               , "NCURSES_KEY_DC"
-                               , "NCURSES_KEY_DL"
-                               , "NCURSES_KEY_DOWN"
-                               , "NCURSES_KEY_EIC"
-                               , "NCURSES_KEY_END"
-                               , "NCURSES_KEY_ENTER"
-                               , "NCURSES_KEY_EOL"
-                               , "NCURSES_KEY_EOS"
-                               , "NCURSES_KEY_EXIT"
-                               , "NCURSES_KEY_F0"
-                               , "NCURSES_KEY_F1"
-                               , "NCURSES_KEY_F10"
-                               , "NCURSES_KEY_F11"
-                               , "NCURSES_KEY_F12"
-                               , "NCURSES_KEY_F2"
-                               , "NCURSES_KEY_F3"
-                               , "NCURSES_KEY_F4"
-                               , "NCURSES_KEY_F5"
-                               , "NCURSES_KEY_F6"
-                               , "NCURSES_KEY_F7"
-                               , "NCURSES_KEY_F8"
-                               , "NCURSES_KEY_F9"
-                               , "NCURSES_KEY_FIND"
-                               , "NCURSES_KEY_HELP"
-                               , "NCURSES_KEY_IC"
-                               , "NCURSES_KEY_IL"
-                               , "NCURSES_KEY_LEFT"
-                               , "NCURSES_KEY_LL"
-                               , "NCURSES_KEY_MARK"
-                               , "NCURSES_KEY_MESSAGE"
-                               , "NCURSES_KEY_MOUSE"
-                               , "NCURSES_KEY_MOVE"
-                               , "NCURSES_KEY_NEXT"
-                               , "NCURSES_KEY_NPAGE"
-                               , "NCURSES_KEY_OPEN"
-                               , "NCURSES_KEY_OPTIONS"
-                               , "NCURSES_KEY_PPAGE"
-                               , "NCURSES_KEY_PREVIOUS"
-                               , "NCURSES_KEY_PRINT"
-                               , "NCURSES_KEY_REDO"
-                               , "NCURSES_KEY_REFERENCE"
-                               , "NCURSES_KEY_REFRESH"
-                               , "NCURSES_KEY_REPLACE"
-                               , "NCURSES_KEY_RESET"
-                               , "NCURSES_KEY_RESIZE"
-                               , "NCURSES_KEY_RESTART"
-                               , "NCURSES_KEY_RESUME"
-                               , "NCURSES_KEY_RIGHT"
-                               , "NCURSES_KEY_SAVE"
-                               , "NCURSES_KEY_SBEG"
-                               , "NCURSES_KEY_SCANCEL"
-                               , "NCURSES_KEY_SCOMMAND"
-                               , "NCURSES_KEY_SCOPY"
-                               , "NCURSES_KEY_SCREATE"
-                               , "NCURSES_KEY_SDC"
-                               , "NCURSES_KEY_SDL"
-                               , "NCURSES_KEY_SELECT"
-                               , "NCURSES_KEY_SEND"
-                               , "NCURSES_KEY_SEOL"
-                               , "NCURSES_KEY_SEXIT"
-                               , "NCURSES_KEY_SF"
-                               , "NCURSES_KEY_SFIND"
-                               , "NCURSES_KEY_SHELP"
-                               , "NCURSES_KEY_SHOME"
-                               , "NCURSES_KEY_SIC"
-                               , "NCURSES_KEY_SLEFT"
-                               , "NCURSES_KEY_SMESSAGE"
-                               , "NCURSES_KEY_SMOVE"
-                               , "NCURSES_KEY_SNEXT"
-                               , "NCURSES_KEY_SOPTIONS"
-                               , "NCURSES_KEY_SPREVIOUS"
-                               , "NCURSES_KEY_SPRINT"
-                               , "NCURSES_KEY_SR"
-                               , "NCURSES_KEY_SREDO"
-                               , "NCURSES_KEY_SREPLACE"
-                               , "NCURSES_KEY_SRESET"
-                               , "NCURSES_KEY_SRIGHT"
-                               , "NCURSES_KEY_SRSUME"
-                               , "NCURSES_KEY_SSAVE"
-                               , "NCURSES_KEY_SSUSPEND"
-                               , "NCURSES_KEY_STAB"
-                               , "NCURSES_KEY_SUNDO"
-                               , "NCURSES_KEY_SUSPEND"
-                               , "NCURSES_KEY_UNDO"
-                               , "NCURSES_KEY_UP"
-                               , "NCURSES_REPORT_MOUSE_POSITION"
-                               , "NIL"
-                               , "NOEXPR"
-                               , "null"
-                               , "O_APPEND"
-                               , "O_ASYNC"
-                               , "O_CREAT"
-                               , "O_EXCL"
-                               , "O_NDELAY"
-                               , "O_NOCTTY"
-                               , "O_NONBLOCK"
-                               , "O_RDONLY"
-                               , "O_RDWR"
-                               , "O_SYNC"
-                               , "O_TRUNC"
-                               , "O_WRONLY"
-                               , "OCI_ASSOC"
-                               , "OCI_B_BFILE"
-                               , "OCI_B_BIN"
-                               , "OCI_B_BLOB"
-                               , "OCI_B_CFILEE"
-                               , "OCI_B_CLOB"
-                               , "OCI_B_CURSOR"
-                               , "OCI_B_INT"
-                               , "OCI_B_NTY"
-                               , "OCI_B_NUM"
-                               , "OCI_B_ROWID"
-                               , "OCI_BOTH"
-                               , "OCI_COMMIT_ON_SUCCESS"
-                               , "OCI_CRED_EXT"
-                               , "OCI_DEFAULT"
-                               , "OCI_DESCRIBE_ONLY"
-                               , "OCI_DTYPE_FILE"
-                               , "OCI_DTYPE_LOB"
-                               , "OCI_DTYPE_ROWID"
-                               , "OCI_FETCHSTATEMENT_BY_COLUMN"
-                               , "OCI_FETCHSTATEMENT_BY_ROW"
-                               , "OCI_LOB_BUFFER_FREE"
-                               , "OCI_NO_AUTO_COMMIT"
-                               , "OCI_NUM"
-                               , "OCI_RETURN_LOBS"
-                               , "OCI_RETURN_NULLS"
-                               , "OCI_SEEK_CUR"
-                               , "OCI_SEEK_END"
-                               , "OCI_SEEK_SET"
-                               , "OCI_SYSDBA"
-                               , "OCI_SYSOPER"
-                               , "OCI_TEMP_BLOB"
-                               , "OCI_TEMP_CLOB"
-                               , "ODBC_BINMODE_CONVERT"
-                               , "ODBC_BINMODE_PASSTHRU"
-                               , "ODBC_BINMODE_RETURN"
-                               , "ODBC_TYPE"
-                               , "OP_ANONYMOUS"
-                               , "OP_DEBUG"
-                               , "OP_EXPUNGE"
-                               , "OP_HALFOPEN"
-                               , "OP_PROTOTYPE"
-                               , "OP_READONLY"
-                               , "OP_SECURE"
-                               , "OP_SHORTCACHE"
-                               , "OP_SILENT"
-                               , "OPENSSL_ALGO_MD2"
-                               , "OPENSSL_ALGO_MD4"
-                               , "OPENSSL_ALGO_MD5"
-                               , "OPENSSL_ALGO_SHA1"
-                               , "OPENSSL_CIPHER_3DES"
-                               , "OPENSSL_CIPHER_DES"
-                               , "OPENSSL_CIPHER_RC2_128"
-                               , "OPENSSL_CIPHER_RC2_40"
-                               , "OPENSSL_CIPHER_RC2_64"
-                               , "OPENSSL_KEYTYPE_DH"
-                               , "OPENSSL_KEYTYPE_DSA"
-                               , "OPENSSL_KEYTYPE_RSA"
-                               , "OPENSSL_NO_PADDING"
-                               , "OPENSSL_PKCS1_OAEP_PADDING"
-                               , "OPENSSL_PKCS1_PADDING"
-                               , "OPENSSL_SSLV23_PADDING"
-                               , "P_PRIVATE"
-                               , "P_PROTECTED"
-                               , "P_PUBLIC"
-                               , "P_STATIC"
-                               , "PATH_SEPARATOR"
-                               , "PATHINFO_BASENAME"
-                               , "PATHINFO_DIRNAME"
-                               , "PATHINFO_EXTENSION"
-                               , "PATHINFO_FILENAME"
-                               , "PEAR_EXTENSION_DIR"
-                               , "PEAR_INSTALL_DIR"
-                               , "PGSQL_ASSOC"
-                               , "PGSQL_BAD_RESPONSE"
-                               , "PGSQL_BOTH"
-                               , "PGSQL_COMMAND_OK"
-                               , "PGSQL_CONNECT_FORCE_NEW"
-                               , "PGSQL_CONNECTION_BAD"
-                               , "PGSQL_CONNECTION_OK"
-                               , "PGSQL_CONV_FORCE_NULL"
-                               , "PGSQL_CONV_IGNORE_DEFAULT"
-                               , "PGSQL_CONV_IGNORE_NOT_NULL"
-                               , "PGSQL_COPY_IN"
-                               , "PGSQL_COPY_OUT"
-                               , "PGSQL_DML_ASYNC"
-                               , "PGSQL_DML_EXEC"
-                               , "PGSQL_DML_NO_CONV"
-                               , "PGSQL_DML_STRING"
-                               , "PGSQL_EMPTY_QUERY"
-                               , "PGSQL_FATAL_ERROR"
-                               , "PGSQL_NONFATAL_ERROR"
-                               , "PGSQL_NUM"
-                               , "PGSQL_SEEK_CUR"
-                               , "PGSQL_SEEK_END"
-                               , "PGSQL_SEEK_SET"
-                               , "PGSQL_STATUS_LONG"
-                               , "PGSQL_STATUS_STRING"
-                               , "PGSQL_TUPLES_OK"
-                               , "PHP_BINARY_READ"
-                               , "PHP_BINDIR"
-                               , "PHP_CONFIG_FILE_PATH"
-                               , "PHP_CONFIG_FILE_SCAN_DIR"
-                               , "PHP_DATADIR"
-                               , "PHP_EOL"
-                               , "PHP_EXTENSION_DIR"
-                               , "PHP_LIBDIR"
-                               , "PHP_LOCALSTATEDIR"
-                               , "PHP_NORMAL_READ"
-                               , "PHP_OS"
-                               , "PHP_OUTPUT_HANDLER_CONT"
-                               , "PHP_OUTPUT_HANDLER_END"
-                               , "PHP_OUTPUT_HANDLER_START"
-                               , "PHP_PREFIX"
-                               , "PHP_SAPI"
-                               , "PHP_SHLIB_SUFFIX"
-                               , "PHP_SYSCONFDIR"
-                               , "PHP_URL_FRAGMENT"
-                               , "PHP_URL_HOST"
-                               , "PHP_URL_PASS"
-                               , "PHP_URL_PATH"
-                               , "PHP_URL_PORT"
-                               , "PHP_URL_QUERY"
-                               , "PHP_URL_SCHEME"
-                               , "PHP_URL_USER"
-                               , "PHP_VERSION"
-                               , "PKCS7_BINARY"
-                               , "PKCS7_DETACHED"
-                               , "PKCS7_NOATTR"
-                               , "PKCS7_NOCERTS"
-                               , "PKCS7_NOCHAIN"
-                               , "PKCS7_NOINTERN"
-                               , "PKCS7_NOSIGS"
-                               , "PKCS7_NOVERIFY"
-                               , "PKCS7_TEXT"
-                               , "PM_STR"
-                               , "PREG_GREP_INVERT"
-                               , "PREG_OFFSET_CAPTURE"
-                               , "PREG_PATTERN_ORDER"
-                               , "PREG_SET_ORDER"
-                               , "PREG_SPLIT_DELIM_CAPTURE"
-                               , "PREG_SPLIT_NO_EMPTY"
-                               , "PREG_SPLIT_OFFSET_CAPTURE"
-                               , "PRIO_PGRP"
-                               , "PRIO_PROCESS"
-                               , "PRIO_USER"
-                               , "PSFS_ERR_FATAL"
-                               , "PSFS_FEED_ME"
-                               , "PSFS_FLAG_FLUSH_CLOSE"
-                               , "PSFS_FLAG_FLUSH_INC"
-                               , "PSFS_FLAG_NORMAL"
-                               , "PSFS_PASS_ON"
-                               , "RADIXCHAR"
-                               , "RIT_CHILD_FIRST"
-                               , "RIT_LEAVES_ONLY"
-                               , "RIT_SELF_FIRST"
-                               , "S_IRGRP"
-                               , "S_IROTH"
-                               , "S_IRUSR"
-                               , "S_IRWXG"
-                               , "S_IRWXO"
-                               , "S_IRWXU"
-                               , "S_IWGRP"
-                               , "S_IWOTH"
-                               , "S_IWUSR"
-                               , "S_IXGRP"
-                               , "S_IXOTH"
-                               , "S_IXUSR"
-                               , "SA_ALL"
-                               , "SA_MESSAGES"
-                               , "SA_RECENT"
-                               , "SA_UIDNEXT"
-                               , "SA_UIDVALIDITY"
-                               , "SA_UNSEEN"
-                               , "SE_FREE"
-                               , "SE_NOPREFETCH"
-                               , "SE_UID"
-                               , "SEEK_CUR"
-                               , "SEEK_END"
-                               , "SEEK_SET"
-                               , "SIG_DFL"
-                               , "SIG_ERR"
-                               , "SIG_IGN"
-                               , "SIGABRT"
-                               , "SIGALRM"
-                               , "SIGBABY"
-                               , "SIGBUS"
-                               , "SIGCHLD"
-                               , "SIGCLD"
-                               , "SIGCONT"
-                               , "SIGFPE"
-                               , "SIGHUP"
-                               , "SIGILL"
-                               , "SIGINT"
-                               , "SIGIO"
-                               , "SIGIOT"
-                               , "SIGKILL"
-                               , "SIGPIPE"
-                               , "SIGPOLL"
-                               , "SIGPROF"
-                               , "SIGPWR"
-                               , "SIGQUIT"
-                               , "SIGSEGV"
-                               , "SIGSTKFLT"
-                               , "SIGSTOP"
-                               , "SIGSYS"
-                               , "SIGTERM"
-                               , "SIGTRAP"
-                               , "SIGTSTP"
-                               , "SIGTTIN"
-                               , "SIGTTOU"
-                               , "SIGURG"
-                               , "SIGUSR1"
-                               , "SIGUSR2"
-                               , "SIGVTALRM"
-                               , "SIGWINCH"
-                               , "SIGXCPU"
-                               , "SIGXFSZ"
-                               , "SNMP_BIT_STR"
-                               , "SNMP_COUNTER"
-                               , "SNMP_COUNTER64"
-                               , "SNMP_INTEGER"
-                               , "SNMP_IPADDRESS"
-                               , "SNMP_NULL"
-                               , "SNMP_OBJECT_ID"
-                               , "SNMP_OCTET_STR"
-                               , "SNMP_OPAQUE"
-                               , "SNMP_TIMETICKS"
-                               , "SNMP_UINTEGER"
-                               , "SNMP_UNSIGNED"
-                               , "SNMP_VALUE_LIBRARY"
-                               , "SNMP_VALUE_OBJECT"
-                               , "SNMP_VALUE_PLAIN"
-                               , "SO_BROADCAST"
-                               , "SO_DEBUG"
-                               , "SO_DONTROUTE"
-                               , "SO_ERROR"
-                               , "SO_FREE"
-                               , "SO_KEEPALIVE"
-                               , "SO_LINGER"
-                               , "SO_NOSERVER"
-                               , "SO_OOBINLINE"
-                               , "SO_RCVBUF"
-                               , "SO_RCVLOWAT"
-                               , "SO_RCVTIMEO"
-                               , "SO_REUSEADDR"
-                               , "SO_SNDBUF"
-                               , "SO_SNDLOWAT"
-                               , "SO_SNDTIMEO"
-                               , "SO_TYPE"
-                               , "SOAP_1_1"
-                               , "SOAP_1_2"
-                               , "SOAP_ACTOR_NEXT"
-                               , "SOAP_ACTOR_NONE"
-                               , "SOAP_ACTOR_UNLIMATERECEIVER"
-                               , "SOAP_COMPRESSION_ACCEPT"
-                               , "SOAP_COMPRESSION_DEFLATE"
-                               , "SOAP_COMPRESSION_GZIP"
-                               , "SOAP_DOCUMENT"
-                               , "SOAP_ENC_ARRAY"
-                               , "SOAP_ENC_OBJECT"
-                               , "SOAP_ENCODED"
-                               , "SOAP_FUNCTIONS_ALL"
-                               , "SOAP_LITERAL"
-                               , "SOAP_PERSISTENCE_REQUEST"
-                               , "SOAP_PERSISTENCE_SESSION"
-                               , "SOAP_RPC"
-                               , "SOCK_DGRAM"
-                               , "SOCK_RAW"
-                               , "SOCK_RDM"
-                               , "SOCK_SEQPACKET"
-                               , "SOCK_STREAM"
-                               , "SOCKET_E2BIG"
-                               , "SOCKET_EACCES"
-                               , "SOCKET_EADDRINUSE"
-                               , "SOCKET_EADDRNOTAVAIL"
-                               , "SOCKET_EADV"
-                               , "SOCKET_EAFNOSUPPORT"
-                               , "SOCKET_EAGAIN"
-                               , "SOCKET_EALREADY"
-                               , "SOCKET_EBADE"
-                               , "SOCKET_EBADF"
-                               , "SOCKET_EBADFD"
-                               , "SOCKET_EBADMSG"
-                               , "SOCKET_EBADR"
-                               , "SOCKET_EBADRQC"
-                               , "SOCKET_EBADSLT"
-                               , "SOCKET_EBUSY"
-                               , "SOCKET_ECHRNG"
-                               , "SOCKET_ECOMM"
-                               , "SOCKET_ECONNABORTED"
-                               , "SOCKET_ECONNREFUSED"
-                               , "SOCKET_ECONNRESET"
-                               , "SOCKET_EDESTADDRREQ"
-                               , "SOCKET_EDQUOT"
-                               , "SOCKET_EEXIST"
-                               , "SOCKET_EFAULT"
-                               , "SOCKET_EHOSTDOWN"
-                               , "SOCKET_EHOSTUNREACH"
-                               , "SOCKET_EIDRM"
-                               , "SOCKET_EINPROGRESS"
-                               , "SOCKET_EINTR"
-                               , "SOCKET_EINVAL"
-                               , "SOCKET_EIO"
-                               , "SOCKET_EISCONN"
-                               , "SOCKET_EISDIR"
-                               , "SOCKET_EISNAM"
-                               , "SOCKET_EL2HLT"
-                               , "SOCKET_EL2NSYNC"
-                               , "SOCKET_EL3HLT"
-                               , "SOCKET_EL3RST"
-                               , "SOCKET_ELNRNG"
-                               , "SOCKET_ELOOP"
-                               , "SOCKET_EMEDIUMTYPE"
-                               , "SOCKET_EMFILE"
-                               , "SOCKET_EMLINK"
-                               , "SOCKET_EMSGSIZE"
-                               , "SOCKET_EMULTIHOP"
-                               , "SOCKET_ENAMETOOLONG"
-                               , "SOCKET_ENETDOWN"
-                               , "SOCKET_ENETRESET"
-                               , "SOCKET_ENETUNREACH"
-                               , "SOCKET_ENFILE"
-                               , "SOCKET_ENOANO"
-                               , "SOCKET_ENOBUFS"
-                               , "SOCKET_ENOCSI"
-                               , "SOCKET_ENODATA"
-                               , "SOCKET_ENODEV"
-                               , "SOCKET_ENOENT"
-                               , "SOCKET_ENOLCK"
-                               , "SOCKET_ENOLINK"
-                               , "SOCKET_ENOMEDIUM"
-                               , "SOCKET_ENOMEM"
-                               , "SOCKET_ENOMSG"
-                               , "SOCKET_ENONET"
-                               , "SOCKET_ENOPROTOOPT"
-                               , "SOCKET_ENOSPC"
-                               , "SOCKET_ENOSR"
-                               , "SOCKET_ENOSTR"
-                               , "SOCKET_ENOSYS"
-                               , "SOCKET_ENOTBLK"
-                               , "SOCKET_ENOTCONN"
-                               , "SOCKET_ENOTDIR"
-                               , "SOCKET_ENOTEMPTY"
-                               , "SOCKET_ENOTSOCK"
-                               , "SOCKET_ENOTTY"
-                               , "SOCKET_ENOTUNIQ"
-                               , "SOCKET_ENXIO"
-                               , "SOCKET_EOPNOTSUPP"
-                               , "SOCKET_EPERM"
-                               , "SOCKET_EPFNOSUPPORT"
-                               , "SOCKET_EPIPE"
-                               , "SOCKET_EPROTO"
-                               , "SOCKET_EPROTONOSUPPORT"
-                               , "SOCKET_EPROTOTYPE"
-                               , "SOCKET_EREMCHG"
-                               , "SOCKET_EREMOTE"
-                               , "SOCKET_EREMOTEIO"
-                               , "SOCKET_ERESTART"
-                               , "SOCKET_EROFS"
-                               , "SOCKET_ESHUTDOWN"
-                               , "SOCKET_ESOCKTNOSUPPORT"
-                               , "SOCKET_ESPIPE"
-                               , "SOCKET_ESRMNT"
-                               , "SOCKET_ESTRPIPE"
-                               , "SOCKET_ETIME"
-                               , "SOCKET_ETIMEDOUT"
-                               , "SOCKET_ETOOMANYREFS"
-                               , "SOCKET_EUNATCH"
-                               , "SOCKET_EUSERS"
-                               , "SOCKET_EWOULDBLOCK"
-                               , "SOCKET_EXDEV"
-                               , "SOCKET_EXFULL"
-                               , "SOL_SOCKET"
-                               , "SOL_TCP"
-                               , "SOL_UDP"
-                               , "SOMAXCONN"
-                               , "SORT_ASC"
-                               , "SORT_DESC"
-                               , "SORT_FLAG_CASE"
-                               , "SORT_LOCALE_STRING"
-                               , "SORT_NATURAL"
-                               , "SORT_NUMERIC"
-                               , "SORT_REGULAR"
-                               , "SORT_STRING"
-                               , "SORTARRIVAL"
-                               , "SORTCC"
-                               , "SORTDATE"
-                               , "SORTFROM"
-                               , "SORTSIZE"
-                               , "SORTSUBJECT"
-                               , "SORTTO"
-                               , "SQL_BIGINT"
-                               , "SQL_BINARY"
-                               , "SQL_BIT"
-                               , "SQL_CHAR"
-                               , "SQL_CONCUR_LOCK"
-                               , "SQL_CONCUR_READ_ONLY"
-                               , "SQL_CONCUR_ROWVER"
-                               , "SQL_CONCUR_VALUES"
-                               , "SQL_CONCURRENCY"
-                               , "SQL_CUR_USE_DRIVER"
-                               , "SQL_CUR_USE_IF_NEEDED"
-                               , "SQL_CUR_USE_ODBC"
-                               , "SQL_CURSOR_DYNAMIC"
-                               , "SQL_CURSOR_FORWARD_ONLY"
-                               , "SQL_CURSOR_KEYSET_DRIVEN"
-                               , "SQL_CURSOR_STATIC"
-                               , "SQL_CURSOR_TYPE"
-                               , "SQL_DATE"
-                               , "SQL_DECIMAL"
-                               , "SQL_DOUBLE"
-                               , "SQL_FETCH_FIRST"
-                               , "SQL_FETCH_NEXT"
-                               , "SQL_FLOAT"
-                               , "SQL_INTEGER"
-                               , "SQL_KEYSET_SIZE"
-                               , "SQL_LONGVARBINARY"
-                               , "SQL_LONGVARCHAR"
-                               , "SQL_NUMERIC"
-                               , "SQL_ODBC_CURSORS"
-                               , "SQL_REAL"
-                               , "SQL_SMALLINT"
-                               , "SQL_TIME"
-                               , "SQL_TIMESTAMP"
-                               , "SQL_TINYINT"
-                               , "SQL_VARBINARY"
-                               , "SQL_VARCHAR"
-                               , "SQLITE3_ASSOC"
-                               , "SQLITE3_BLOB"
-                               , "SQLITE3_BOTH"
-                               , "SQLITE3_FLOAT"
-                               , "SQLITE3_INTEGER"
-                               , "SQLITE3_NULL"
-                               , "SQLITE3_NUM"
-                               , "SQLITE3_OPEN_CREATE"
-                               , "SQLITE3_OPEN_READONLY"
-                               , "SQLITE3_OPEN_READWRITE"
-                               , "SQLITE3_TEXT"
-                               , "SQLITE_ABORT"
-                               , "SQLITE_ASSOC"
-                               , "SQLITE_AUTH"
-                               , "SQLITE_BOTH"
-                               , "SQLITE_BUSY"
-                               , "SQLITE_CANTOPEN"
-                               , "SQLITE_CONSTRAINT"
-                               , "SQLITE_CORRUPT"
-                               , "SQLITE_DONE"
-                               , "SQLITE_EMPTY"
-                               , "SQLITE_ERROR"
-                               , "SQLITE_FORMAT"
-                               , "SQLITE_FULL"
-                               , "SQLITE_INTERNAL"
-                               , "SQLITE_INTERRUPT"
-                               , "SQLITE_IOERR"
-                               , "SQLITE_LOCKED"
-                               , "SQLITE_MISMATCH"
-                               , "SQLITE_MISUSE"
-                               , "SQLITE_NOLFS"
-                               , "SQLITE_NOMEM"
-                               , "SQLITE_NOTFOUND"
-                               , "SQLITE_NUM"
-                               , "SQLITE_OK"
-                               , "SQLITE_PERM"
-                               , "SQLITE_PROTOCOL"
-                               , "SQLITE_READONLY"
-                               , "SQLITE_ROW"
-                               , "SQLITE_SCHEMA"
-                               , "SQLITE_TOOBIG"
-                               , "SQLT_AFC"
-                               , "SQLT_AVC"
-                               , "SQLT_BDOUBLE"
-                               , "SQLT_BFILEE"
-                               , "SQLT_BFLOAT"
-                               , "SQLT_BIN"
-                               , "SQLT_BLOB"
-                               , "SQLT_CFILEE"
-                               , "SQLT_CHR"
-                               , "SQLT_CLOB"
-                               , "SQLT_FLT"
-                               , "SQLT_INT"
-                               , "SQLT_LBI"
-                               , "SQLT_LNG"
-                               , "SQLT_LVC"
-                               , "SQLT_NTY"
-                               , "SQLT_NUM"
-                               , "SQLT_ODT"
-                               , "SQLT_RDD"
-                               , "SQLT_RSET"
-                               , "SQLT_STR"
-                               , "SQLT_UIN"
-                               , "SQLT_VCS"
-                               , "ST_SET"
-                               , "ST_SILENT"
-                               , "ST_UID"
-                               , "STDERR"
-                               , "STDIN"
-                               , "STDOUT"
-                               , "STR_PAD_BOTH"
-                               , "STR_PAD_LEFT"
-                               , "STR_PAD_RIGHT"
-                               , "STREAM_CLIENT_ASYNC_CONNECT"
-                               , "STREAM_CLIENT_CONNECT"
-                               , "STREAM_CLIENT_PERSISTENT"
-                               , "STREAM_ENFORCE_SAFE_MODE"
-                               , "STREAM_FILTER_ALL"
-                               , "STREAM_FILTER_READ"
-                               , "STREAM_FILTER_WRITE"
-                               , "STREAM_IGNORE_URL"
-                               , "STREAM_MKDIR_RECURSIVE"
-                               , "STREAM_MUST_SEEK"
-                               , "STREAM_NOTIFY_AUTH_REQUIRED"
-                               , "STREAM_NOTIFY_AUTH_RESULT"
-                               , "STREAM_NOTIFY_COMPLETED"
-                               , "STREAM_NOTIFY_CONNECT"
-                               , "STREAM_NOTIFY_FAILURE"
-                               , "STREAM_NOTIFY_FILE_SIZE_IS"
-                               , "STREAM_NOTIFY_MIME_TYPE_IS"
-                               , "STREAM_NOTIFY_PROGRESS"
-                               , "STREAM_NOTIFY_REDIRECTED"
-                               , "STREAM_NOTIFY_RESOLVE"
-                               , "STREAM_NOTIFY_SEVERITY_ERR"
-                               , "STREAM_NOTIFY_SEVERITY_INFO"
-                               , "STREAM_NOTIFY_SEVERITY_WARN"
-                               , "STREAM_OOB"
-                               , "STREAM_PEEK"
-                               , "STREAM_REPORT_ERRORS"
-                               , "STREAM_SERVER_BIND"
-                               , "STREAM_SERVER_LISTEN"
-                               , "STREAM_URL_STAT_LINK"
-                               , "STREAM_URL_STAT_QUIET"
-                               , "STREAM_USE_PATH"
-                               , "SUNFUNCS_RET_DOUBLE"
-                               , "SUNFUNCS_RET_STRING"
-                               , "SUNFUNCS_RET_TIMESTAMP"
-                               , "T_ABSTRACT"
-                               , "T_AND_EQUAL"
-                               , "T_ARRAY"
-                               , "T_ARRAY_CAST"
-                               , "T_AS"
-                               , "T_BAD_CHARACTER"
-                               , "T_BOOL_CAST"
-                               , "T_BOOLEAN_AND"
-                               , "T_BOOLEAN_OR"
-                               , "T_BREAK"
-                               , "T_CASE"
-                               , "T_CATCH"
-                               , "T_CHARACTER"
-                               , "T_CLASS"
-                               , "T_CLASS_C"
-                               , "T_CLONE"
-                               , "T_CLOSE_TAG"
-                               , "T_COMMENT"
-                               , "T_CONCAT_EQUAL"
-                               , "T_CONST"
-                               , "T_CONSTANT_ENCAPSED_STRING"
-                               , "T_CONTINUE"
-                               , "T_CURLY_OPEN"
-                               , "T_DEC"
-                               , "T_DECLARE"
-                               , "T_DEFAULT"
-                               , "T_DIV_EQUAL"
-                               , "T_DNUMBER"
-                               , "T_DO"
-                               , "T_DOC_COMMENT"
-                               , "T_DOLLAR_OPEN_CURLY_BRACES"
-                               , "T_DOUBLE_ARROW"
-                               , "T_DOUBLE_CAST"
-                               , "T_DOUBLE_COLON"
-                               , "T_ECHO"
-                               , "T_ELSE"
-                               , "T_ELSEIF"
-                               , "T_EMPTY"
-                               , "T_ENCAPSED_AND_WHITESPACE"
-                               , "T_END_HEREDOC"
-                               , "T_ENDDECLARE"
-                               , "T_ENDFOR"
-                               , "T_ENDFOREACH"
-                               , "T_ENDIF"
-                               , "T_ENDSWITCH"
-                               , "T_ENDWHILE"
-                               , "T_EVAL"
-                               , "T_EXIT"
-                               , "T_EXTENDS"
-                               , "T_FILE"
-                               , "T_FINAL"
-                               , "T_FMT"
-                               , "T_FMT_AMPM"
-                               , "T_FOR"
-                               , "T_FOREACH"
-                               , "T_FUNC_C"
-                               , "T_FUNCTION"
-                               , "T_GLOBAL"
-                               , "T_IF"
-                               , "T_IMPLEMENTS"
-                               , "T_INC"
-                               , "T_INCLUDE"
-                               , "T_INCLUDE_ONCE"
-                               , "T_INLINE_HTML"
-                               , "T_INSTANCEOF"
-                               , "T_INT_CAST"
-                               , "T_INTERFACE"
-                               , "T_IS_EQUAL"
-                               , "T_IS_GREATER_OR_EQUAL"
-                               , "T_IS_IDENTICAL"
-                               , "T_IS_NOT_EQUAL"
-                               , "T_IS_NOT_IDENTICAL"
-                               , "T_IS_SMALLER_OR_EQUAL"
-                               , "T_ISSET"
-                               , "T_LINE"
-                               , "T_LIST"
-                               , "T_LNUMBER"
-                               , "T_LOGICAL_AND"
-                               , "T_LOGICAL_OR"
-                               , "T_LOGICAL_XOR"
-                               , "T_METHOD_C"
-                               , "T_MINUS_EQUAL"
-                               , "T_MOD_EQUAL"
-                               , "T_MUL_EQUAL"
-                               , "T_NEW"
-                               , "T_NUM_STRING"
-                               , "T_OBJECT_CAST"
-                               , "T_OBJECT_OPERATOR"
-                               , "T_OPEN_TAG"
-                               , "T_OPEN_TAG_WITH_ECHO"
-                               , "T_OR_EQUAL"
-                               , "T_PAAMAYIM_NEKUDOTAYIM"
-                               , "T_PLUS_EQUAL"
-                               , "T_PRINT"
-                               , "T_PRIVATE"
-                               , "T_PROTECTED"
-                               , "T_PUBLIC"
-                               , "T_REQUIRE"
-                               , "T_REQUIRE_ONCE"
-                               , "T_RETURN"
-                               , "T_SL"
-                               , "T_SL_EQUAL"
-                               , "T_SR"
-                               , "T_SR_EQUAL"
-                               , "T_START_HEREDOC"
-                               , "T_STATIC"
-                               , "T_STRING"
-                               , "T_STRING_CAST"
-                               , "T_STRING_VARNAME"
-                               , "T_SWITCH"
-                               , "T_THROW"
-                               , "T_TRY"
-                               , "T_UNSET"
-                               , "T_UNSET_CAST"
-                               , "T_USE"
-                               , "T_VAR"
-                               , "T_VARIABLE"
-                               , "T_WHILE"
-                               , "T_WHITESPACE"
-                               , "T_XOR_EQUAL"
-                               , "THOUSEP"
-                               , "true"
-                               , "TYPEAPPLICATION"
-                               , "TYPEAUDIO"
-                               , "TYPEIMAGE"
-                               , "TYPEMESSAGE"
-                               , "TYPEMODEL"
-                               , "TYPEMULTIPART"
-                               , "TYPEOTHER"
-                               , "TYPETEXT"
-                               , "TYPEVIDEO"
-                               , "UNKNOWN_TYPE"
-                               , "UPLOAD_ERR_CANT_WRITE"
-                               , "UPLOAD_ERR_FORM_SIZE"
-                               , "UPLOAD_ERR_INI_SIZE"
-                               , "UPLOAD_ERR_NO_FILE"
-                               , "UPLOAD_ERR_NO_TMP_DIR"
-                               , "UPLOAD_ERR_OK"
-                               , "UPLOAD_ERR_PARTIAL"
-                               , "WNOHANG"
-                               , "WUNTRACED"
-                               , "X509_PURPOSE_ANY"
-                               , "X509_PURPOSE_CRL_SIGN"
-                               , "X509_PURPOSE_NS_SSL_SERVER"
-                               , "X509_PURPOSE_SMIME_ENCRYPT"
-                               , "X509_PURPOSE_SMIME_SIGN"
-                               , "X509_PURPOSE_SSL_CLIENT"
-                               , "X509_PURPOSE_SSL_SERVER"
-                               , "XML_ATTRIBUTE_CDATA"
-                               , "XML_ATTRIBUTE_DECL_NODE"
-                               , "XML_ATTRIBUTE_ENTITY"
-                               , "XML_ATTRIBUTE_ENUMERATION"
-                               , "XML_ATTRIBUTE_ID"
-                               , "XML_ATTRIBUTE_IDREF"
-                               , "XML_ATTRIBUTE_IDREFS"
-                               , "XML_ATTRIBUTE_NMTOKEN"
-                               , "XML_ATTRIBUTE_NMTOKENS"
-                               , "XML_ATTRIBUTE_NODE"
-                               , "XML_ATTRIBUTE_NOTATION"
-                               , "XML_CDATA_SECTION_NODE"
-                               , "XML_COMMENT_NODE"
-                               , "XML_DOCUMENT_FRAG_NODE"
-                               , "XML_DOCUMENT_NODE"
-                               , "XML_DOCUMENT_TYPE_NODE"
-                               , "XML_DTD_NODE"
-                               , "XML_ELEMENT_DECL_NODE"
-                               , "XML_ELEMENT_NODE"
-                               , "XML_ENTITY_DECL_NODE"
-                               , "XML_ENTITY_NODE"
-                               , "XML_ENTITY_REF_NODE"
-                               , "XML_ERROR_ASYNC_ENTITY"
-                               , "XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF"
-                               , "XML_ERROR_BAD_CHAR_REF"
-                               , "XML_ERROR_BINARY_ENTITY_REF"
-                               , "XML_ERROR_DUPLICATE_ATTRIBUTE"
-                               , "XML_ERROR_EXTERNAL_ENTITY_HANDLING"
-                               , "XML_ERROR_INCORRECT_ENCODING"
-                               , "XML_ERROR_INVALID_TOKEN"
-                               , "XML_ERROR_JUNK_AFTER_DOC_ELEMENT"
-                               , "XML_ERROR_MISPLACED_XML_PI"
-                               , "XML_ERROR_NO_ELEMENTS"
-                               , "XML_ERROR_NO_MEMORY"
-                               , "XML_ERROR_NONE"
-                               , "XML_ERROR_PARAM_ENTITY_REF"
-                               , "XML_ERROR_PARTIAL_CHAR"
-                               , "XML_ERROR_RECURSIVE_ENTITY_REF"
-                               , "XML_ERROR_SYNTAX"
-                               , "XML_ERROR_TAG_MISMATCH"
-                               , "XML_ERROR_UNCLOSED_CDATA_SECTION"
-                               , "XML_ERROR_UNCLOSED_TOKEN"
-                               , "XML_ERROR_UNDEFINED_ENTITY"
-                               , "XML_ERROR_UNKNOWN_ENCODING"
-                               , "XML_HTML_DOCUMENT_NODE"
-                               , "XML_LOCAL_NAMESPACE"
-                               , "XML_NAMESPACE_DECL_NODE"
-                               , "XML_NOTATION_NODE"
-                               , "XML_OPTION_CASE_FOLDING"
-                               , "XML_OPTION_SKIP_TAGSTART"
-                               , "XML_OPTION_SKIP_WHITE"
-                               , "XML_OPTION_TARGET_ENCODING"
-                               , "XML_PI_NODE"
-                               , "XML_SAX_IMPL"
-                               , "XML_TEXT_NODE"
-                               , "XSD_1999_NAMESPACE"
-                               , "XSD_1999_TIMEINSTANT"
-                               , "XSD_ANYTYPE"
-                               , "XSD_ANYURI"
-                               , "XSD_BASE64BINARY"
-                               , "XSD_BOOLEAN"
-                               , "XSD_BYTE"
-                               , "XSD_DATE"
-                               , "XSD_DATETIME"
-                               , "XSD_DECIMAL"
-                               , "XSD_DOUBLE"
-                               , "XSD_DURATION"
-                               , "XSD_ENTITIES"
-                               , "XSD_ENTITY"
-                               , "XSD_FLOAT"
-                               , "XSD_GDAY"
-                               , "XSD_GMONTH"
-                               , "XSD_GMONTHDAY"
-                               , "XSD_GYEAR"
-                               , "XSD_GYEARMONTH"
-                               , "XSD_HEXBINARY"
-                               , "XSD_ID"
-                               , "XSD_IDREF"
-                               , "XSD_IDREFS"
-                               , "XSD_INT"
-                               , "XSD_INTEGER"
-                               , "XSD_LANGUAGE"
-                               , "XSD_LONG"
-                               , "XSD_NAME"
-                               , "XSD_NAMESPACE"
-                               , "XSD_NCNAME"
-                               , "XSD_NEGATIVEINTEGER"
-                               , "XSD_NMTOKEN"
-                               , "XSD_NMTOKENS"
-                               , "XSD_NONNEGATIVEINTEGER"
-                               , "XSD_NONPOSITIVEINTEGER"
-                               , "XSD_NORMALIZEDSTRING"
-                               , "XSD_NOTATION"
-                               , "XSD_POSITIVEINTEGER"
-                               , "XSD_QNAME"
-                               , "XSD_SHORT"
-                               , "XSD_STRING"
-                               , "XSD_TIME"
-                               , "XSD_TOKEN"
-                               , "XSD_UNSIGNEDBYTE"
-                               , "XSD_UNSIGNEDINT"
-                               , "XSD_UNSIGNEDLONG"
-                               , "XSD_UNSIGNEDSHORT"
-                               , "XSL_CLONE_ALWAYS"
-                               , "XSL_CLONE_AUTO"
-                               , "XSL_CLONE_NEVER"
-                               , "YESEXPR"
-                               , "YPERR_BADARGS"
-                               , "YPERR_BADDB"
-                               , "YPERR_BUSY"
-                               , "YPERR_DOMAIN"
-                               , "YPERR_KEY"
-                               , "YPERR_MAP"
-                               , "YPERR_NODOM"
-                               , "YPERR_NOMORE"
-                               , "YPERR_PMAP"
-                               , "YPERR_RESRC"
-                               , "YPERR_RPC"
-                               , "YPERR_VERS"
-                               , "YPERR_YPBIND"
-                               , "YPERR_YPERR"
-                               , "YPERR_YPSERV"
-                               , "ZEND_THREAD_SAFE"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[A-Z_][A-Z_0-9]*\\b"
-                              , reCompiled = Just (compileRegex True "\\b[A-Z_][A-Z_0-9]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\(\\s*(int|integer|bool|boolean|float|double|real|string|array|object)\\s*\\)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\(\\s*(int|integer|bool|boolean|float|double|real|string|array|object)\\s*\\)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PHP/PHP" , "doublequotestring" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PHP/PHP" , "backquotestring" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PHP/PHP" , "singlequotestring" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<<<\"((EO)?HTML)\""
-                              , reCompiled = Just (compileRegex True "<<<\"((EO)?HTML)\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PHP/PHP" , "htmlheredoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<<<\"((EO)?CSS)\""
-                              , reCompiled = Just (compileRegex True "<<<\"((EO)?CSS)\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PHP/PHP" , "cssheredoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<<<\"((EO)?JAVASCRIPT)\""
-                              , reCompiled = Just (compileRegex True "<<<\"((EO)?JAVASCRIPT)\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PHP/PHP" , "javascriptheredoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<<<\"((EO)?MYSQL)\""
-                              , reCompiled = Just (compileRegex True "<<<\"((EO)?MYSQL)\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PHP/PHP" , "mysqlheredoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<<<\"([A-Za-z_][A-Za-z0-9_]*)\""
-                              , reCompiled =
-                                  Just (compileRegex True "<<<\"([A-Za-z_][A-Za-z0-9_]*)\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PHP/PHP" , "heredoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<<<((EO)?HTML)\\b"
-                              , reCompiled = Just (compileRegex True "<<<((EO)?HTML)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PHP/PHP" , "htmlheredoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<<<((EO)?CSS)\\b"
-                              , reCompiled = Just (compileRegex True "<<<((EO)?CSS)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PHP/PHP" , "cssheredoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<<<((EO)?JAVASCRIPT)\\b"
-                              , reCompiled = Just (compileRegex True "<<<((EO)?JAVASCRIPT)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PHP/PHP" , "javascriptheredoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<<<((EO)?MYSQL)\\b"
-                              , reCompiled = Just (compileRegex True "<<<((EO)?MYSQL)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PHP/PHP" , "mysqlheredoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<<<([A-Za-z_][A-Za-z0-9_]*)"
-                              , reCompiled =
-                                  Just (compileRegex True "<<<([A-Za-z_][A-Za-z0-9_]*)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PHP/PHP" , "heredoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<<<'((EO)?HTML)'"
-                              , reCompiled = Just (compileRegex True "<<<'((EO)?HTML)'")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PHP/PHP" , "htmlnowdoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<<<'((EO)?CSS)'"
-                              , reCompiled = Just (compileRegex True "<<<'((EO)?CSS)'")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PHP/PHP" , "cssnowdoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<<<'((EO)?JAVASCRIPT)'"
-                              , reCompiled = Just (compileRegex True "<<<'((EO)?JAVASCRIPT)'")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PHP/PHP" , "javascriptnowdoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<<<'((EO)?MYSQL)'"
-                              , reCompiled = Just (compileRegex True "<<<'((EO)?MYSQL)'")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PHP/PHP" , "mysqlnowdoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<<<'([A-Za-z_][A-Za-z0-9_]*)'"
-                              , reCompiled =
-                                  Just (compileRegex True "<<<'([A-Za-z_][A-Za-z0-9_]*)'")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PHP/PHP" , "nowdoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?@[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "$_COOKIE"
-                               , "$_ENV"
-                               , "$_FILES"
-                               , "$_GET"
-                               , "$_POST"
-                               , "$_REQUEST"
-                               , "$_SERVER"
-                               , "$_SESSION"
-                               , "$GLOBALS"
-                               , "$php_errormsg"
-                               , "$this"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\$+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[0123456789]*\\.\\.\\.[0123456789]*"
-                              , reCompiled =
-                                  Just (compileRegex True "[0123456789]*\\.\\.\\.[0123456789]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "0[bB][01]+"
-                              , reCompiled = Just (compileRegex True "0[bB][01]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ";(),[]"
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "singlequotestring"
-          , Context
-              { cName = "singlequotestring"
-              , cSyntax = "PHP/PHP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '\''
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "start"
-          , Context
-              { cName = "start"
-              , cSyntax = "PHP/PHP"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\?(?:=|php)?"
-                              , reCompiled = Just (compileRegex False "<\\?(?:=|php)?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PHP/PHP" , "phpsource" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "?>"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Push ( "PHP/PHP" , "phpsource" ) ]
-              , cDynamic = False
-              }
-          )
-        , ( "ternary"
-          , Context
-              { cName = "ternary"
-              , cSyntax = "PHP/PHP"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars ':' ':'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ':'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "PHP/PHP" , "phpsource" )
-                      , 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
-              }
-          )
-        , ( "twolinecomment"
-          , Context
-              { cName = "twolinecomment"
-              , cSyntax = "PHP/PHP"
-              , cRules =
-                  [ 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 = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = ""
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = []
-  , sStartingContext = "start"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"PHP/PHP\", sFilename = \"php.xml\", sShortname = \"Php\", sContexts = fromList [(\"backquotestring\",Context {cName = \"backquotestring\", cSyntax = \"PHP/PHP\", cRules = [Rule {rMatcher = IncludeRules (\"PHP/PHP\",\"doublebackquotestringcommon\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '`', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '`', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"case\",Context {cName = \"case\", cSyntax = \"PHP/PHP\", cRules = [Rule {rMatcher = IncludeRules (\"PHP/PHP\",\"ternary\"), 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}),(\"commonheredoc\",Context {cName = \"commonheredoc\", cSyntax = \"PHP/PHP\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[a-zA-Z_\\\\x7f-\\\\xff][a-zA-Z0-9_\\\\x7f-\\\\xff]*(\\\\[[a-zA-Z0-9_]*\\\\])*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\{[a-zA-Z_\\\\x7f-\\\\xff][a-zA-Z0-9_\\\\x7f-\\\\xff]*(\\\\[[a-zA-Z0-9_]*\\\\])*\\\\}\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\{\\\\$[a-zA-Z_\\\\x7f-\\\\xff][a-zA-Z0-9_\\\\x7f-\\\\xff]*(\\\\[([0-9]*|\\\"[a-zA-Z_]*\\\")|'[a-zA-Z_]*'|\\\\])*(->[a-zA-Z_\\\\x7f-\\\\xff][a-zA-Z0-9_\\\\x7f-\\\\xff]*(\\\\[[a-zA-Z0-9_]*\\\\])*(\\\\[([0-9]*|\\\"[a-zA-Z_]*\\\")|'[a-zA-Z_]*'|\\\\])*)*\\\\}\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"commonnowdoc\",Context {cName = \"commonnowdoc\", cSyntax = \"PHP/PHP\", cRules = [], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"cssheredoc\",Context {cName = \"cssheredoc\", cSyntax = \"PHP/PHP\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1;?$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"PHP/PHP\",\"commonheredoc\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"CSS\",\"\"), 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 = True}),(\"cssnowdoc\",Context {cName = \"cssnowdoc\", cSyntax = \"PHP/PHP\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1;?$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"PHP/PHP\",\"commonnowdoc\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"CSS\",\"\"), 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 = True}),(\"doublebackquotestringcommon\",Context {cName = \"doublebackquotestringcommon\", cSyntax = \"PHP/PHP\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' 'n', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' 'r', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' 't', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' 'v', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' 'f', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '$', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[0-7]{1,3}\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\x[0-9A-Fa-f]{1,2}\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[a-zA-Z_\\\\x7f-\\\\xff][a-zA-Z0-9_\\\\x7f-\\\\xff]*(\\\\[[a-zA-Z0-9_]*\\\\])*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\{[a-zA-Z_\\\\x7f-\\\\xff][a-zA-Z0-9_\\\\x7f-\\\\xff]*(\\\\[[a-zA-Z0-9_]*\\\\])*\\\\}\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\{\\\\$[a-zA-Z_\\\\x7f-\\\\xff][a-zA-Z0-9_\\\\x7f-\\\\xff]*(\\\\[([0-9]*|\\\"[^\\\"]*\\\"|\\\\$[a-zA-Z]*)|'[^']*'|\\\\])*(->[a-zA-Z_\\\\x7f-\\\\xff][a-zA-Z0-9_\\\\x7f-\\\\xff]*(\\\\[[a-zA-Z0-9_]*\\\\])*(\\\\[([0-9]*|\\\"[a-zA-Z_]*\\\")|'[a-zA-Z_]*'|\\\\])*)*\\\\}\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"doublequotestring\",Context {cName = \"doublequotestring\", cSyntax = \"PHP/PHP\", cRules = [Rule {rMatcher = IncludeRules (\"PHP/PHP\",\"doublebackquotestringcommon\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\"', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"heredoc\",Context {cName = \"heredoc\", cSyntax = \"PHP/PHP\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1;?$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"PHP/PHP\",\"commonheredoc\"), 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 = True}),(\"htmlheredoc\",Context {cName = \"htmlheredoc\", cSyntax = \"PHP/PHP\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1;?$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"PHP/PHP\",\"commonheredoc\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"HTML\",\"\"), 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 = True}),(\"htmlnowdoc\",Context {cName = \"htmlnowdoc\", cSyntax = \"PHP/PHP\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1;?$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"PHP/PHP\",\"commonnowdoc\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"HTML\",\"\"), 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 = True}),(\"javascriptheredoc\",Context {cName = \"javascriptheredoc\", cSyntax = \"PHP/PHP\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1;?$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"PHP/PHP\",\"commonheredoc\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"JavaScript\",\"Normal\"), 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 = True}),(\"javascriptnowdoc\",Context {cName = \"javascriptnowdoc\", cSyntax = \"PHP/PHP\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1;?$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"PHP/PHP\",\"commonnowdoc\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"JavaScript\",\"Normal\"), 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 = True}),(\"mysqlheredoc\",Context {cName = \"mysqlheredoc\", cSyntax = \"PHP/PHP\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1;?$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"PHP/PHP\",\"commonheredoc\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"SQL (MySQL)\",\"\"), 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 = True}),(\"mysqlnowdoc\",Context {cName = \"mysqlnowdoc\", cSyntax = \"PHP/PHP\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1;?$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"PHP/PHP\",\"commonnowdoc\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"SQL (MySQL)\",\"\"), 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 = True}),(\"nowdoc\",Context {cName = \"nowdoc\", cSyntax = \"PHP/PHP\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1;?$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"PHP/PHP\",\"commonnowdoc\"), 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 = True}),(\"onelinecomment\",Context {cName = \"onelinecomment\", cSyntax = \"PHP/PHP\", cRules = [Rule {rMatcher = StringDetect \"?>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, 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 = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"phpsource\",Context {cName = \"phpsource\", cSyntax = \"PHP/PHP\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"?>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '?', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PHP/PHP\",\"ternary\")]},Rule {rMatcher = RegExpr (RE {reString = \"(case|default)(\\\\s|:|$)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PHP/PHP\",\"case\")]},Rule {rMatcher = Detect2Chars ':' ':', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ':', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"endif|endwhile|endfor|endforeach|endswitch\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PHP/PHP\",\"onelinecomment\")]},Rule {rMatcher = IncludeRules (\"Doxygen\",\"\"), rAttribute = NormalTok, 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 (\"PHP/PHP\",\"onelinecomment\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PHP/PHP\",\"twolinecomment\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?@[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"$DOCUMENT_ROOT\",\"$HTTP_COOKIE_VARS\",\"$HTTP_ENV_VARS\",\"$HTTP_GET_VARS\",\"$HTTP_POST_FILES\",\"$HTTP_POST_VARS\",\"$HTTP_SERVER_VARS\",\"$HTTP_SESSION_VARS\",\"call_user_method\",\"call_user_method_array\",\"ereg\",\"ereg_replace\",\"eregi\",\"eregi_replace\",\"mcrypt_ecb\",\"mime_content_type\",\"mysql_create_db\",\"mysql_dbname\",\"mysql_drop_db\",\"mysql_fieldflags\",\"mysql_fieldlen\",\"mysql_fieldname\",\"mysql_fieldtable\",\"mysql_fieldtype\",\"mysql_freeresult\",\"mysql_list_fields\",\"mysql_list_tables\",\"mysql_listdbs\",\"mysql_listfields\",\"mysql_listtables\",\"mysql_numfields\",\"mysql_numrows\",\"mysql_selectdb\",\"mysql_tablename\",\"mysqli_disable_reads_from_master\",\"mysqli_disable_rpl_parse\",\"mysqli_enable_reads_from_master\",\"mysqli_enable_rpl_parse\",\"mysqli_master_query\",\"mysqli_rpl_parse_enabled\",\"mysqli_rpl_probe\",\"mysqli_rpl_query_type\",\"mysqli_send_query\",\"mysqli_slave_query\",\"OCI_D_FILE\",\"OCI_D_LOB\",\"OCI_D_ROWID\",\"OCI_DEFAULT\",\"OCI_EXACT_FETCH\",\"OCI_SYSDATE\",\"ocifetchinto\",\"ora_bind\",\"ora_close\",\"ora_columnname\",\"ora_columnsize\",\"ora_columntype\",\"ora_commit\",\"ora_commitoff\",\"ora_commiton\",\"ora_do\",\"ora_error\",\"ora_errorcode\",\"ora_exec\",\"ora_fetch\",\"ora_fetch_into\",\"ora_getcolumn\",\"ora_logoff\",\"ora_logon\",\"ora_numcols\",\"ora_numrows\",\"ora_open\",\"ora_parse\",\"ora_plogon\",\"ora_rollback\",\"php_check_syntax\",\"split\",\"spliti\",\"sql_regcase\",\"var\"])), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?@[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"as\",\"break\",\"case\",\"continue\",\"declare\",\"default\",\"do\",\"else\",\"elseif\",\"endfor\",\"endforeach\",\"endif\",\"endswitch\",\"endwhile\",\"for\",\"foreach\",\"if\",\"include\",\"include_once\",\"require\",\"require_once\",\"return\",\"switch\",\"while\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?@[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"abstract\",\"and\",\"callable\",\"catch\",\"class\",\"clone\",\"const\",\"exception\",\"extends\",\"final\",\"finally\",\"function\",\"global\",\"implements\",\"instanceof\",\"insteadof\",\"interface\",\"namespace\",\"new\",\"or\",\"parent\",\"private\",\"protected\",\"public\",\"self\",\"static\",\"throw\",\"trait\",\"try\",\"use\",\"var\",\"xor\",\"yield\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?@[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"__PHP_Incomplete_Class\",\"APCIterator\",\"AppendIterator\",\"ArrayAccess\",\"ArrayIterator\",\"ArrayObject\",\"BadFunctionCallException\",\"BadMethodCallException\",\"CachingIterator\",\"Closure\",\"Countable\",\"DateInterval\",\"DatePeriod\",\"DateTime\",\"DateTimeZone\",\"Directory\",\"DirectoryIterator\",\"DomainException\",\"DOMAttr\",\"DOMCDATASection\",\"DOMCharacterData\",\"DOMComment\",\"DOMConfiguration\",\"DOMDocument\",\"DOMDocumentFragment\",\"DOMDocumentType\",\"DOMDomError\",\"DOMElement\",\"DOMEntity\",\"DOMEntityReference\",\"DOMErrorHandler\",\"DOMException\",\"DOMImplementation\",\"DOMImplementationList\",\"DOMImplementationSource\",\"DOMLocator\",\"DOMNamedNodeMap\",\"DOMNameList\",\"DOMNameSpaceNode\",\"DOMNode\",\"DOMNodeList\",\"DOMNotation\",\"DOMProcessingInstruction\",\"DOMStringExtend\",\"DOMStringList\",\"DOMText\",\"DOMTypeinfo\",\"DOMUserDataHandler\",\"DOMXPath\",\"EmptyIterator\",\"ErrorException\",\"Exception\",\"FilesystemIterator\",\"FilterIterator\",\"GlobIterator\",\"InfiniteIterator\",\"InvalidArgumentException\",\"Iterator\",\"IteratorAggregate\",\"IteratorIterator\",\"LengthException\",\"LibXMLError\",\"LimitIterator\",\"LogicException\",\"MultipleIterator\",\"MySQLi\",\"MySQLi_Driver\",\"MySQLi_Result\",\"MySQLi_SQL_Exception\",\"MySQLi_STMT\",\"MySQLi_Warning\",\"NoRewindIterator\",\"OCI-Collection\",\"OCI-LOB\",\"OuterIterator\",\"OutOfBoundsException\",\"OutOfRangeException\",\"OverflowException\",\"ParentIterator\",\"PDO\",\"PDOException\",\"PDORow\",\"PDOStatement\",\"Phar\",\"PharData\",\"PharException\",\"PharFileInfo\",\"php_user_filter\",\"RangeException\",\"RecursiveArrayIterator\",\"RecursiveCachingIterator\",\"RecursiveDirectoryIterator\",\"RecursiveFilterIterator\",\"RecursiveIterator\",\"RecursiveIteratorIterator\",\"RecursiveRegexIterator\",\"RecursiveTreeIterator\",\"Reflection\",\"ReflectionClass\",\"ReflectionException\",\"ReflectionExtension\",\"ReflectionFunction\",\"ReflectionFunctionAbstract\",\"ReflectionMethod\",\"ReflectionObject\",\"ReflectionParameter\",\"ReflectionProperty\",\"Reflector\",\"RegexIterator\",\"RuntimeException\",\"SeekableIterator\",\"Serializable\",\"SimpleXMLElement\",\"SimpleXMLIterator\",\"SplDoublyLinkedList\",\"SplFileInfo\",\"SplFileObject\",\"SplFixedArray\",\"SplHeap\",\"SplMaxHeap\",\"SplMinHeap\",\"SplObjectStorage\",\"SplObserver\",\"SplPriorityQueue\",\"SplQueue\",\"SplStack\",\"SplSubject\",\"SplTempFileObject\",\"SQLite3\",\"SQLite3Result\",\"SQLite3Stmt\",\"SQLiteDatabase\",\"SQLiteException\",\"SQLiteResult\",\"SQLiteUnbuffered\",\"stdClass\",\"Traversable\",\"UnderflowException\",\"UnexpectedValueException\",\"XMLReader\",\"XMLWriter\",\"XSLTProcessor\",\"ZipArchive\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '@', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?@[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"_\",\"abs\",\"acos\",\"acosh\",\"addcslashes\",\"addslashes\",\"apache_get_modules\",\"apache_get_version\",\"apache_getenv\",\"apache_lookup_uri\",\"apache_note\",\"apache_request_headers\",\"apache_response_headers\",\"apache_setenv\",\"array\",\"array_change_key_case\",\"array_chunk\",\"array_combine\",\"array_count_values\",\"array_diff\",\"array_diff_assoc\",\"array_diff_key\",\"array_diff_uassoc\",\"array_diff_ukey\",\"array_fill\",\"array_fill_keys\",\"array_filter\",\"array_flip\",\"array_intersect\",\"array_intersect_assoc\",\"array_intersect_key\",\"array_intersect_uassoc\",\"array_intersect_ukey\",\"array_key_exists\",\"array_keys\",\"array_map\",\"array_merge\",\"array_merge_recursive\",\"array_multisort\",\"array_pad\",\"array_pop\",\"array_product\",\"array_push\",\"array_rand\",\"array_reduce\",\"array_replace\",\"array_replace_recursive\",\"array_reverse\",\"array_search\",\"array_shift\",\"array_slice\",\"array_splice\",\"array_sum\",\"array_udiff\",\"array_udiff_assoc\",\"array_udiff_uassoc\",\"array_uintersect\",\"array_uintersect_assoc\",\"array_uintersect_uassoc\",\"array_unique\",\"array_unshift\",\"array_values\",\"array_walk\",\"array_walk_recursive\",\"arsort\",\"ascii2ebcdic\",\"asin\",\"asinh\",\"asort\",\"aspell_check\",\"aspell_check_raw\",\"aspell_new\",\"aspell_suggest\",\"assert\",\"assert_options\",\"atan\",\"atan2\",\"atanh\",\"base64_decode\",\"base64_encode\",\"base_convert\",\"basename\",\"bcadd\",\"bccomp\",\"bcdiv\",\"bcmod\",\"bcmul\",\"bcpow\",\"bcpowmod\",\"bcscale\",\"bcsqrt\",\"bcsub\",\"bin2hex\",\"bind_textdomain_codeset\",\"bindec\",\"bindtextdomain\",\"bzclose\",\"bzcompress\",\"bzdecompress\",\"bzerrno\",\"bzerror\",\"bzerrstr\",\"bzflush\",\"bzopen\",\"bzread\",\"bzwrite\",\"cal_days_in_month\",\"cal_from_jd\",\"cal_info\",\"cal_to_jd\",\"call_user_func\",\"call_user_func_array\",\"ccvs_add\",\"ccvs_auth\",\"ccvs_command\",\"ccvs_count\",\"ccvs_delete\",\"ccvs_done\",\"ccvs_init\",\"ccvs_lookup\",\"ccvs_new\",\"ccvs_report\",\"ccvs_return\",\"ccvs_reverse\",\"ccvs_sale\",\"ccvs_status\",\"ccvs_textvalue\",\"ccvs_void\",\"ceil\",\"chdir\",\"checkdate\",\"checkdnsrr\",\"chgrp\",\"chmod\",\"chop\",\"chown\",\"chr\",\"chroot\",\"chunk_split\",\"class_exists\",\"class_implements\",\"class_parents\",\"clearstatcache\",\"closedir\",\"closelog\",\"com\",\"com_addref\",\"com_get\",\"com_invoke\",\"com_isenum\",\"com_load\",\"com_load_typelib\",\"com_propget\",\"com_propput\",\"com_propset\",\"com_release\",\"com_set\",\"compact\",\"connection_aborted\",\"connection_status\",\"connection_timeout\",\"constant\",\"convert_cyr_string\",\"convert_uudecode\",\"convert_uuencode\",\"copy\",\"cos\",\"cosh\",\"count\",\"count_chars\",\"cpdf_add_annotation\",\"cpdf_add_outline\",\"cpdf_arc\",\"cpdf_begin_text\",\"cpdf_circle\",\"cpdf_clip\",\"cpdf_close\",\"cpdf_closepath\",\"cpdf_closepath_fill_stroke\",\"cpdf_closepath_stroke\",\"cpdf_continue_text\",\"cpdf_curveto\",\"cpdf_end_text\",\"cpdf_fill\",\"cpdf_fill_stroke\",\"cpdf_finalize\",\"cpdf_finalize_page\",\"cpdf_global_set_document_limits\",\"cpdf_import_jpeg\",\"cpdf_lineto\",\"cpdf_moveto\",\"cpdf_newpath\",\"cpdf_open\",\"cpdf_output_buffer\",\"cpdf_page_init\",\"cpdf_place_inline_image\",\"cpdf_rect\",\"cpdf_restore\",\"cpdf_rlineto\",\"cpdf_rmoveto\",\"cpdf_rotate\",\"cpdf_rotate_text\",\"cpdf_save\",\"cpdf_save_to_file\",\"cpdf_scale\",\"cpdf_set_action_url\",\"cpdf_set_char_spacing\",\"cpdf_set_creator\",\"cpdf_set_current_page\",\"cpdf_set_font\",\"cpdf_set_font_directories\",\"cpdf_set_font_map_file\",\"cpdf_set_horiz_scaling\",\"cpdf_set_keywords\",\"cpdf_set_leading\",\"cpdf_set_page_animation\",\"cpdf_set_subject\",\"cpdf_set_text_matrix\",\"cpdf_set_text_pos\",\"cpdf_set_text_rendering\",\"cpdf_set_text_rise\",\"cpdf_set_title\",\"cpdf_set_viewer_preferences\",\"cpdf_set_word_spacing\",\"cpdf_setdash\",\"cpdf_setflat\",\"cpdf_setgray\",\"cpdf_setgray_fill\",\"cpdf_setgray_stroke\",\"cpdf_setlinecap\",\"cpdf_setlinejoin\",\"cpdf_setlinewidth\",\"cpdf_setmiterlimit\",\"cpdf_setrgbcolor\",\"cpdf_setrgbcolor_fill\",\"cpdf_setrgbcolor_stroke\",\"cpdf_show\",\"cpdf_show_xy\",\"cpdf_stringwidth\",\"cpdf_stroke\",\"cpdf_text\",\"cpdf_translate\",\"crack_check\",\"crack_closedict\",\"crack_getlastmessage\",\"crack_opendict\",\"crc32\",\"create_function\",\"crypt\",\"ctype_alnum\",\"ctype_alpha\",\"ctype_cntrl\",\"ctype_digit\",\"ctype_graph\",\"ctype_lower\",\"ctype_print\",\"ctype_punct\",\"ctype_space\",\"ctype_upper\",\"ctype_xdigit\",\"curl_close\",\"curl_copy_handle\",\"curl_errno\",\"curl_error\",\"curl_exec\",\"curl_getinfo\",\"curl_init\",\"curl_multi_add_handle\",\"curl_multi_close\",\"curl_multi_exec\",\"curl_multi_getcontent\",\"curl_multi_info_read\",\"curl_multi_init\",\"curl_multi_remove_handle\",\"curl_multi_select\",\"curl_setopt\",\"curl_setopt_array\",\"curl_version\",\"current\",\"cybercash_base64_decode\",\"cybercash_base64_encode\",\"cybercash_decr\",\"cybercash_encr\",\"cybermut_creerformulairecm\",\"cybermut_creerreponsecm\",\"cybermut_testmac\",\"cyrus_authenticate\",\"cyrus_bind\",\"cyrus_close\",\"cyrus_connect\",\"cyrus_query\",\"cyrus_unbind\",\"date\",\"date_add\",\"date_create\",\"date_create_from_format\",\"date_date_set\",\"date_default_timezone_get\",\"date_default_timezone_set\",\"date_diff\",\"date_format\",\"date_get_last_errors\",\"date_interval_create_from_date_string\",\"date_interval_format\",\"date_isodate_set\",\"date_modify\",\"date_offset_get\",\"date_parse\",\"date_parse_from_format\",\"date_sub\",\"date_sun_info\",\"date_sunrise\",\"date_sunset\",\"date_time_ set\",\"date_timestamp_get\",\"date_timestamp_set\",\"date_timezone_get\",\"date_timezone_set\",\"dba_close\",\"dba_delete\",\"dba_exists\",\"dba_fetch\",\"dba_firstkey\",\"dba_handlers\",\"dba_insert\",\"dba_key_split\",\"dba_list\",\"dba_nextkey\",\"dba_open\",\"dba_optimize\",\"dba_popen\",\"dba_replace\",\"dba_sync\",\"dbase_add_record\",\"dbase_close\",\"dbase_create\",\"dbase_delete_record\",\"dbase_get_header_info\",\"dbase_get_record\",\"dbase_get_record_with_names\",\"dbase_numfields\",\"dbase_numrecords\",\"dbase_open\",\"dbase_pack\",\"dbase_replace_record\",\"dblist\",\"dbmclose\",\"dbmdelete\",\"dbmexists\",\"dbmfetch\",\"dbmfirstkey\",\"dbminsert\",\"dbmnextkey\",\"dbmopen\",\"dbmreplace\",\"dbplus_add\",\"dbplus_aql\",\"dbplus_chdir\",\"dbplus_close\",\"dbplus_curr\",\"dbplus_errcode\",\"dbplus_errno\",\"dbplus_find\",\"dbplus_first\",\"dbplus_flush\",\"dbplus_freealllocks\",\"dbplus_freelock\",\"dbplus_freerlocks\",\"dbplus_getlock\",\"dbplus_getunique\",\"dbplus_info\",\"dbplus_last\",\"dbplus_lockrel\",\"dbplus_next\",\"dbplus_open\",\"dbplus_prev\",\"dbplus_rchperm\",\"dbplus_rcreate\",\"dbplus_rcrtexact\",\"dbplus_rcrtlike\",\"dbplus_resolve\",\"dbplus_restorepos\",\"dbplus_rkeys\",\"dbplus_ropen\",\"dbplus_rquery\",\"dbplus_rrename\",\"dbplus_rsecindex\",\"dbplus_runlink\",\"dbplus_rzap\",\"dbplus_savepos\",\"dbplus_setindex\",\"dbplus_setindexbynumber\",\"dbplus_sql\",\"dbplus_tcl\",\"dbplus_tremove\",\"dbplus_undo\",\"dbplus_undoprepare\",\"dbplus_unlockrel\",\"dbplus_unselect\",\"dbplus_update\",\"dbplus_xlockrel\",\"dbplus_xunlockrel\",\"dbx_close\",\"dbx_compare\",\"dbx_connect\",\"dbx_error\",\"dbx_escape_string\",\"dbx_fetch_row\",\"dbx_query\",\"dbx_sort\",\"dcgettext\",\"dcngettext\",\"debug_backtrace\",\"debug_print_backtrace\",\"debug_zval_dump\",\"decbin\",\"dechex\",\"decoct\",\"define\",\"define_syslog_variables\",\"defined\",\"deg2rad\",\"dgettext\",\"die\",\"dio_close\",\"dio_fcntl\",\"dio_open\",\"dio_read\",\"dio_seek\",\"dio_stat\",\"dio_tcsetattr\",\"dio_truncate\",\"dio_write\",\"dir\",\"dirname\",\"disk_free_space\",\"disk_total_space\",\"diskfreespace\",\"dl\",\"dngettext\",\"dns_check_record\",\"dns_get_mx\",\"dns_get_record\",\"dom_import_simplexml\",\"domxml_add_root\",\"domxml_attributes\",\"domxml_children\",\"domxml_dumpmem\",\"domxml_get_attribute\",\"domxml_new_child\",\"domxml_new_xmldoc\",\"domxml_node\",\"domxml_node_set_content\",\"domxml_node_unlink_node\",\"domxml_root\",\"domxml_set_attribute\",\"domxml_version\",\"doubleval\",\"each\",\"easter_date\",\"easter_days\",\"ebcdic2ascii\",\"echo\",\"empty\",\"end\",\"error_get_last\",\"error_log\",\"error_reporting\",\"escapeshellarg\",\"escapeshellcmd\",\"eval\",\"exec\",\"exif_imagetype\",\"exif_read_data\",\"exif_tagname\",\"exif_thumbnail\",\"exit\",\"exp\",\"explode\",\"expm1\",\"extension_loaded\",\"extract\",\"ezmlm_hash\",\"fam_cancel_monitor\",\"fam_close\",\"fam_monitor_collection\",\"fam_monitor_directory\",\"fam_monitor_file\",\"fam_next_event\",\"fam_open\",\"fam_pending\",\"fam_resume_monitor\",\"fam_suspend_monitor\",\"fbsql_affected_rows\",\"fbsql_autocommit\",\"fbsql_change_user\",\"fbsql_close\",\"fbsql_commit\",\"fbsql_connect\",\"fbsql_create_blob\",\"fbsql_create_clob\",\"fbsql_create_db\",\"fbsql_data_seek\",\"fbsql_database\",\"fbsql_database_password\",\"fbsql_db_query\",\"fbsql_db_status\",\"fbsql_drop_db\",\"fbsql_errno\",\"fbsql_error\",\"fbsql_fetch_array\",\"fbsql_fetch_assoc\",\"fbsql_fetch_field\",\"fbsql_fetch_lengths\",\"fbsql_fetch_object\",\"fbsql_fetch_row\",\"fbsql_field_flags\",\"fbsql_field_len\",\"fbsql_field_name\",\"fbsql_field_seek\",\"fbsql_field_table\",\"fbsql_field_type\",\"fbsql_free_result\",\"fbsql_get_autostart_info\",\"fbsql_hostname\",\"fbsql_insert_id\",\"fbsql_list_dbs\",\"fbsql_list_fields\",\"fbsql_list_tables\",\"fbsql_next_result\",\"fbsql_num_fields\",\"fbsql_num_rows\",\"fbsql_password\",\"fbsql_pconnect\",\"fbsql_query\",\"fbsql_read_blob\",\"fbsql_read_clob\",\"fbsql_result\",\"fbsql_rollback\",\"fbsql_select_db\",\"fbsql_set_lob_mode\",\"fbsql_set_transaction\",\"fbsql_start_db\",\"fbsql_stop_db\",\"fbsql_tablename\",\"fbsql_username\",\"fbsql_warnings\",\"fclose\",\"fdf_add_template\",\"fdf_close\",\"fdf_create\",\"fdf_get_file\",\"fdf_get_status\",\"fdf_get_value\",\"fdf_next_field_name\",\"fdf_open\",\"fdf_save\",\"fdf_set_ap\",\"fdf_set_encoding\",\"fdf_set_file\",\"fdf_set_flags\",\"fdf_set_javascript_action\",\"fdf_set_opt\",\"fdf_set_status\",\"fdf_set_submit_form_action\",\"fdf_set_value\",\"feof\",\"fflush\",\"fgetc\",\"fgetcsv\",\"fgets\",\"fgetss\",\"file\",\"file_exists\",\"file_get_contents\",\"file_put_contents\",\"fileatime\",\"filectime\",\"filegroup\",\"fileinode\",\"filemtime\",\"fileowner\",\"fileperms\",\"filepro\",\"filepro_fieldcount\",\"filepro_fieldname\",\"filepro_fieldtype\",\"filepro_fieldwidth\",\"filepro_retrieve\",\"filepro_rowcount\",\"filesize\",\"filetype\",\"filter_has_var\",\"filter_id\",\"filter_input\",\"filter_input_array\",\"filter_list\",\"filter_var\",\"filter_var_array\",\"floatval\",\"flock\",\"floor\",\"flush\",\"fmod\",\"fnmatch\",\"fopen\",\"forward_static_call\",\"forward_static_call_array\",\"fpassthru\",\"fprintf\",\"fputcsv\",\"fputs\",\"fread\",\"frenchtojd\",\"fribidi_log2vis\",\"fscanf\",\"fseek\",\"fsockopen\",\"fstat\",\"ftell\",\"ftok\",\"ftp_alloc\",\"ftp_cdup\",\"ftp_chdir\",\"ftp_chmod\",\"ftp_close\",\"ftp_connect\",\"ftp_delete\",\"ftp_exec\",\"ftp_fget\",\"ftp_fput\",\"ftp_get\",\"ftp_get_option\",\"ftp_login\",\"ftp_mdtm\",\"ftp_mkdir\",\"ftp_nb_continue\",\"ftp_nb_fget\",\"ftp_nb_fput\",\"ftp_nb_get\",\"ftp_nb_put\",\"ftp_nlist\",\"ftp_pasv\",\"ftp_put\",\"ftp_pwd\",\"ftp_quit\",\"ftp_raw\",\"ftp_rawlist\",\"ftp_rename\",\"ftp_rmdir\",\"ftp_set_option\",\"ftp_site\",\"ftp_size\",\"ftp_ssl_connect\",\"ftp_systype\",\"ftruncate\",\"func_get_arg\",\"func_get_args\",\"func_num_args\",\"function_exists\",\"fwrite\",\"gc_collect_cycles\",\"gc_disable\",\"gc_enable\",\"gc_enabled\",\"gd_info\",\"get_browser\",\"get_called_class\",\"get_cfg_var\",\"get_class\",\"get_class_methods\",\"get_class_vars\",\"get_current_user\",\"get_declared_classes\",\"get_declared_interfaces\",\"get_defined_constants\",\"get_defined_functions\",\"get_defined_vars\",\"get_extension_funcs\",\"get_headers\",\"get_html_translation_table\",\"get_include_path\",\"get_included_files\",\"get_loaded_extensions\",\"get_magic_quotes_gpc\",\"get_magic_quotes_runtime\",\"get_meta_tags\",\"get_object_vars\",\"get_parent_class\",\"get_required_files\",\"get_resource_type\",\"getallheaders\",\"getcwd\",\"getdate\",\"getenv\",\"gethostbyaddr\",\"gethostbyname\",\"gethostbynamel\",\"gethostname\",\"getimagesize\",\"getlastmod\",\"getmxrr\",\"getmygid\",\"getmyinode\",\"getmypid\",\"getmyuid\",\"getopt\",\"getprotobyname\",\"getprotobynumber\",\"getrandmax\",\"getrusage\",\"getservbyname\",\"getservbyport\",\"gettext\",\"gettimeofday\",\"gettype\",\"glob\",\"gmdate\",\"gmmktime\",\"gmp_abs\",\"gmp_add\",\"gmp_and\",\"gmp_clrbit\",\"gmp_cmp\",\"gmp_com\",\"gmp_div\",\"gmp_div_q\",\"gmp_div_qr\",\"gmp_div_r\",\"gmp_divexact\",\"gmp_fact\",\"gmp_gcd\",\"gmp_gcdext\",\"gmp_hamdist\",\"gmp_init\",\"gmp_intval\",\"gmp_invert\",\"gmp_jacobi\",\"gmp_legendre\",\"gmp_mod\",\"gmp_mul\",\"gmp_neg\",\"gmp_or\",\"gmp_perfect_square\",\"gmp_popcount\",\"gmp_pow\",\"gmp_powm\",\"gmp_prob_prime\",\"gmp_random\",\"gmp_scan0\",\"gmp_scan1\",\"gmp_setbit\",\"gmp_sign\",\"gmp_sqrt\",\"gmp_sqrtrem\",\"gmp_strval\",\"gmp_sub\",\"gmp_xor\",\"gmstrftime\",\"gregoriantojd\",\"gzclose\",\"gzcompress\",\"gzdeflate\",\"gzencode\",\"gzeof\",\"gzfile\",\"gzgetc\",\"gzgets\",\"gzgetss\",\"gzinflate\",\"gzopen\",\"gzpassthru\",\"gzputs\",\"gzread\",\"gzrewind\",\"gzseek\",\"gztell\",\"gzuncompress\",\"gzwrite\",\"hash\",\"hash_algos\",\"hash_copy\",\"hash_file\",\"hash_final\",\"hash_hmac\",\"hash_hmac_file\",\"hash_init\",\"hash_update\",\"hash_update_file\",\"hash_update_stream\",\"header\",\"header_remove\",\"headers_list\",\"headers_sent\",\"hebrev\",\"hebrevc\",\"hexdec\",\"highlight_file\",\"highlight_string\",\"html_entity_decode\",\"htmlentities\",\"htmlspecialchars\",\"htmlspecialchars_decode\",\"http_build_query\",\"hw_array2objrec\",\"hw_changeobject\",\"hw_children\",\"hw_childrenobj\",\"hw_close\",\"hw_connect\",\"hw_connection_info\",\"hw_cp\",\"hw_deleteobject\",\"hw_docbyanchor\",\"hw_docbyanchorobj\",\"hw_document_attributes\",\"hw_document_bodytag\",\"hw_document_content\",\"hw_document_setcontent\",\"hw_document_size\",\"hw_dummy\",\"hw_edittext\",\"hw_error\",\"hw_errormsg\",\"hw_free_document\",\"hw_getanchors\",\"hw_getanchorsobj\",\"hw_getandlock\",\"hw_getchildcoll\",\"hw_getchildcollobj\",\"hw_getchilddoccoll\",\"hw_getchilddoccollobj\",\"hw_getobject\",\"hw_getobjectbyquery\",\"hw_getobjectbyquerycoll\",\"hw_getobjectbyquerycollobj\",\"hw_getobjectbyqueryobj\",\"hw_getparents\",\"hw_getparentsobj\",\"hw_getrellink\",\"hw_getremote\",\"hw_getremotechildren\",\"hw_getsrcbydestobj\",\"hw_gettext\",\"hw_getusername\",\"hw_identify\",\"hw_incollections\",\"hw_info\",\"hw_inscoll\",\"hw_insdoc\",\"hw_insertanchors\",\"hw_insertdocument\",\"hw_insertobject\",\"hw_mapid\",\"hw_modifyobject\",\"hw_mv\",\"hw_new_document\",\"hw_objrec2array\",\"hw_output_document\",\"hw_pconnect\",\"hw_pipedocument\",\"hw_root\",\"hw_setlinkroot\",\"hw_stat\",\"hw_unlock\",\"hw_who\",\"hypot\",\"ibase_blob_add\",\"ibase_blob_cancel\",\"ibase_blob_close\",\"ibase_blob_create\",\"ibase_blob_echo\",\"ibase_blob_get\",\"ibase_blob_import\",\"ibase_blob_info\",\"ibase_blob_open\",\"ibase_close\",\"ibase_commit\",\"ibase_connect\",\"ibase_errmsg\",\"ibase_execute\",\"ibase_fetch_object\",\"ibase_fetch_row\",\"ibase_field_info\",\"ibase_free_query\",\"ibase_free_result\",\"ibase_num_fields\",\"ibase_pconnect\",\"ibase_prepare\",\"ibase_query\",\"ibase_rollback\",\"ibase_timefmt\",\"ibase_trans\",\"icap_close\",\"icap_create_calendar\",\"icap_delete_calendar\",\"icap_delete_event\",\"icap_fetch_event\",\"icap_list_alarms\",\"icap_list_events\",\"icap_open\",\"icap_rename_calendar\",\"icap_reopen\",\"icap_snooze\",\"icap_store_event\",\"iconv\",\"iconv_get_encoding\",\"iconv_mime_decode\",\"iconv_mime_decode_headers\",\"iconv_mime_encode\",\"iconv_set_encoding\",\"iconv_strlen\",\"iconv_strpos\",\"iconv_strrpos\",\"iconv_substr\",\"idate\",\"ifx_affected_rows\",\"ifx_blobinfile_mode\",\"ifx_byteasvarchar\",\"ifx_close\",\"ifx_connect\",\"ifx_copy_blob\",\"ifx_create_blob\",\"ifx_create_char\",\"ifx_do\",\"ifx_error\",\"ifx_errormsg\",\"ifx_fetch_row\",\"ifx_fieldproperties\",\"ifx_fieldtypes\",\"ifx_free_blob\",\"ifx_free_char\",\"ifx_free_result\",\"ifx_get_blob\",\"ifx_get_char\",\"ifx_getsqlca\",\"ifx_htmltbl_result\",\"ifx_nullformat\",\"ifx_num_fields\",\"ifx_num_rows\",\"ifx_pconnect\",\"ifx_prepare\",\"ifx_query\",\"ifx_textasvarchar\",\"ifx_update_blob\",\"ifx_update_char\",\"ifxus_close_slob\",\"ifxus_create_slob\",\"ifxus_free_slob\",\"ifxus_open_slob\",\"ifxus_read_slob\",\"ifxus_seek_slob\",\"ifxus_tell_slob\",\"ifxus_write_slob\",\"ignore_user_abort\",\"image2wbmp\",\"image_type_to_extension\",\"image_type_to_mime_type\",\"imagealphablending\",\"imageantialias\",\"imagearc\",\"imagechar\",\"imagecharup\",\"imagecolorallocate\",\"imagecolorallocatealpha\",\"imagecolorat\",\"imagecolorclosest\",\"imagecolorclosestalpha\",\"imagecolorclosesthwb\",\"imagecolordeallocate\",\"imagecolorexact\",\"imagecolorexactalpha\",\"imagecolormatch\",\"imagecolorresolve\",\"imagecolorresolvealpha\",\"imagecolorset\",\"imagecolorsforindex\",\"imagecolorstotal\",\"imagecolortransparent\",\"imageconvolution\",\"imagecopy\",\"imagecopymerge\",\"imagecopymergegray\",\"imagecopyresampled\",\"imagecopyresized\",\"imagecreate\",\"imagecreatefromgd\",\"imagecreatefromgd2\",\"imagecreatefromgd2part\",\"imagecreatefromgif\",\"imagecreatefromjpeg\",\"imagecreatefrompng\",\"imagecreatefromstring\",\"imagecreatefromwbmp\",\"imagecreatefromxbm\",\"imagecreatefromxpm\",\"imagecreatetruecolor\",\"imagedashedline\",\"imagedestroy\",\"imageellipse\",\"imagefill\",\"imagefilledarc\",\"imagefilledellipse\",\"imagefilledpolygon\",\"imagefilledrectangle\",\"imagefilltoborder\",\"imagefilter\",\"imagefontheight\",\"imagefontwidth\",\"imageftbbox\",\"imagefttext\",\"imagegammacorrect\",\"imagegd\",\"imagegd2\",\"imagegif\",\"imageinterlace\",\"imageistruecolor\",\"imagejpeg\",\"imagelayereffect\",\"imageline\",\"imageloadfont\",\"imagepalettecopy\",\"imagepng\",\"imagepolygon\",\"imagepsbbox\",\"imagepsencodefont\",\"imagepsextendfont\",\"imagepsfreefont\",\"imagepsloadfont\",\"imagepsslantfont\",\"imagepstext\",\"imagerectangle\",\"imagerotate\",\"imagesavealpha\",\"imagesetbrush\",\"imagesetpixel\",\"imagesetstyle\",\"imagesetthickness\",\"imagesettile\",\"imagestring\",\"imagestringup\",\"imagesx\",\"imagesy\",\"imagetruecolortopalette\",\"imagettfbbox\",\"imagettftext\",\"imagetypes\",\"imagewbmp\",\"imagexbm\",\"imap_8bit\",\"imap_alerts\",\"imap_append\",\"imap_base64\",\"imap_binary\",\"imap_body\",\"imap_bodystruct\",\"imap_check\",\"imap_clearflag_full\",\"imap_close\",\"imap_create\",\"imap_createmailbox\",\"imap_delete\",\"imap_deletemailbox\",\"imap_errors\",\"imap_expunge\",\"imap_fetch_overview\",\"imap_fetchbody\",\"imap_fetchheader\",\"imap_fetchstructure\",\"imap_fetchtext\",\"imap_get_quota\",\"imap_get_quotaroot\",\"imap_getacl\",\"imap_getmailboxes\",\"imap_getsubscribed\",\"imap_header\",\"imap_headerinfo\",\"imap_headers\",\"imap_last_error\",\"imap_list\",\"imap_listmailbox\",\"imap_listsubscribed\",\"imap_lsub\",\"imap_mail\",\"imap_mail_compose\",\"imap_mail_copy\",\"imap_mail_move\",\"imap_mailboxmsginfo\",\"imap_mime_header_decode\",\"imap_msgno\",\"imap_num_msg\",\"imap_num_recent\",\"imap_open\",\"imap_ping\",\"imap_popen\",\"imap_qprint\",\"imap_rename\",\"imap_renamemailbox\",\"imap_reopen\",\"imap_rfc822_parse_adrlist\",\"imap_rfc822_parse_headers\",\"imap_rfc822_write_address\",\"imap_scan\",\"imap_scanmailbox\",\"imap_search\",\"imap_set_quota\",\"imap_setacl\",\"imap_setflag_full\",\"imap_sort\",\"imap_status\",\"imap_subscribe\",\"imap_thread\",\"imap_timeout\",\"imap_uid\",\"imap_undelete\",\"imap_unsubscribe\",\"imap_utf7_decode\",\"imap_utf7_encode\",\"imap_utf8\",\"implode\",\"import_request_variables\",\"in_array\",\"include\",\"include_once\",\"inet_ntop\",\"inet_pton\",\"ingres_autocommit\",\"ingres_close\",\"ingres_commit\",\"ingres_connect\",\"ingres_fetch_array\",\"ingres_fetch_object\",\"ingres_fetch_row\",\"ingres_field_length\",\"ingres_field_name\",\"ingres_field_nullable\",\"ingres_field_precision\",\"ingres_field_scale\",\"ingres_field_type\",\"ingres_num_fields\",\"ingres_num_rows\",\"ingres_pconnect\",\"ingres_query\",\"ingres_rollback\",\"ini_alter\",\"ini_get\",\"ini_get_all\",\"ini_restore\",\"ini_set\",\"interface_exists\",\"intval\",\"ip2long\",\"iptcembed\",\"iptcparse\",\"ircg_channel_mode\",\"ircg_disconnect\",\"ircg_fetch_error_msg\",\"ircg_get_username\",\"ircg_html_encode\",\"ircg_ignore_add\",\"ircg_ignore_del\",\"ircg_is_conn_alive\",\"ircg_join\",\"ircg_kick\",\"ircg_lookup_format_messages\",\"ircg_msg\",\"ircg_nick\",\"ircg_nickname_escape\",\"ircg_nickname_unescape\",\"ircg_notice\",\"ircg_part\",\"ircg_pconnect\",\"ircg_register_format_messages\",\"ircg_set_current\",\"ircg_set_file\",\"ircg_set_on_die\",\"ircg_topic\",\"ircg_whois\",\"is_a\",\"is_array\",\"is_bool\",\"is_callable\",\"is_dir\",\"is_double\",\"is_executable\",\"is_file\",\"is_finite\",\"is_float\",\"is_infinite\",\"is_int\",\"is_integer\",\"is_link\",\"is_long\",\"is_nan\",\"is_null\",\"is_numeric\",\"is_object\",\"is_readable\",\"is_real\",\"is_resource\",\"is_scalar\",\"is_string\",\"is_subclass_of\",\"is_uploaded_file\",\"is_writable\",\"is_writeable\",\"isset\",\"iterator_apply\",\"iterator_count\",\"iterator_to_array\",\"java_last_exception_clear\",\"java_last_exception_get\",\"jddayofweek\",\"jdmonthname\",\"jdtofrench\",\"jdtogregorian\",\"jdtojewish\",\"jdtojulian\",\"jdtounix\",\"jewishtojd\",\"join\",\"jpeg2wbmp\",\"json_decode\",\"json_encode\",\"json_last_error\",\"juliantojd\",\"key\",\"key_exists\",\"krsort\",\"ksort\",\"lcfirst\",\"lcg_value\",\"lchgrp\",\"lchown\",\"ldap_8859_to_t61\",\"ldap_add\",\"ldap_bind\",\"ldap_close\",\"ldap_compare\",\"ldap_connect\",\"ldap_count_entries\",\"ldap_delete\",\"ldap_dn2ufn\",\"ldap_err2str\",\"ldap_errno\",\"ldap_error\",\"ldap_explode_dn\",\"ldap_first_attribute\",\"ldap_first_entry\",\"ldap_first_reference\",\"ldap_free_result\",\"ldap_get_attributes\",\"ldap_get_dn\",\"ldap_get_entries\",\"ldap_get_option\",\"ldap_get_values\",\"ldap_get_values_len\",\"ldap_list\",\"ldap_mod_add\",\"ldap_mod_del\",\"ldap_mod_replace\",\"ldap_modify\",\"ldap_next_attribute\",\"ldap_next_entry\",\"ldap_next_reference\",\"ldap_parse_reference\",\"ldap_parse_result\",\"ldap_read\",\"ldap_rename\",\"ldap_search\",\"ldap_set_option\",\"ldap_set_rebind_proc\",\"ldap_sort\",\"ldap_start_tls\",\"ldap_t61_to_8859\",\"ldap_unbind\",\"levenshtein\",\"libxml_clear_errors\",\"libxml_get_errors\",\"libxml_get_last_error\",\"libxml_set_streams_context\",\"libxml_use_internal_errors\",\"link\",\"linkinfo\",\"list\",\"localeconv\",\"localtime\",\"log\",\"log10\",\"log1p\",\"long2ip\",\"lstat\",\"ltrim\",\"magic_quotes_runtime\",\"mail\",\"mailparse_determine_best_xfer_encoding\",\"mailparse_msg_create\",\"mailparse_msg_extract_part\",\"mailparse_msg_extract_part_file\",\"mailparse_msg_free\",\"mailparse_msg_get_part\",\"mailparse_msg_get_part_data\",\"mailparse_msg_get_structure\",\"mailparse_msg_parse\",\"mailparse_msg_parse_file\",\"mailparse_rfc822_parse_addresses\",\"mailparse_stream_encode\",\"mailparse_uudecode_all\",\"max\",\"mb_check_encoding\",\"mb_convert_case\",\"mb_convert_encoding\",\"mb_convert_kana\",\"mb_convert_variables\",\"mb_decode_mimeheader\",\"mb_decode_numericentity\",\"mb_detect_encoding\",\"mb_detect_order\",\"mb_encode_mimeheader\",\"mb_encode_numericentity\",\"mb_encoding_aliases\",\"mb_ereg\",\"mb_ereg_match\",\"mb_ereg_replace\",\"mb_ereg_search\",\"mb_ereg_search_getpos\",\"mb_ereg_search_getregs\",\"mb_ereg_search_init\",\"mb_ereg_search_pos\",\"mb_ereg_search_regs\",\"mb_ereg_search_setpos\",\"mb_eregi\",\"mb_eregi_replace\",\"mb_get_info\",\"mb_http_input\",\"mb_http_output\",\"mb_internal_encoding\",\"mb_language\",\"mb_list_encodings\",\"mb_output_handler\",\"mb_parse_str\",\"mb_preferred_mime_name\",\"mb_regex_encoding\",\"mb_regex_set_options\",\"mb_send_mail\",\"mb_split\",\"mb_strcut\",\"mb_strimwidth\",\"mb_stripos\",\"mb_stristr\",\"mb_strlen\",\"mb_strpos\",\"mb_strrchr\",\"mb_strrichr\",\"mb_strripos\",\"mb_strrpos\",\"mb_strstr\",\"mb_strtolower\",\"mb_strtoupper\",\"mb_strwidth\",\"mb_substitute_character\",\"mb_substr\",\"mb_substr_count\",\"mcal_append_event\",\"mcal_close\",\"mcal_create_calendar\",\"mcal_date_compare\",\"mcal_date_valid\",\"mcal_day_of_week\",\"mcal_day_of_year\",\"mcal_days_in_month\",\"mcal_delete_calendar\",\"mcal_delete_event\",\"mcal_event_add_attribute\",\"mcal_event_init\",\"mcal_event_set_alarm\",\"mcal_event_set_category\",\"mcal_event_set_class\",\"mcal_event_set_description\",\"mcal_event_set_end\",\"mcal_event_set_recur_daily\",\"mcal_event_set_recur_monthly_mday\",\"mcal_event_set_recur_monthly_wday\",\"mcal_event_set_recur_none\",\"mcal_event_set_recur_weekly\",\"mcal_event_set_recur_yearly\",\"mcal_event_set_start\",\"mcal_event_set_title\",\"mcal_expunge\",\"mcal_fetch_current_stream_event\",\"mcal_fetch_event\",\"mcal_is_leap_year\",\"mcal_list_alarms\",\"mcal_list_events\",\"mcal_next_recurrence\",\"mcal_open\",\"mcal_popen\",\"mcal_rename_calendar\",\"mcal_reopen\",\"mcal_snooze\",\"mcal_store_event\",\"mcal_time_valid\",\"mcal_week_of_year\",\"mcrypt_cbc\",\"mcrypt_cfb\",\"mcrypt_create_iv\",\"mcrypt_decrypt\",\"mcrypt_enc_get_algorithms_name\",\"mcrypt_enc_get_block_size\",\"mcrypt_enc_get_iv_size\",\"mcrypt_enc_get_key_size\",\"mcrypt_enc_get_modes_name\",\"mcrypt_enc_get_supported_key_sizes\",\"mcrypt_enc_is_block_algorithm\",\"mcrypt_enc_is_block_algorithm_mode\",\"mcrypt_enc_is_block_mode\",\"mcrypt_enc_self_test\",\"mcrypt_encrypt\",\"mcrypt_generic\",\"mcrypt_generic_deinit\",\"mcrypt_generic_end\",\"mcrypt_generic_init\",\"mcrypt_get_block_size\",\"mcrypt_get_cipher_name\",\"mcrypt_get_iv_size\",\"mcrypt_get_key_size\",\"mcrypt_list_algorithms\",\"mcrypt_list_modes\",\"mcrypt_module_close\",\"mcrypt_module_get_algo_block_size\",\"mcrypt_module_get_algo_key_size\",\"mcrypt_module_get_supported_key_sizes\",\"mcrypt_module_is_block_algorithm\",\"mcrypt_module_is_block_algorithm_mode\",\"mcrypt_module_is_block_mode\",\"mcrypt_module_open\",\"mcrypt_module_self_test\",\"mcrypt_ofb\",\"md5\",\"md5_file\",\"mdecrypt_generic\",\"memory_get_peak_usage\",\"memory_get_usage\",\"metaphone\",\"method_exists\",\"mhash\",\"mhash_count\",\"mhash_get_block_size\",\"mhash_get_hash_name\",\"mhash_keygen_s2k\",\"microtime\",\"min\",\"ming_setcubicthreshold\",\"ming_setscale\",\"ming_useswfversion\",\"mkdir\",\"mktime\",\"money_format\",\"move_uploaded_file\",\"msession_connect\",\"msession_count\",\"msession_create\",\"msession_destroy\",\"msession_disconnect\",\"msession_find\",\"msession_get\",\"msession_get_array\",\"msession_getdata\",\"msession_inc\",\"msession_list\",\"msession_listvar\",\"msession_lock\",\"msession_plugin\",\"msession_randstr\",\"msession_set\",\"msession_set_array\",\"msession_setdata\",\"msession_timeout\",\"msession_uniq\",\"msession_unlock\",\"msg_get_queue\",\"msg_receive\",\"msg_remove_queue\",\"msg_send\",\"msg_set_queue\",\"msg_stat_queue\",\"msql\",\"msql_affected_rows\",\"msql_close\",\"msql_connect\",\"msql_create_db\",\"msql_createdb\",\"msql_data_seek\",\"msql_dbname\",\"msql_drop_db\",\"msql_dropdb\",\"msql_error\",\"msql_fetch_array\",\"msql_fetch_field\",\"msql_fetch_object\",\"msql_fetch_row\",\"msql_field_seek\",\"msql_fieldflags\",\"msql_fieldlen\",\"msql_fieldname\",\"msql_fieldtable\",\"msql_fieldtype\",\"msql_free_result\",\"msql_freeresult\",\"msql_list_dbs\",\"msql_list_fields\",\"msql_list_tables\",\"msql_listdbs\",\"msql_listfields\",\"msql_listtables\",\"msql_num_fields\",\"msql_num_rows\",\"msql_numfields\",\"msql_numrows\",\"msql_pconnect\",\"msql_query\",\"msql_regcase\",\"msql_result\",\"msql_select_db\",\"msql_selectdb\",\"msql_tablename\",\"mssql_bind\",\"mssql_close\",\"mssql_connect\",\"mssql_data_seek\",\"mssql_execute\",\"mssql_fetch_array\",\"mssql_fetch_assoc\",\"mssql_fetch_batch\",\"mssql_fetch_field\",\"mssql_fetch_object\",\"mssql_fetch_row\",\"mssql_field_length\",\"mssql_field_name\",\"mssql_field_seek\",\"mssql_field_type\",\"mssql_free_result\",\"mssql_get_last_message\",\"mssql_guid_string\",\"mssql_init\",\"mssql_min_error_severity\",\"mssql_min_message_severity\",\"mssql_next_result\",\"mssql_num_fields\",\"mssql_num_rows\",\"mssql_pconnect\",\"mssql_query\",\"mssql_result\",\"mssql_rows_affected\",\"mssql_select_db\",\"mt_getrandmax\",\"mt_rand\",\"mt_srand\",\"muscat_close\",\"muscat_get\",\"muscat_give\",\"muscat_setup\",\"muscat_setup_net\",\"mysql\",\"mysql_affected_rows\",\"mysql_client_encoding\",\"mysql_close\",\"mysql_connect\",\"mysql_data_seek\",\"mysql_db_name\",\"mysql_db_query\",\"mysql_errno\",\"mysql_error\",\"mysql_escape_string\",\"mysql_fetch_array\",\"mysql_fetch_assoc\",\"mysql_fetch_field\",\"mysql_fetch_lengths\",\"mysql_fetch_object\",\"mysql_fetch_row\",\"mysql_field_flags\",\"mysql_field_len\",\"mysql_field_name\",\"mysql_field_seek\",\"mysql_field_table\",\"mysql_field_type\",\"mysql_free_result\",\"mysql_get_client_info\",\"mysql_get_host_info\",\"mysql_get_proto_info\",\"mysql_get_server_info\",\"mysql_info\",\"mysql_insert_id\",\"mysql_list_dbs\",\"mysql_list_processes\",\"mysql_num_fields\",\"mysql_num_rows\",\"mysql_pconnect\",\"mysql_ping\",\"mysql_query\",\"mysql_real_escape_string\",\"mysql_result\",\"mysql_select_db\",\"mysql_set_charset\",\"mysql_stat\",\"mysql_table_name\",\"mysql_thread_id\",\"mysql_unbuffered_query\",\"mysqli_affected_rows\",\"mysqli_autocommit\",\"mysqli_bind_param\",\"mysqli_bind_result\",\"mysqli_change_user\",\"mysqli_character_set_name\",\"mysqli_client_encoding\",\"mysqli_close\",\"mysqli_commit\",\"mysqli_connect\",\"mysqli_connect_errno\",\"mysqli_connect_error\",\"mysqli_data_seek\",\"mysqli_debug\",\"mysqli_dump_debug_info\",\"mysqli_errno\",\"mysqli_error\",\"mysqli_escape_string\",\"mysqli_execute\",\"mysqli_fetch\",\"mysqli_fetch_array\",\"mysqli_fetch_assoc\",\"mysqli_fetch_field\",\"mysqli_fetch_field_direct\",\"mysqli_fetch_fields\",\"mysqli_fetch_lengths\",\"mysqli_fetch_object\",\"mysqli_fetch_row\",\"mysqli_field_count\",\"mysqli_field_seek\",\"mysqli_field_tell\",\"mysqli_free_result\",\"mysqli_get_cache_stats\",\"mysqli_get_client_info\",\"mysqli_get_client_stats\",\"mysqli_get_client_version\",\"mysqli_get_host_info\",\"mysqli_get_metadata\",\"mysqli_get_proto_info\",\"mysqli_get_server_info\",\"mysqli_get_server_version\",\"mysqli_info\",\"mysqli_init\",\"mysqli_insert_id\",\"mysqli_kill\",\"mysqli_more_results\",\"mysqli_multi_query\",\"mysqli_next_result\",\"mysqli_num_fields\",\"mysqli_num_rows\",\"mysqli_options\",\"mysqli_param_count\",\"mysqli_ping\",\"mysqli_prepare\",\"mysqli_query\",\"mysqli_real_connect\",\"mysqli_real_escape_string\",\"mysqli_real_query\",\"mysqli_refresh\",\"mysqli_report\",\"mysqli_rollback\",\"mysqli_select_db\",\"mysqli_send_long_data\",\"mysqli_set_charset\",\"mysqli_set_local_infile_default\",\"mysqli_set_local_infile_handler\",\"mysqli_set_opt\",\"mysqli_sqlstate\",\"mysqli_ssl_set\",\"mysqli_stat\",\"mysqli_stmt_affected_rows\",\"mysqli_stmt_attr_get\",\"mysqli_stmt_attr_set\",\"mysqli_stmt_bind_param\",\"mysqli_stmt_bind_result\",\"mysqli_stmt_close\",\"mysqli_stmt_data_seek\",\"mysqli_stmt_errno\",\"mysqli_stmt_error\",\"mysqli_stmt_execute\",\"mysqli_stmt_fetch\",\"mysqli_stmt_field_count\",\"mysqli_stmt_free_result\",\"mysqli_stmt_get_warnings\",\"mysqli_stmt_init\",\"mysqli_stmt_insert_id\",\"mysqli_stmt_num_rows\",\"mysqli_stmt_param_count\",\"mysqli_stmt_prepare\",\"mysqli_stmt_reset\",\"mysqli_stmt_result_metadata\",\"mysqli_stmt_send_long_data\",\"mysqli_stmt_sqlstate\",\"mysqli_stmt_store_result\",\"mysqli_store_result\",\"mysqli_thread_id\",\"mysqli_thread_safe\",\"mysqli_use_result\",\"mysqli_warning_count\",\"natcasesort\",\"natsort\",\"ncurses_addch\",\"ncurses_addchnstr\",\"ncurses_addchstr\",\"ncurses_addnstr\",\"ncurses_addstr\",\"ncurses_assume_default_colors\",\"ncurses_attroff\",\"ncurses_attron\",\"ncurses_attrset\",\"ncurses_baudrate\",\"ncurses_beep\",\"ncurses_bkgd\",\"ncurses_bkgdset\",\"ncurses_border\",\"ncurses_bottom_panel\",\"ncurses_can_change_color\",\"ncurses_cbreak\",\"ncurses_clear\",\"ncurses_clrtobot\",\"ncurses_clrtoeol\",\"ncurses_color_content\",\"ncurses_color_set\",\"ncurses_curs_set\",\"ncurses_def_prog_mode\",\"ncurses_def_shell_mode\",\"ncurses_define_key\",\"ncurses_del_panel\",\"ncurses_delay_output\",\"ncurses_delch\",\"ncurses_deleteln\",\"ncurses_delwin\",\"ncurses_doupdate\",\"ncurses_echo\",\"ncurses_echochar\",\"ncurses_end\",\"ncurses_erase\",\"ncurses_erasechar\",\"ncurses_filter\",\"ncurses_flash\",\"ncurses_flushinp\",\"ncurses_getch\",\"ncurses_getmaxyx\",\"ncurses_getmouse\",\"ncurses_getyx\",\"ncurses_halfdelay\",\"ncurses_has_colors\",\"ncurses_has_ic\",\"ncurses_has_il\",\"ncurses_has_key\",\"ncurses_hide_panel\",\"ncurses_hline\",\"ncurses_inch\",\"ncurses_init\",\"ncurses_init_color\",\"ncurses_init_pair\",\"ncurses_insch\",\"ncurses_insdelln\",\"ncurses_insertln\",\"ncurses_insstr\",\"ncurses_instr\",\"ncurses_isendwin\",\"ncurses_keyok\",\"ncurses_keypad\",\"ncurses_killchar\",\"ncurses_longname\",\"ncurses_meta\",\"ncurses_mouse_trafo\",\"ncurses_mouseinterval\",\"ncurses_mousemask\",\"ncurses_move\",\"ncurses_move_panel\",\"ncurses_mvaddch\",\"ncurses_mvaddchnstr\",\"ncurses_mvaddchstr\",\"ncurses_mvaddnstr\",\"ncurses_mvaddstr\",\"ncurses_mvcur\",\"ncurses_mvdelch\",\"ncurses_mvgetch\",\"ncurses_mvhline\",\"ncurses_mvinch\",\"ncurses_mvvline\",\"ncurses_mvwaddstr\",\"ncurses_napms\",\"ncurses_new_panel\",\"ncurses_newpad\",\"ncurses_newwin\",\"ncurses_nl\",\"ncurses_nocbreak\",\"ncurses_noecho\",\"ncurses_nonl\",\"ncurses_noqiflush\",\"ncurses_noraw\",\"ncurses_pair_content\",\"ncurses_panel_above\",\"ncurses_panel_below\",\"ncurses_panel_window\",\"ncurses_pnoutrefresh\",\"ncurses_prefresh\",\"ncurses_putp\",\"ncurses_qiflush\",\"ncurses_raw\",\"ncurses_refresh\",\"ncurses_replace_panel\",\"ncurses_reset_prog_mode\",\"ncurses_reset_shell_mode\",\"ncurses_resetty\",\"ncurses_savetty\",\"ncurses_scr_dump\",\"ncurses_scr_init\",\"ncurses_scr_restore\",\"ncurses_scr_set\",\"ncurses_scrl\",\"ncurses_show_panel\",\"ncurses_slk_attr\",\"ncurses_slk_attroff\",\"ncurses_slk_attron\",\"ncurses_slk_attrset\",\"ncurses_slk_clear\",\"ncurses_slk_color\",\"ncurses_slk_init\",\"ncurses_slk_noutrefresh\",\"ncurses_slk_refresh\",\"ncurses_slk_restore\",\"ncurses_slk_set\",\"ncurses_slk_touch\",\"ncurses_standend\",\"ncurses_standout\",\"ncurses_start_color\",\"ncurses_termattrs\",\"ncurses_termname\",\"ncurses_timeout\",\"ncurses_top_panel\",\"ncurses_typeahead\",\"ncurses_ungetch\",\"ncurses_ungetmouse\",\"ncurses_update_panels\",\"ncurses_use_default_colors\",\"ncurses_use_env\",\"ncurses_use_extended_names\",\"ncurses_vidattr\",\"ncurses_vline\",\"ncurses_waddch\",\"ncurses_waddstr\",\"ncurses_wattroff\",\"ncurses_wattron\",\"ncurses_wattrset\",\"ncurses_wborder\",\"ncurses_wclear\",\"ncurses_wcolor_set\",\"ncurses_werase\",\"ncurses_wgetch\",\"ncurses_whline\",\"ncurses_wmouse_trafo\",\"ncurses_wmove\",\"ncurses_wnoutrefresh\",\"ncurses_wrefresh\",\"ncurses_wstandend\",\"ncurses_wstandout\",\"ncurses_wvline\",\"next\",\"ngettext\",\"nl2br\",\"nl_langinfo\",\"notes_body\",\"notes_copy_db\",\"notes_create_db\",\"notes_create_note\",\"notes_drop_db\",\"notes_find_note\",\"notes_header_info\",\"notes_list_msgs\",\"notes_mark_read\",\"notes_mark_unread\",\"notes_nav_create\",\"notes_search\",\"notes_unread\",\"notes_version\",\"number_format\",\"ob_clean\",\"ob_end_clean\",\"ob_end_flush\",\"ob_flush\",\"ob_get_clean\",\"ob_get_contents\",\"ob_get_flush\",\"ob_get_length\",\"ob_get_level\",\"ob_get_status\",\"ob_gzhandler\",\"ob_iconv_handler\",\"ob_implicit_flush\",\"ob_list_handlers\",\"ob_start\",\"oci_bind_array_by_name\",\"oci_bind_by_name\",\"oci_cancel\",\"oci_close\",\"oci_commit\",\"oci_connect\",\"oci_define_by_name\",\"oci_error\",\"oci_execute\",\"oci_fetch\",\"oci_fetch_all\",\"oci_fetch_array\",\"oci_fetch_assoc\",\"oci_fetch_object\",\"oci_fetch_row\",\"oci_field_is_null\",\"oci_field_name\",\"oci_field_precision\",\"oci_field_scale\",\"oci_field_size\",\"oci_field_type\",\"oci_field_type_raw\",\"oci_free_statement\",\"oci_internal_debug\",\"oci_lob_copy\",\"oci_lob_is_equal\",\"oci_new_collection\",\"oci_new_connect\",\"oci_new_cursor\",\"oci_new_descriptor\",\"oci_num_fields\",\"oci_num_rows\",\"oci_parse\",\"oci_password_change\",\"oci_pconnect\",\"oci_result\",\"oci_rollback\",\"oci_server_version\",\"oci_set_action\",\"oci_set_client_identifier\",\"oci_set_client_info\",\"oci_set_edition\",\"oci_set_module_name\",\"oci_set_prefetch\",\"oci_statement_type\",\"ocibindbyname\",\"ocicancel\",\"ocicollappend\",\"ocicollassign\",\"ocicollassignelem\",\"ocicollgetelem\",\"ocicollmax\",\"ocicollsize\",\"ocicolltrim\",\"ocicolumnisnull\",\"ocicolumnname\",\"ocicolumnprecision\",\"ocicolumnscale\",\"ocicolumnsize\",\"ocicolumntype\",\"ocicolumntyperaw\",\"ocicommit\",\"ocidefinebyname\",\"ocierror\",\"ociexecute\",\"ocifetch\",\"ocifetchstatement\",\"ocifreecollection\",\"ocifreecursor\",\"ocifreedesc\",\"ocifreestatement\",\"ociinternaldebug\",\"ociloadlob\",\"ocilogoff\",\"ocilogon\",\"ocinewcollection\",\"ocinewcursor\",\"ocinewdescriptor\",\"ocinlogon\",\"ocinumcols\",\"ociparse\",\"ociplogon\",\"ociresult\",\"ocirollback\",\"ocirowcount\",\"ocisavelob\",\"ocisavelobfile\",\"ociserverversion\",\"ocisetprefetch\",\"ocistatementtype\",\"ociwritelobtofile\",\"octdec\",\"odbc_autocommit\",\"odbc_binmode\",\"odbc_close\",\"odbc_close_all\",\"odbc_columnprivileges\",\"odbc_columns\",\"odbc_commit\",\"odbc_connect\",\"odbc_cursor\",\"odbc_data_source\",\"odbc_do\",\"odbc_error\",\"odbc_errormsg\",\"odbc_exec\",\"odbc_execute\",\"odbc_fetch_array\",\"odbc_fetch_into\",\"odbc_fetch_object\",\"odbc_fetch_row\",\"odbc_field_len\",\"odbc_field_name\",\"odbc_field_num\",\"odbc_field_precision\",\"odbc_field_scale\",\"odbc_field_type\",\"odbc_foreignkeys\",\"odbc_free_result\",\"odbc_gettypeinfo\",\"odbc_longreadlen\",\"odbc_next_result\",\"odbc_num_fields\",\"odbc_num_rows\",\"odbc_pconnect\",\"odbc_prepare\",\"odbc_primarykeys\",\"odbc_procedurecolumns\",\"odbc_procedures\",\"odbc_result\",\"odbc_result_all\",\"odbc_rollback\",\"odbc_setoption\",\"odbc_specialcolumns\",\"odbc_statistics\",\"odbc_tableprivileges\",\"odbc_tables\",\"opendir\",\"openlog\",\"openssl_csr_export\",\"openssl_csr_export_to_file\",\"openssl_csr_new\",\"openssl_csr_sign\",\"openssl_error_string\",\"openssl_free_key\",\"openssl_get_privatekey\",\"openssl_get_publickey\",\"openssl_open\",\"openssl_pkcs7_decrypt\",\"openssl_pkcs7_encrypt\",\"openssl_pkcs7_sign\",\"openssl_pkcs7_verify\",\"openssl_pkey_export\",\"openssl_pkey_export_to_file\",\"openssl_pkey_free\",\"openssl_pkey_get_private\",\"openssl_pkey_get_public\",\"openssl_pkey_new\",\"openssl_private_decrypt\",\"openssl_private_encrypt\",\"openssl_public_decrypt\",\"openssl_public_encrypt\",\"openssl_seal\",\"openssl_sign\",\"openssl_verify\",\"openssl_x509_check_private_key\",\"openssl_x509_checkpurpose\",\"openssl_x509_export\",\"openssl_x509_export_to_file\",\"openssl_x509_free\",\"openssl_x509_parse\",\"openssl_x509_read\",\"ord\",\"output_add_rewrite_var\",\"output_reset_rewrite_vars\",\"overload\",\"ovrimos_close\",\"ovrimos_commit\",\"ovrimos_connect\",\"ovrimos_cursor\",\"ovrimos_exec\",\"ovrimos_execute\",\"ovrimos_fetch_into\",\"ovrimos_fetch_row\",\"ovrimos_field_len\",\"ovrimos_field_name\",\"ovrimos_field_num\",\"ovrimos_field_type\",\"ovrimos_free_result\",\"ovrimos_longreadlen\",\"ovrimos_num_fields\",\"ovrimos_num_rows\",\"ovrimos_prepare\",\"ovrimos_result\",\"ovrimos_result_all\",\"ovrimos_rollback\",\"pack\",\"parse_ini_file\",\"parse_ini_string\",\"parse_str\",\"parse_url\",\"passthru\",\"pathinfo\",\"pclose\",\"pcntl_alarm\",\"pcntl_exec\",\"pcntl_fork\",\"pcntl_getpriority\",\"pcntl_setpriority\",\"pcntl_signal\",\"pcntl_wait\",\"pcntl_waitpid\",\"pcntl_wexitstatus\",\"pcntl_wifexited\",\"pcntl_wifsignaled\",\"pcntl_wifstopped\",\"pcntl_wstopsig\",\"pcntl_wtermsig\",\"pdf_add_annotation\",\"pdf_add_bookmark\",\"pdf_add_launchlink\",\"pdf_add_locallink\",\"pdf_add_note\",\"pdf_add_outline\",\"pdf_add_pdflink\",\"pdf_add_thumbnail\",\"pdf_add_weblink\",\"pdf_arc\",\"pdf_arcn\",\"pdf_attach_file\",\"pdf_begin_page\",\"pdf_begin_pattern\",\"pdf_begin_template\",\"pdf_circle\",\"pdf_clip\",\"pdf_close\",\"pdf_close_image\",\"pdf_close_pdi\",\"pdf_close_pdi_page\",\"pdf_closepath\",\"pdf_closepath_fill_stroke\",\"pdf_closepath_stroke\",\"pdf_concat\",\"pdf_continue_text\",\"pdf_curveto\",\"pdf_delete\",\"pdf_end_page\",\"pdf_end_pattern\",\"pdf_end_template\",\"pdf_endpath\",\"pdf_fill\",\"pdf_fill_stroke\",\"pdf_findfont\",\"pdf_get_buffer\",\"pdf_get_font\",\"pdf_get_fontname\",\"pdf_get_fontsize\",\"pdf_get_image_height\",\"pdf_get_image_width\",\"pdf_get_majorversion\",\"pdf_get_minorversion\",\"pdf_get_parameter\",\"pdf_get_pdi_parameter\",\"pdf_get_pdi_value\",\"pdf_get_value\",\"pdf_initgraphics\",\"pdf_lineto\",\"pdf_makespotcolor\",\"pdf_moveto\",\"pdf_new\",\"pdf_open\",\"pdf_open_ccitt\",\"pdf_open_file\",\"pdf_open_gif\",\"pdf_open_image\",\"pdf_open_image_file\",\"pdf_open_jpeg\",\"pdf_open_memory_image\",\"pdf_open_pdi\",\"pdf_open_pdi_page\",\"pdf_open_png\",\"pdf_open_tiff\",\"pdf_place_image\",\"pdf_place_pdi_page\",\"pdf_rect\",\"pdf_restore\",\"pdf_rotate\",\"pdf_save\",\"pdf_scale\",\"pdf_set_border_color\",\"pdf_set_border_dash\",\"pdf_set_border_style\",\"pdf_set_char_spacing\",\"pdf_set_duration\",\"pdf_set_font\",\"pdf_set_horiz_scaling\",\"pdf_set_info\",\"pdf_set_info_author\",\"pdf_set_info_creator\",\"pdf_set_info_keywords\",\"pdf_set_info_subject\",\"pdf_set_info_title\",\"pdf_set_leading\",\"pdf_set_parameter\",\"pdf_set_text_pos\",\"pdf_set_text_rendering\",\"pdf_set_text_rise\",\"pdf_set_transition\",\"pdf_set_value\",\"pdf_set_word_spacing\",\"pdf_setcolor\",\"pdf_setdash\",\"pdf_setflat\",\"pdf_setfont\",\"pdf_setgray\",\"pdf_setgray_fill\",\"pdf_setgray_stroke\",\"pdf_setlinecap\",\"pdf_setlinejoin\",\"pdf_setlinewidth\",\"pdf_setmatrix\",\"pdf_setmiterlimit\",\"pdf_setpolydash\",\"pdf_setrgbcolor\",\"pdf_setrgbcolor_fill\",\"pdf_setrgbcolor_stroke\",\"pdf_show\",\"pdf_show_boxed\",\"pdf_show_xy\",\"pdf_skew\",\"pdf_stringwidth\",\"pdf_stroke\",\"pdf_translate\",\"pdo_drivers\",\"pfpro_cleanup\",\"pfpro_init\",\"pfpro_process\",\"pfpro_process_raw\",\"pfpro_version\",\"pfsockopen\",\"pg_affected_rows\",\"pg_cancel_query\",\"pg_client_encoding\",\"pg_clientencoding\",\"pg_close\",\"pg_cmdtuples\",\"pg_connect\",\"pg_connection_busy\",\"pg_connection_reset\",\"pg_connection_status\",\"pg_convert\",\"pg_copy_from\",\"pg_copy_to\",\"pg_dbname\",\"pg_delete\",\"pg_end_copy\",\"pg_errormessage\",\"pg_escape_bytea\",\"pg_escape_string\",\"pg_exec\",\"pg_fetch_all\",\"pg_fetch_array\",\"pg_fetch_assoc\",\"pg_fetch_object\",\"pg_fetch_result\",\"pg_fetch_row\",\"pg_field_is_null\",\"pg_field_name\",\"pg_field_num\",\"pg_field_prtlen\",\"pg_field_size\",\"pg_field_type\",\"pg_fieldisnull\",\"pg_fieldname\",\"pg_fieldnum\",\"pg_fieldprtlen\",\"pg_fieldsize\",\"pg_fieldtype\",\"pg_free_result\",\"pg_freeresult\",\"pg_get_notify\",\"pg_get_pid\",\"pg_get_result\",\"pg_getlastoid\",\"pg_host\",\"pg_insert\",\"pg_last_error\",\"pg_last_notice\",\"pg_last_oid\",\"pg_lo_close\",\"pg_lo_create\",\"pg_lo_export\",\"pg_lo_import\",\"pg_lo_open\",\"pg_lo_read\",\"pg_lo_read_all\",\"pg_lo_seek\",\"pg_lo_tell\",\"pg_lo_unlink\",\"pg_lo_write\",\"pg_loclose\",\"pg_locreate\",\"pg_loexport\",\"pg_loimport\",\"pg_loopen\",\"pg_loread\",\"pg_loreadall\",\"pg_lounlink\",\"pg_lowrite\",\"pg_meta_data\",\"pg_num_fields\",\"pg_num_rows\",\"pg_numfields\",\"pg_numrows\",\"pg_options\",\"pg_parameter_status\",\"pg_pconnect\",\"pg_ping\",\"pg_port\",\"pg_put_line\",\"pg_query\",\"pg_result\",\"pg_result_error\",\"pg_result_seek\",\"pg_result_status\",\"pg_select\",\"pg_send_query\",\"pg_set_client_encoding\",\"pg_setclientencoding\",\"pg_trace\",\"pg_tty\",\"pg_unescape_bytea\",\"pg_untrace\",\"pg_update\",\"pg_version\",\"php_egg_logo_guid\",\"php_ini_loaded_file\",\"php_ini_scanned_files\",\"php_logo_guid\",\"php_real_logo_guid\",\"php_sapi_name\",\"php_strip_whitespace\",\"php_uname\",\"phpcredits\",\"phpinfo\",\"phpversion\",\"pi\",\"png2wbmp\",\"popen\",\"pos\",\"posix_ctermid\",\"posix_errno\",\"posix_get_last_error\",\"posix_getcwd\",\"posix_getegid\",\"posix_geteuid\",\"posix_getgid\",\"posix_getgrgid\",\"posix_getgrnam\",\"posix_getgroups\",\"posix_getlogin\",\"posix_getpgid\",\"posix_getpgrp\",\"posix_getpid\",\"posix_getppid\",\"posix_getpwnam\",\"posix_getpwuid\",\"posix_getrlimit\",\"posix_getsid\",\"posix_getuid\",\"posix_isatty\",\"posix_kill\",\"posix_mkfifo\",\"posix_setegid\",\"posix_seteuid\",\"posix_setgid\",\"posix_setpgid\",\"posix_setsid\",\"posix_setuid\",\"posix_strerror\",\"posix_times\",\"posix_ttyname\",\"posix_uname\",\"pow\",\"preg_filter\",\"preg_grep\",\"preg_last_error\",\"preg_match\",\"preg_match_all\",\"preg_quote\",\"preg_replace\",\"preg_replace_callback\",\"preg_split\",\"prev\",\"print\",\"print_r\",\"printer_abort\",\"printer_close\",\"printer_create_brush\",\"printer_create_dc\",\"printer_create_font\",\"printer_create_pen\",\"printer_delete_brush\",\"printer_delete_dc\",\"printer_delete_font\",\"printer_delete_pen\",\"printer_draw_bmp\",\"printer_draw_chord\",\"printer_draw_elipse\",\"printer_draw_line\",\"printer_draw_pie\",\"printer_draw_rectangle\",\"printer_draw_roundrect\",\"printer_draw_text\",\"printer_end_doc\",\"printer_end_page\",\"printer_get_option\",\"printer_list\",\"printer_logical_fontheight\",\"printer_open\",\"printer_select_brush\",\"printer_select_font\",\"printer_select_pen\",\"printer_set_option\",\"printer_start_doc\",\"printer_start_page\",\"printer_write\",\"printf\",\"proc_close\",\"proc_get_status\",\"proc_nice\",\"proc_open\",\"proc_terminate\",\"property_exists\",\"pspell_add_to_personal\",\"pspell_add_to_session\",\"pspell_check\",\"pspell_clear_session\",\"pspell_config_create\",\"pspell_config_ignore\",\"pspell_config_mode\",\"pspell_config_personal\",\"pspell_config_repl\",\"pspell_config_runtogether\",\"pspell_config_save_repl\",\"pspell_new\",\"pspell_new_config\",\"pspell_new_personal\",\"pspell_save_wordlist\",\"pspell_store_replacement\",\"pspell_suggest\",\"putenv\",\"qdom_error\",\"qdom_tree\",\"quoted_printable_decode\",\"quoted_printable_encode\",\"quotemeta\",\"rad2deg\",\"rand\",\"range\",\"rawurldecode\",\"rawurlencode\",\"read_exif_data\",\"readdir\",\"readfile\",\"readgzfile\",\"readline\",\"readline_add_history\",\"readline_clear_history\",\"readline_completion_function\",\"readline_info\",\"readline_list_history\",\"readline_read_history\",\"readline_write_history\",\"readlink\",\"realpath\",\"realpath_cache_get\",\"realpath_cache_size\",\"recode\",\"recode_file\",\"recode_string\",\"register_shutdown_function\",\"register_tick_function\",\"rename\",\"require\",\"require_once\",\"reset\",\"restore_error_handler\",\"restore_exception_handler\",\"restore_include_path\",\"rewind\",\"rewinddir\",\"rmdir\",\"round\",\"rsort\",\"rtrim\",\"scandir\",\"sem_acquire\",\"sem_get\",\"sem_release\",\"sem_remove\",\"serialize\",\"sesam_affected_rows\",\"sesam_commit\",\"sesam_connect\",\"sesam_diagnostic\",\"sesam_disconnect\",\"sesam_errormsg\",\"sesam_execimm\",\"sesam_fetch_array\",\"sesam_fetch_result\",\"sesam_fetch_row\",\"sesam_field_array\",\"sesam_field_name\",\"sesam_free_result\",\"sesam_num_fields\",\"sesam_query\",\"sesam_rollback\",\"sesam_seek_row\",\"sesam_settransaction\",\"session_cache_expire\",\"session_cache_limiter\",\"session_commit\",\"session_decode\",\"session_destroy\",\"session_encode\",\"session_get_cookie_params\",\"session_id\",\"session_is_registered\",\"session_module_name\",\"session_name\",\"session_regenerate_id\",\"session_register\",\"session_save_path\",\"session_set_cookie_params\",\"session_set_save_handler\",\"session_start\",\"session_unregister\",\"session_unset\",\"session_write_close\",\"set_error_handler\",\"set_exception_handler\",\"set_file_buffer\",\"set_include_path\",\"set_magic_quotes_runtime\",\"set_socket_blocking\",\"set_time_limit\",\"setcookie\",\"setlocale\",\"setrawcookie\",\"settype\",\"sha1\",\"sha1_file\",\"sha256\",\"sha256_file\",\"shell_exec\",\"shm_attach\",\"shm_detach\",\"shm_get_var\",\"shm_put_var\",\"shm_remove\",\"shm_remove_var\",\"shmop_close\",\"shmop_delete\",\"shmop_open\",\"shmop_read\",\"shmop_size\",\"shmop_write\",\"show_source\",\"shuffle\",\"similar_text\",\"simplexml_import_dom\",\"simplexml_load_file\",\"simplexml_load_string\",\"sin\",\"sinh\",\"sizeof\",\"sleep\",\"snmp3_get\",\"snmp3_getnext\",\"snmp3_real_walk\",\"snmp3_set\",\"snmp3_walk\",\"snmp_get_quick_print\",\"snmp_get_valueretrieval\",\"snmp_read_mib\",\"snmp_set_enum_print\",\"snmp_set_oid_numeric_print\",\"snmp_set_quick_print\",\"snmp_set_valueretrieval\",\"snmpget\",\"snmpgetnext\",\"snmprealwalk\",\"snmpset\",\"snmpwalk\",\"snmpwalkoid\",\"socket_accept\",\"socket_bind\",\"socket_clear_error\",\"socket_close\",\"socket_connect\",\"socket_create\",\"socket_create_listen\",\"socket_create_pair\",\"socket_get_option\",\"socket_get_status\",\"socket_getopt\",\"socket_getpeername\",\"socket_getsockname\",\"socket_last_error\",\"socket_listen\",\"socket_read\",\"socket_recv\",\"socket_recvfrom\",\"socket_select\",\"socket_send\",\"socket_sendto\",\"socket_set_block\",\"socket_set_blocking\",\"socket_set_nonblock\",\"socket_set_option\",\"socket_set_timeout\",\"socket_setopt\",\"socket_shutdown\",\"socket_strerror\",\"socket_write\",\"sort\",\"soundex\",\"spl_autoload\",\"spl_autoload_call\",\"spl_autoload_extensions\",\"spl_autoload_functions\",\"spl_autoload_register\",\"spl_autoload_unregister\",\"spl_classes\",\"spl_object_hash\",\"sprintf\",\"sqlite_array_query\",\"sqlite_busy_timeout\",\"sqlite_changes\",\"sqlite_close\",\"sqlite_column\",\"sqlite_create_aggregate\",\"sqlite_create_function\",\"sqlite_current\",\"sqlite_error_string\",\"sqlite_escape_string\",\"sqlite_exec\",\"sqlite_factory\",\"sqlite_fetch_all\",\"sqlite_fetch_array\",\"sqlite_fetch_column_types\",\"sqlite_fetch_object\",\"sqlite_fetch_single\",\"sqlite_fetch_string\",\"sqlite_field_name\",\"sqlite_has_more\",\"sqlite_has_prev\",\"sqlite_last_error\",\"sqlite_last_insert_rowid\",\"sqlite_libencoding\",\"sqlite_libversion\",\"sqlite_next\",\"sqlite_num_fields\",\"sqlite_num_rows\",\"sqlite_open\",\"sqlite_popen\",\"sqlite_prev\",\"sqlite_query\",\"sqlite_rewind\",\"sqlite_seek\",\"sqlite_single_query\",\"sqlite_udf_decode_binary\",\"sqlite_udf_encode_binary\",\"sqlite_unbuffered_query\",\"sqlite_valid\",\"sqrt\",\"srand\",\"sscanf\",\"stat\",\"str_getcsv\",\"str_ireplace\",\"str_pad\",\"str_repeat\",\"str_replace\",\"str_rot13\",\"str_shuffle\",\"str_split\",\"str_word_count\",\"strcasecmp\",\"strchr\",\"strcmp\",\"strcoll\",\"strcspn\",\"stream_bucket_append\",\"stream_bucket_make_writeable\",\"stream_bucket_new\",\"stream_bucket_prepend\",\"stream_context_create\",\"stream_context_get_default\",\"stream_context_get_options\",\"stream_context_get_params\",\"stream_context_set_default\",\"stream_context_set_option\",\"stream_context_set_params\",\"stream_copy_to_stream\",\"stream_filter_append\",\"stream_filter_prepend\",\"stream_filter_register\",\"stream_filter_remove\",\"stream_get_contents\",\"stream_get_filters\",\"stream_get_line\",\"stream_get_meta_data\",\"stream_get_transports\",\"stream_get_wrappers\",\"stream_is_local\",\"stream_register_wrapper\",\"stream_resolve_include_path\",\"stream_select\",\"stream_set_blocking\",\"stream_set_read_buffer\",\"stream_set_timeout\",\"stream_set_write_buffer\",\"stream_socket_accept\",\"stream_socket_client\",\"stream_socket_enable_crypto\",\"stream_socket_get_name\",\"stream_socket_pair\",\"stream_socket_recvfrom\",\"stream_socket_sendto\",\"stream_socket_server\",\"stream_socket_shutdown\",\"stream_supports_lock\",\"stream_wrapper_register\",\"stream_wrapper_restore\",\"stream_wrapper_unregister\",\"strftime\",\"strip_tags\",\"stripcslashes\",\"stripos\",\"stripslashes\",\"stristr\",\"strlen\",\"strnatcasecmp\",\"strnatcmp\",\"strncasecmp\",\"strncmp\",\"strpbrk\",\"strpos\",\"strptime\",\"strrchr\",\"strrev\",\"strripos\",\"strrpos\",\"strspn\",\"strstr\",\"strtok\",\"strtolower\",\"strtotime\",\"strtoupper\",\"strtr\",\"strval\",\"substr\",\"substr_compare\",\"substr_count\",\"substr_replace\",\"suhosin_encrypt_cookie\",\"suhosin_get_raw_cookies\",\"swf_actiongeturl\",\"swf_actiongotoframe\",\"swf_actiongotolabel\",\"swf_actionnextframe\",\"swf_actionplay\",\"swf_actionprevframe\",\"swf_actionsettarget\",\"swf_actionstop\",\"swf_actiontogglequality\",\"swf_actionwaitforframe\",\"swf_addbuttonrecord\",\"swf_addcolor\",\"swf_closefile\",\"swf_definebitmap\",\"swf_definefont\",\"swf_defineline\",\"swf_definepoly\",\"swf_definerect\",\"swf_definetext\",\"swf_endbutton\",\"swf_enddoaction\",\"swf_endshape\",\"swf_endsymbol\",\"swf_fontsize\",\"swf_fontslant\",\"swf_fonttracking\",\"swf_getbitmapinfo\",\"swf_getfontinfo\",\"swf_getframe\",\"swf_labelframe\",\"swf_lookat\",\"swf_modifyobject\",\"swf_mulcolor\",\"swf_nextid\",\"swf_oncondition\",\"swf_openfile\",\"swf_ortho\",\"swf_ortho2\",\"swf_perspective\",\"swf_placeobject\",\"swf_polarview\",\"swf_popmatrix\",\"swf_posround\",\"swf_pushmatrix\",\"swf_removeobject\",\"swf_rotate\",\"swf_scale\",\"swf_setfont\",\"swf_setframe\",\"swf_shapearc\",\"swf_shapecurveto\",\"swf_shapecurveto3\",\"swf_shapefillbitmapclip\",\"swf_shapefillbitmaptile\",\"swf_shapefilloff\",\"swf_shapefillsolid\",\"swf_shapelinesolid\",\"swf_shapelineto\",\"swf_shapemoveto\",\"swf_showframe\",\"swf_startbutton\",\"swf_startdoaction\",\"swf_startshape\",\"swf_startsymbol\",\"swf_textwidth\",\"swf_translate\",\"swf_viewport\",\"swfaction\",\"swfbitmap\",\"swfbitmap.getheight\",\"swfbitmap.getwidth\",\"swfbutton\",\"swfbutton.addaction\",\"swfbutton.addshape\",\"swfbutton.setaction\",\"swfbutton.setdown\",\"swfbutton.sethit\",\"swfbutton.setover\",\"swfbutton.setup\",\"swfbutton_keypress\",\"swfdisplayitem\",\"swfdisplayitem.addcolor\",\"swfdisplayitem.move\",\"swfdisplayitem.moveto\",\"swfdisplayitem.multcolor\",\"swfdisplayitem.remove\",\"swfdisplayitem.rotate\",\"swfdisplayitem.rotateto\",\"swfdisplayitem.scale\",\"swfdisplayitem.scaleto\",\"swfdisplayitem.setdepth\",\"swfdisplayitem.setname\",\"swfdisplayitem.setratio\",\"swfdisplayitem.skewx\",\"swfdisplayitem.skewxto\",\"swfdisplayitem.skewy\",\"swfdisplayitem.skewyto\",\"swffill\",\"swffill.moveto\",\"swffill.rotateto\",\"swffill.scaleto\",\"swffill.skewxto\",\"swffill.skewyto\",\"swffont\",\"swffont.getwidth\",\"swfgradient\",\"swfgradient.addentry\",\"swfmorph\",\"swfmorph.getshape1\",\"swfmorph.getshape2\",\"swfmovie\",\"swfmovie.add\",\"swfmovie.nextframe\",\"swfmovie.output\",\"swfmovie.remove\",\"swfmovie.save\",\"swfmovie.setbackground\",\"swfmovie.setdimension\",\"swfmovie.setframes\",\"swfmovie.setrate\",\"swfmovie.streammp3\",\"swfshape\",\"swfshape.addfill\",\"swfshape.drawcurve\",\"swfshape.drawcurveto\",\"swfshape.drawline\",\"swfshape.drawlineto\",\"swfshape.movepen\",\"swfshape.movepento\",\"swfshape.setleftfill\",\"swfshape.setline\",\"swfshape.setrightfill\",\"swfsprite\",\"swfsprite.add\",\"swfsprite.nextframe\",\"swfsprite.remove\",\"swfsprite.setframes\",\"swftext\",\"swftext.addstring\",\"swftext.getwidth\",\"swftext.moveto\",\"swftext.setcolor\",\"swftext.setfont\",\"swftext.setheight\",\"swftext.setspacing\",\"swftextfield\",\"swftextfield.addstring\",\"swftextfield.align\",\"swftextfield.setbounds\",\"swftextfield.setcolor\",\"swftextfield.setfont\",\"swftextfield.setheight\",\"swftextfield.setindentation\",\"swftextfield.setleftmargin\",\"swftextfield.setlinespacing\",\"swftextfield.setmargins\",\"swftextfield.setname\",\"swftextfield.setrightmargin\",\"sybase_affected_rows\",\"sybase_close\",\"sybase_connect\",\"sybase_data_seek\",\"sybase_fetch_array\",\"sybase_fetch_field\",\"sybase_fetch_object\",\"sybase_fetch_row\",\"sybase_field_seek\",\"sybase_free_result\",\"sybase_get_last_message\",\"sybase_min_client_severity\",\"sybase_min_error_severity\",\"sybase_min_message_severity\",\"sybase_min_server_severity\",\"sybase_num_fields\",\"sybase_num_rows\",\"sybase_pconnect\",\"sybase_query\",\"sybase_result\",\"sybase_select_db\",\"symlink\",\"sys_get_temp_dir\",\"sys_getloadavg\",\"syslog\",\"system\",\"tan\",\"tanh\",\"tempnam\",\"textdomain\",\"time\",\"time_nanosleep\",\"time_sleep_until\",\"timezone_abbreviations_list\",\"timezone_identifiers_list\",\"timezone_location_get\",\"timezone_name_from_abbr\",\"timezone_name_get\",\"timezone_offset_get\",\"timezone_open\",\"timezone_transitions_get\",\"timezone_version_get\",\"tmpfile\",\"token_get_all\",\"token_name\",\"touch\",\"trigger_error\",\"trim\",\"uasort\",\"ucfirst\",\"ucwords\",\"udm_add_search_limit\",\"udm_alloc_agent\",\"udm_api_version\",\"udm_cat_list\",\"udm_cat_path\",\"udm_check_charset\",\"udm_check_stored\",\"udm_clear_search_limits\",\"udm_close_stored\",\"udm_crc32\",\"udm_errno\",\"udm_error\",\"udm_find\",\"udm_free_agent\",\"udm_free_ispell_data\",\"udm_free_res\",\"udm_get_doc_count\",\"udm_get_res_field\",\"udm_get_res_param\",\"udm_load_ispell_data\",\"udm_open_stored\",\"udm_set_agent_param\",\"uksort\",\"umask\",\"uniqid\",\"unixtojd\",\"unlink\",\"unpack\",\"unregister_tick_function\",\"unserialize\",\"unset\",\"urldecode\",\"urlencode\",\"use_soap_error_handler\",\"user_error\",\"usleep\",\"usort\",\"utf8_decode\",\"utf8_encode\",\"var_dump\",\"var_export\",\"variant\",\"version_compare\",\"vfprintf\",\"virtual\",\"vpopmail_add_alias_domain\",\"vpopmail_add_alias_domain_ex\",\"vpopmail_add_domain\",\"vpopmail_add_domain_ex\",\"vpopmail_add_user\",\"vpopmail_alias_add\",\"vpopmail_alias_del\",\"vpopmail_alias_del_domain\",\"vpopmail_alias_get\",\"vpopmail_alias_get_all\",\"vpopmail_auth_user\",\"vpopmail_del_domain\",\"vpopmail_del_domain_ex\",\"vpopmail_del_user\",\"vpopmail_error\",\"vpopmail_passwd\",\"vpopmail_set_user_quota\",\"vprintf\",\"vsprintf\",\"w32api_deftype\",\"w32api_init_dtype\",\"w32api_invoke_function\",\"w32api_register_function\",\"w32api_set_call_method\",\"wddx_add_vars\",\"wddx_deserialize\",\"wddx_packet_end\",\"wddx_packet_start\",\"wddx_serialize_value\",\"wddx_serialize_vars\",\"wordwrap\",\"xdebug_break\",\"xdebug_call_class\",\"xdebug_call_file\",\"xdebug_call_function\",\"xdebug_call_line\",\"xdebug_clear_aggr_profiling_data\",\"xdebug_debug_zval\",\"xdebug_debug_zval_stdout\",\"xdebug_disable\",\"xdebug_dump_aggr_profiling_data\",\"xdebug_dump_superglobals\",\"xdebug_enable\",\"xdebug_get_code_coverage\",\"xdebug_get_collected_errors\",\"xdebug_get_declared_vars\",\"xdebug_get_formatted_function_stack\",\"xdebug_get_function_count\",\"xdebug_get_function_stack\",\"xdebug_get_headers\",\"xdebug_get_profiler_filename\",\"xdebug_get_stack_depth\",\"xdebug_get_tracefile_name\",\"xdebug_is_enabled\",\"xdebug_memory_usage\",\"xdebug_peak_memory_usage\",\"xdebug_print_function_stack\",\"xdebug_start_code_coverage\",\"xdebug_start_error_collection\",\"xdebug_start_trace\",\"xdebug_stop_code_coverage\",\"xdebug_stop_error_collection\",\"xdebug_stop_trace\",\"xdebug_time_index\",\"xdebug_var_dump\",\"xml_error_string\",\"xml_get_current_byte_index\",\"xml_get_current_column_number\",\"xml_get_current_line_number\",\"xml_get_error_code\",\"xml_parse\",\"xml_parse_into_struct\",\"xml_parser_create\",\"xml_parser_create_ns\",\"xml_parser_free\",\"xml_parser_get_option\",\"xml_parser_set_option\",\"xml_set_character_data_handler\",\"xml_set_default_handler\",\"xml_set_element_handler\",\"xml_set_end_namespace_decl_handler\",\"xml_set_external_entity_ref_handler\",\"xml_set_notation_decl_handler\",\"xml_set_object\",\"xml_set_processing_instruction_handler\",\"xml_set_start_namespace_decl_handler\",\"xml_set_unparsed_entity_decl_handler\",\"xmldoc\",\"xmldocfile\",\"xmlrpc_decode\",\"xmlrpc_decode_request\",\"xmlrpc_encode\",\"xmlrpc_encode_request\",\"xmlrpc_get_type\",\"xmlrpc_is_fault\",\"xmlrpc_parse_method_descriptions\",\"xmlrpc_server_add_introspection_data\",\"xmlrpc_server_call_method\",\"xmlrpc_server_create\",\"xmlrpc_server_destroy\",\"xmlrpc_server_register_introspection_callback\",\"xmlrpc_server_register_method\",\"xmlrpc_set_type\",\"xmltree\",\"xmlwriter_end_attribute\",\"xmlwriter_end_cdata\",\"xmlwriter_end_comment\",\"xmlwriter_end_document\",\"xmlwriter_end_dtd\",\"xmlwriter_end_dtd_attlist\",\"xmlwriter_end_dtd_element\",\"xmlwriter_end_dtd_entity\",\"xmlwriter_end_element\",\"xmlwriter_end_pi\",\"xmlwriter_flush\",\"xmlwriter_full_end_element\",\"xmlwriter_open_memory\",\"xmlwriter_open_uri\",\"xmlwriter_output_memory\",\"xmlwriter_set_indent\",\"xmlwriter_set_indent_string\",\"xmlwriter_start_attribute\",\"xmlwriter_start_attribute_ns\",\"xmlwriter_start_cdata\",\"xmlwriter_start_comment\",\"xmlwriter_start_document\",\"xmlwriter_start_dtd\",\"xmlwriter_start_dtd_attlist\",\"xmlwriter_start_dtd_element\",\"xmlwriter_start_dtd_entity\",\"xmlwriter_start_element\",\"xmlwriter_start_element_ns\",\"xmlwriter_start_pi\",\"xmlwriter_text\",\"xmlwriter_write_attribute\",\"xmlwriter_write_attribute_ns\",\"xmlwriter_write_cdata\",\"xmlwriter_write_comment\",\"xmlwriter_write_dtd\",\"xmlwriter_write_dtd_attlist\",\"xmlwriter_write_dtd_element\",\"xmlwriter_write_dtd_entity\",\"xmlwriter_write_element\",\"xmlwriter_write_element_ns\",\"xmlwriter_write_pi\",\"xmlwriter_write_raw\",\"xpath_eval\",\"xpath_eval_expression\",\"xpath_new_context\",\"xptr_eval\",\"xptr_new_context\",\"xslt_create\",\"xslt_errno\",\"xslt_error\",\"xslt_free\",\"xslt_process\",\"xslt_set_base\",\"xslt_set_encoding\",\"xslt_set_error_handler\",\"xslt_set_log\",\"xslt_set_sax_handler\",\"xslt_set_sax_handlers\",\"xslt_set_scheme_handler\",\"xslt_set_scheme_handlers\",\"yaz_addinfo\",\"yaz_ccl_conf\",\"yaz_ccl_parse\",\"yaz_close\",\"yaz_connect\",\"yaz_database\",\"yaz_element\",\"yaz_errno\",\"yaz_error\",\"yaz_hits\",\"yaz_itemorder\",\"yaz_present\",\"yaz_range\",\"yaz_record\",\"yaz_scan\",\"yaz_scan_result\",\"yaz_search\",\"yaz_sort\",\"yaz_syntax\",\"yaz_wait\",\"yp_all\",\"yp_cat\",\"yp_err_string\",\"yp_errno\",\"yp_first\",\"yp_get_default_domain\",\"yp_master\",\"yp_match\",\"yp_next\",\"yp_order\",\"zend_logo_guid\",\"zend_version\",\"zip_close\",\"zip_entry_close\",\"zip_entry_compressedsize\",\"zip_entry_compressionmethod\",\"zip_entry_filesize\",\"zip_entry_name\",\"zip_entry_open\",\"zip_entry_read\",\"zip_open\",\"zip_read\",\"zlib_get_coding_type\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?@[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"__autoload\",\"__call\",\"__clone\",\"__construct\",\"__destruct\",\"__get\",\"__halt_compiler\",\"__isset\",\"__set\",\"__set_state\",\"__sleep\",\"__toString\",\"__unset\",\"__wakeup\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?@[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"__CLASS__\",\"__COMPILER_HALT_OFFSET__\",\"__DIR__\",\"__FILE__\",\"__FUNCTION__\",\"__LINE__\",\"__METHOD__\",\"__NAMESPACE__\",\"__TRAIT__\",\"ABDAY_1\",\"ABDAY_2\",\"ABDAY_3\",\"ABDAY_4\",\"ABDAY_5\",\"ABDAY_6\",\"ABDAY_7\",\"ABMON_1\",\"ABMON_10\",\"ABMON_11\",\"ABMON_12\",\"ABMON_2\",\"ABMON_3\",\"ABMON_4\",\"ABMON_5\",\"ABMON_6\",\"ABMON_7\",\"ABMON_8\",\"ABMON_9\",\"AF_INET\",\"AF_INET6\",\"AF_UNIX\",\"ALT_DIGITS\",\"AM_STR\",\"ASSERT_ACTIVE\",\"ASSERT_BAIL\",\"ASSERT_CALLBACK\",\"ASSERT_QUIET_EVAL\",\"ASSERT_WARNING\",\"C_EXPLICIT_ABSTRACT\",\"C_FINAL\",\"C_IMPLICIT_ABSTRACT\",\"CAL_DOW_DAYNO\",\"CAL_DOW_LONG\",\"CAL_DOW_SHORT\",\"CAL_EASTER_ALWAYS_GREGORIAN\",\"CAL_EASTER_ALWAYS_JULIAN\",\"CAL_EASTER_DEFAULT\",\"CAL_EASTER_ROMAN\",\"CAL_FRENCH\",\"CAL_GREGORIAN\",\"CAL_JEWISH\",\"CAL_JEWISH_ADD_ALAFIM\",\"CAL_JEWISH_ADD_ALAFIM_GERESH\",\"CAL_JEWISH_ADD_GERESHAYIM\",\"CAL_JULIAN\",\"CAL_MONTH_FRENCH\",\"CAL_MONTH_GREGORIAN_LONG\",\"CAL_MONTH_GREGORIAN_SHORT\",\"CAL_MONTH_JEWISH\",\"CAL_MONTH_JULIAN_LONG\",\"CAL_MONTH_JULIAN_SHORT\",\"CAL_NUM_CALS\",\"CASE_LOWER\",\"CASE_UPPER\",\"CHAR_MAX\",\"CIT_CALL_TOSTRING\",\"CIT_CATCH_GET_CHILD\",\"CL_EXPUNGE\",\"CODESET\",\"CONNECTION_ABORTED\",\"CONNECTION_NORMAL\",\"CONNECTION_TIMEOUT\",\"COUNT_NORMAL\",\"COUNT_RECURSIVE\",\"CP_MOVE\",\"CP_UID\",\"CREDITS_ALL\",\"CREDITS_DOCS\",\"CREDITS_FULLPAGE\",\"CREDITS_GENERAL\",\"CREDITS_GROUP\",\"CREDITS_MODULES\",\"CREDITS_QA\",\"CREDITS_SAPI\",\"CRNCYSTR\",\"CRYPT_BLOWFISH\",\"CRYPT_EXT_DES\",\"CRYPT_MD5\",\"CRYPT_SALT_LENGTH\",\"CRYPT_STD_DES\",\"CURL_HTTP_VERSION_1_0\",\"CURL_HTTP_VERSION_1_1\",\"CURL_HTTP_VERSION_NONE\",\"CURL_NETRC_IGNORED\",\"CURL_NETRC_OPTIONAL\",\"CURL_NETRC_REQUIRED\",\"CURL_TIMECOND_IFMODSINCE\",\"CURL_TIMECOND_IFUNMODSINCE\",\"CURL_TIMECOND_LASTMOD\",\"CURL_VERSION_IPV6\",\"CURL_VERSION_KERBEROS4\",\"CURL_VERSION_LIBZ\",\"CURL_VERSION_SSL\",\"CURLAUTH_ANY\",\"CURLAUTH_ANYSAFE\",\"CURLAUTH_BASIC\",\"CURLAUTH_DIGEST\",\"CURLAUTH_GSSNEGOTIATE\",\"CURLAUTH_NTLM\",\"CURLCLOSEPOLICY_CALLBACK\",\"CURLCLOSEPOLICY_LEAST_RECENTLY_USED\",\"CURLCLOSEPOLICY_LEAST_TRAFFIC\",\"CURLCLOSEPOLICY_OLDEST\",\"CURLCLOSEPOLICY_SLOWEST\",\"CURLE_ABORTED_BY_CALLBACK\",\"CURLE_BAD_CALLING_ORDER\",\"CURLE_BAD_CONTENT_ENCODING\",\"CURLE_BAD_FUNCTION_ARGUMENT\",\"CURLE_BAD_PASSWORD_ENTERED\",\"CURLE_COULDNT_CONNECT\",\"CURLE_COULDNT_RESOLVE_HOST\",\"CURLE_COULDNT_RESOLVE_PROXY\",\"CURLE_FAILED_INIT\",\"CURLE_FILE_COULDNT_READ_FILE\",\"CURLE_FTP_ACCESS_DENIED\",\"CURLE_FTP_BAD_DOWNLOAD_RESUME\",\"CURLE_FTP_CANT_GET_HOST\",\"CURLE_FTP_CANT_RECONNECT\",\"CURLE_FTP_COULDNT_GET_SIZE\",\"CURLE_FTP_COULDNT_RETR_FILE\",\"CURLE_FTP_COULDNT_SET_ASCII\",\"CURLE_FTP_COULDNT_SET_BINARY\",\"CURLE_FTP_COULDNT_STOR_FILE\",\"CURLE_FTP_COULDNT_USE_REST\",\"CURLE_FTP_PORT_FAILED\",\"CURLE_FTP_QUOTE_ERROR\",\"CURLE_FTP_USER_PASSWORD_INCORRECT\",\"CURLE_FTP_WEIRD_227_FORMAT\",\"CURLE_FTP_WEIRD_PASS_REPLY\",\"CURLE_FTP_WEIRD_PASV_REPLY\",\"CURLE_FTP_WEIRD_SERVER_REPLY\",\"CURLE_FTP_WEIRD_USER_REPLY\",\"CURLE_FTP_WRITE_ERROR\",\"CURLE_FUNCTION_NOT_FOUND\",\"CURLE_GOT_NOTHING\",\"CURLE_HTTP_NOT_FOUND\",\"CURLE_HTTP_PORT_FAILED\",\"CURLE_HTTP_POST_ERROR\",\"CURLE_HTTP_RANGE_ERROR\",\"CURLE_LDAP_CANNOT_BIND\",\"CURLE_LDAP_SEARCH_FAILED\",\"CURLE_LIBRARY_NOT_FOUND\",\"CURLE_MALFORMAT_USER\",\"CURLE_OBSOLETE\",\"CURLE_OK\",\"CURLE_OPERATION_TIMEOUTED\",\"CURLE_OUT_OF_MEMORY\",\"CURLE_PARTIAL_FILE\",\"CURLE_READ_ERROR\",\"CURLE_RECV_ERROR\",\"CURLE_SEND_ERROR\",\"CURLE_SHARE_IN_USE\",\"CURLE_SSL_CACERT\",\"CURLE_SSL_CERTPROBLEM\",\"CURLE_SSL_CIPHER\",\"CURLE_SSL_CONNECT_ERROR\",\"CURLE_SSL_ENGINE_NOTFOUND\",\"CURLE_SSL_ENGINE_SETFAILED\",\"CURLE_SSL_PEER_CERTIFICATE\",\"CURLE_TELNET_OPTION_SYNTAX\",\"CURLE_TOO_MANY_REDIRECTS\",\"CURLE_UNKNOWN_TELNET_OPTION\",\"CURLE_UNSUPPORTED_PROTOCOL\",\"CURLE_URL_MALFORMAT\",\"CURLE_URL_MALFORMAT_USER\",\"CURLE_WRITE_ERROR\",\"CURLINFO_CONNECT_TIME\",\"CURLINFO_CONTENT_LENGTH_DOWNLOAD\",\"CURLINFO_CONTENT_LENGTH_UPLOAD\",\"CURLINFO_CONTENT_TYPE\",\"CURLINFO_EFFECTIVE_URL\",\"CURLINFO_FILETIME\",\"CURLINFO_HEADER_OUT\",\"CURLINFO_HEADER_SIZE\",\"CURLINFO_HTTP_CODE\",\"CURLINFO_NAMELOOKUP_TIME\",\"CURLINFO_PRETRANSFER_TIME\",\"CURLINFO_REDIRECT_COUNT\",\"CURLINFO_REDIRECT_TIME\",\"CURLINFO_REQUEST_SIZE\",\"CURLINFO_SIZE_DOWNLOAD\",\"CURLINFO_SIZE_UPLOAD\",\"CURLINFO_SPEED_DOWNLOAD\",\"CURLINFO_SPEED_UPLOAD\",\"CURLINFO_SSL_VERIFYRESULT\",\"CURLINFO_STARTTRANSFER_TIME\",\"CURLINFO_TOTAL_TIME\",\"CURLM_BAD_EASY_HANDLE\",\"CURLM_BAD_HANDLE\",\"CURLM_CALL_MULTI_PERFORM\",\"CURLM_INTERNAL_ERROR\",\"CURLM_OK\",\"CURLM_OUT_OF_MEMORY\",\"CURLMSG_DONE\",\"CURLOPT_BINARYTRANSFER\",\"CURLOPT_BUFFERSIZE\",\"CURLOPT_CAINFO\",\"CURLOPT_CAPATH\",\"CURLOPT_CLOSEPOLICY\",\"CURLOPT_CONNECTTIMEOUT\",\"CURLOPT_COOKIE\",\"CURLOPT_COOKIEFILE\",\"CURLOPT_COOKIEJAR\",\"CURLOPT_CRLF\",\"CURLOPT_CUSTOMREQUEST\",\"CURLOPT_DNS_CACHE_TIMEOUT\",\"CURLOPT_DNS_USE_GLOBAL_CACHE\",\"CURLOPT_EGDSOCKET\",\"CURLOPT_ENCODING\",\"CURLOPT_FAILONERROR\",\"CURLOPT_FILE\",\"CURLOPT_FILETIME\",\"CURLOPT_FOLLOWLOCATION\",\"CURLOPT_FORBID_REUSE\",\"CURLOPT_FRESH_CONNECT\",\"CURLOPT_FTP_USE_EPRT\",\"CURLOPT_FTP_USE_EPSV\",\"CURLOPT_FTPAPPEND\",\"CURLOPT_FTPASCII\",\"CURLOPT_FTPLISTONLY\",\"CURLOPT_FTPPORT\",\"CURLOPT_HEADER\",\"CURLOPT_HEADERFUNCTION\",\"CURLOPT_HTTP200ALIASES\",\"CURLOPT_HTTP_VERSION\",\"CURLOPT_HTTPAUTH\",\"CURLOPT_HTTPGET\",\"CURLOPT_HTTPHEADER\",\"CURLOPT_HTTPPROXYTUNNEL\",\"CURLOPT_INFILE\",\"CURLOPT_INFILESIZE\",\"CURLOPT_INTERFACE\",\"CURLOPT_KRB4LEVEL\",\"CURLOPT_LOW_SPEED_LIMIT\",\"CURLOPT_LOW_SPEED_TIME\",\"CURLOPT_MAXCONNECTS\",\"CURLOPT_MAXREDIRS\",\"CURLOPT_MUTE\",\"CURLOPT_NETRC\",\"CURLOPT_NOBODY\",\"CURLOPT_NOPROGRESS\",\"CURLOPT_NOSIGNAL\",\"CURLOPT_PASSWDFUNCTION\",\"CURLOPT_PORT\",\"CURLOPT_POST\",\"CURLOPT_POSTFIELDS\",\"CURLOPT_POSTQUOTE\",\"CURLOPT_PROXY\",\"CURLOPT_PROXYAUTH\",\"CURLOPT_PROXYPORT\",\"CURLOPT_PROXYTYPE\",\"CURLOPT_PROXYUSERPWD\",\"CURLOPT_PUT\",\"CURLOPT_QUOTE\",\"CURLOPT_RANDOM_FILE\",\"CURLOPT_RANGE\",\"CURLOPT_READDATA\",\"CURLOPT_READFUNCTION\",\"CURLOPT_REFERER\",\"CURLOPT_RESUME_FROM\",\"CURLOPT_RETURNTRANSFER\",\"CURLOPT_SSL_CIPHER_LIST\",\"CURLOPT_SSL_VERIFYHOST\",\"CURLOPT_SSL_VERIFYPEER\",\"CURLOPT_SSLCERT\",\"CURLOPT_SSLCERTPASSWD\",\"CURLOPT_SSLCERTTYPE\",\"CURLOPT_SSLENGINE\",\"CURLOPT_SSLENGINE_DEFAULT\",\"CURLOPT_SSLKEY\",\"CURLOPT_SSLKEYPASSWD\",\"CURLOPT_SSLKEYTYPE\",\"CURLOPT_SSLVERSION\",\"CURLOPT_STDERR\",\"CURLOPT_TIMECONDITION\",\"CURLOPT_TIMEOUT\",\"CURLOPT_TIMEVALUE\",\"CURLOPT_TRANSFERTEXT\",\"CURLOPT_UNRESTRICTED_AUTH\",\"CURLOPT_UPLOAD\",\"CURLOPT_URL\",\"CURLOPT_USERAGENT\",\"CURLOPT_USERPWD\",\"CURLOPT_VERBOSE\",\"CURLOPT_WRITEFUNCTION\",\"CURLOPT_WRITEHEADER\",\"CURLPROXY_HTTP\",\"CURLPROXY_SOCKS5\",\"CURLVERSION_NOW\",\"D_FMT\",\"D_T_FMT\",\"DATE_ATOM\",\"DATE_COOKIE\",\"DATE_ISO8601\",\"DATE_RFC1036\",\"DATE_RFC1123\",\"DATE_RFC2822\",\"DATE_RFC3339\",\"DATE_RFC822\",\"DATE_RFC850\",\"DATE_RSS\",\"DATE_W3C\",\"DAY_1\",\"DAY_2\",\"DAY_3\",\"DAY_4\",\"DAY_5\",\"DAY_6\",\"DAY_7\",\"DBX_CMP_ASC\",\"DBX_CMP_DESC\",\"DBX_CMP_NATIVE\",\"DBX_CMP_NUMBER\",\"DBX_CMP_TEXT\",\"DBX_COLNAMES_LOWERCASE\",\"DBX_COLNAMES_UNCHANGED\",\"DBX_COLNAMES_UPPERCASE\",\"DBX_FBSQL\",\"DBX_MSSQL\",\"DBX_MYSQL\",\"DBX_OCI8\",\"DBX_ODBC\",\"DBX_PERSISTENT\",\"DBX_PGSQL\",\"DBX_RESULT_ASSOC\",\"DBX_RESULT_INDEX\",\"DBX_RESULT_INFO\",\"DBX_RESULT_UNBUFFERED\",\"DBX_SQLITE\",\"DBX_SYBASECT\",\"DEFAULT_INCLUDE_PATH\",\"DIRECTORY_SEPARATOR\",\"DNS_A\",\"DNS_AAAA\",\"DNS_ALL\",\"DNS_ANY\",\"DNS_CNAME\",\"DNS_HINFO\",\"DNS_MX\",\"DNS_NAPTR\",\"DNS_NS\",\"DNS_PTR\",\"DNS_SOA\",\"DNS_SRV\",\"DNS_TXT\",\"DOM_HIERARCHY_REQUEST_ERR\",\"DOM_INDEX_SIZE_ERR\",\"DOM_INUSE_ATTRIBUTE_ERR\",\"DOM_INVALID_ACCESS_ERR\",\"DOM_INVALID_CHARACTER_ERR\",\"DOM_INVALID_MODIFICATION_ERR\",\"DOM_INVALID_STATE_ERR\",\"DOM_NAMESPACE_ERR\",\"DOM_NO_DATA_ALLOWED_ERR\",\"DOM_NO_MODIFICATION_ALLOWED_ERR\",\"DOM_NOT_FOUND_ERR\",\"DOM_NOT_SUPPORTED_ERR\",\"DOM_PHP_ERR\",\"DOM_SYNTAX_ERR\",\"DOM_VALIDATION_ERR\",\"DOM_WRONG_DOCUMENT_ERR\",\"DOMSTRING_SIZE_ERR\",\"E_ALL\",\"E_COMPILE_ERROR\",\"E_COMPILE_WARNING\",\"E_CORE_ERROR\",\"E_CORE_WARNING\",\"E_DEPRECATED\",\"E_ERROR\",\"E_NOTICE\",\"E_PARSE\",\"E_RECOVERABLE_ERROR\",\"E_STRICT\",\"E_USER_DEPRECATED\",\"E_USER_ERROR\",\"E_USER_NOTICE\",\"E_USER_WARNING\",\"E_WARNING\",\"ENC7BIT\",\"ENC8BIT\",\"ENCBASE64\",\"ENCBINARY\",\"ENCOTHER\",\"ENCQUOTEDPRINTABLE\",\"ENT_COMPAT\",\"ENT_NOQUOTES\",\"ENT_QUOTES\",\"ERA\",\"ERA_D_FMT\",\"ERA_D_T_FMT\",\"ERA_T_FMT\",\"EXIF_USE_MBSTRING\",\"EXTR_IF_EXISTS\",\"EXTR_OVERWRITE\",\"EXTR_PREFIX_ALL\",\"EXTR_PREFIX_IF_EXISTS\",\"EXTR_PREFIX_INVALID\",\"EXTR_PREFIX_SAME\",\"EXTR_REFS\",\"EXTR_SKIP\",\"F_DUPFD\",\"F_GETFD\",\"F_GETFL\",\"F_GETLK\",\"F_GETOWN\",\"F_RDLCK\",\"F_SETFL\",\"F_SETLK\",\"F_SETLKW\",\"F_SETOWN\",\"F_UNLCK\",\"F_WRLCK\",\"false\",\"FAMAcknowledge\",\"FAMChanged\",\"FAMCreated\",\"FAMDeleted\",\"FAMEndExist\",\"FAMExists\",\"FAMMoved\",\"FAMStartExecuting\",\"FAMStopExecuting\",\"FILE_APPEND\",\"FILE_IGNORE_NEW_LINES\",\"FILE_NO_DEFAULT_CONTEXT\",\"FILE_SKIP_EMPTY_LINES\",\"FILE_USE_INCLUDE_PATH\",\"FNM_CASEFOLD\",\"FNM_NOESCAPE\",\"FNM_PATHNAME\",\"FNM_PERIOD\",\"FORCE_DEFLATE\",\"FORCE_GZIP\",\"FT_INTERNAL\",\"FT_NOT\",\"FT_PEEK\",\"FT_PREFETCHTEXT\",\"FT_UID\",\"FTP_ASCII\",\"FTP_AUTORESUME\",\"FTP_AUTOSEEK\",\"FTP_BINARY\",\"FTP_FAILED\",\"FTP_FINISHED\",\"FTP_IMAGE\",\"FTP_MOREDATA\",\"FTP_TEXT\",\"FTP_TIMEOUT_SEC\",\"GD_BUNDLED\",\"GLOB_BRACE\",\"GLOB_MARK\",\"GLOB_NOCHECK\",\"GLOB_NOESCAPE\",\"GLOB_NOSORT\",\"GLOB_ONLYDIR\",\"GMP_ROUND_MINUSINF\",\"GMP_ROUND_PLUSINF\",\"GMP_ROUND_ZERO\",\"HASH_HMAC\",\"HTML_ENTITIES\",\"HTML_SPECIALCHARS\",\"ICONV_IMPL\",\"ICONV_MIME_DECODE_CONTINUE_ON_ERROR\",\"ICONV_MIME_DECODE_STRICT\",\"ICONV_VERSION\",\"IMAGETYPE_BMP\",\"IMAGETYPE_GIF\",\"IMAGETYPE_IFF\",\"IMAGETYPE_JB2\",\"IMAGETYPE_JP2\",\"IMAGETYPE_JPC\",\"IMAGETYPE_JPEG\",\"IMAGETYPE_JPEG2000\",\"IMAGETYPE_JPX\",\"IMAGETYPE_PNG\",\"IMAGETYPE_PSD\",\"IMAGETYPE_SWF\",\"IMAGETYPE_TIFF_II\",\"IMAGETYPE_TIFF_MM\",\"IMAGETYPE_WBMP\",\"IMAGETYPE_XBM\",\"IMAP_CLOSETIMEOUT\",\"IMAP_OPENTIMEOUT\",\"IMAP_READTIMEOUT\",\"IMAP_WRITETIMEOUT\",\"IMG_ARC_CHORD\",\"IMG_ARC_EDGED\",\"IMG_ARC_NOFILL\",\"IMG_ARC_PIE\",\"IMG_ARC_ROUNDED\",\"IMG_COLOR_BRUSHED\",\"IMG_COLOR_STYLED\",\"IMG_COLOR_STYLEDBRUSHED\",\"IMG_COLOR_TILED\",\"IMG_COLOR_TRANSPARENT\",\"IMG_EFFECT_ALPHABLEND\",\"IMG_EFFECT_NORMAL\",\"IMG_EFFECT_OVERLAY\",\"IMG_EFFECT_REPLACE\",\"IMG_FILTER_BRIGHTNESS\",\"IMG_FILTER_COLORIZE\",\"IMG_FILTER_CONTRAST\",\"IMG_FILTER_EDGEDETECT\",\"IMG_FILTER_EMBOSS\",\"IMG_FILTER_GAUSSIAN_BLUR\",\"IMG_FILTER_GRAYSCALE\",\"IMG_FILTER_MEAN_REMOVAL\",\"IMG_FILTER_NEGATE\",\"IMG_FILTER_SELECTIVE_BLUR\",\"IMG_FILTER_SMOOTH\",\"IMG_GD2_COMPRESSED\",\"IMG_GD2_RAW\",\"IMG_GIF\",\"IMG_JPEG\",\"IMG_JPG\",\"IMG_PNG\",\"IMG_WBMP\",\"IMG_XPM\",\"INF\",\"INFO_ALL\",\"INFO_CONFIGURATION\",\"INFO_CREDITS\",\"INFO_ENVIRONMENT\",\"INFO_GENERAL\",\"INFO_LICENSE\",\"INFO_MODULES\",\"INFO_VARIABLES\",\"INI_ALL\",\"INI_PERDIR\",\"INI_SYSTEM\",\"INI_USER\",\"LATT_HASCHILDREN\",\"LATT_HASNOCHILDREN\",\"LATT_MARKED\",\"LATT_NOINFERIORS\",\"LATT_NOSELECT\",\"LATT_REFERRAL\",\"LATT_UNMARKED\",\"LC_ALL\",\"LC_COLLATE\",\"LC_CTYPE\",\"LC_MESSAGES\",\"LC_MONETARY\",\"LC_NUMERIC\",\"LC_TIME\",\"LDAP_DEREF_ALWAYS\",\"LDAP_DEREF_FINDING\",\"LDAP_DEREF_NEVER\",\"LDAP_DEREF_SEARCHING\",\"LDAP_OPT_CLIENT_CONTROLS\",\"LDAP_OPT_DEBUG_LEVEL\",\"LDAP_OPT_DEREF\",\"LDAP_OPT_ERROR_NUMBER\",\"LDAP_OPT_ERROR_STRING\",\"LDAP_OPT_HOST_NAME\",\"LDAP_OPT_MATCHED_DN\",\"LDAP_OPT_PROTOCOL_VERSION\",\"LDAP_OPT_REFERRALS\",\"LDAP_OPT_RESTART\",\"LDAP_OPT_SERVER_CONTROLS\",\"LDAP_OPT_SIZELIMIT\",\"LDAP_OPT_TIMELIMIT\",\"LIBXML_COMPACT\",\"LIBXML_DOTTED_VERSION\",\"LIBXML_DTDATTR\",\"LIBXML_DTDLOAD\",\"LIBXML_DTDVALID\",\"LIBXML_ERR_ERROR\",\"LIBXML_ERR_FATAL\",\"LIBXML_ERR_NONE\",\"LIBXML_ERR_WARNING\",\"LIBXML_NOBLANKS\",\"LIBXML_NOCDATA\",\"LIBXML_NOEMPTYTAG\",\"LIBXML_NOENT\",\"LIBXML_NOERROR\",\"LIBXML_NONET\",\"LIBXML_NOWARNING\",\"LIBXML_NOXMLDECL\",\"LIBXML_NSCLEAN\",\"LIBXML_VERSION\",\"LIBXML_XINCLUDE\",\"LOCK_EX\",\"LOCK_NB\",\"LOCK_SH\",\"LOCK_UN\",\"LOG_ALERT\",\"LOG_AUTH\",\"LOG_AUTHPRIV\",\"LOG_CONS\",\"LOG_CRIT\",\"LOG_CRON\",\"LOG_DAEMON\",\"LOG_DEBUG\",\"LOG_EMERG\",\"LOG_ERR\",\"LOG_INFO\",\"LOG_KERN\",\"LOG_LOCAL0\",\"LOG_LOCAL1\",\"LOG_LOCAL2\",\"LOG_LOCAL3\",\"LOG_LOCAL4\",\"LOG_LOCAL5\",\"LOG_LOCAL6\",\"LOG_LOCAL7\",\"LOG_LPR\",\"LOG_MAIL\",\"LOG_NDELAY\",\"LOG_NEWS\",\"LOG_NOTICE\",\"LOG_NOWAIT\",\"LOG_ODELAY\",\"LOG_PERROR\",\"LOG_PID\",\"LOG_SYSLOG\",\"LOG_USER\",\"LOG_UUCP\",\"LOG_WARNING\",\"M_1_PI\",\"M_2_PI\",\"M_2_SQRTPI\",\"M_ABSTRACT\",\"M_E\",\"M_FINAL\",\"M_LN10\",\"M_LN2\",\"M_LOG10E\",\"M_LOG2E\",\"M_PI\",\"M_PI_2\",\"M_PI_4\",\"M_PRIVATE\",\"M_PROTECTED\",\"M_PUBLIC\",\"M_SQRT1_2\",\"M_SQRT2\",\"M_STATIC\",\"MB_CASE_LOWER\",\"MB_CASE_TITLE\",\"MB_CASE_UPPER\",\"MB_OVERLOAD_MAIL\",\"MB_OVERLOAD_REGEX\",\"MB_OVERLOAD_STRING\",\"MCRYPT_3DES\",\"MCRYPT_ARCFOUR\",\"MCRYPT_ARCFOUR_IV\",\"MCRYPT_BLOWFISH\",\"MCRYPT_BLOWFISH_COMPAT\",\"MCRYPT_CAST_128\",\"MCRYPT_CAST_256\",\"MCRYPT_CRYPT\",\"MCRYPT_DECRYPT\",\"MCRYPT_DES\",\"MCRYPT_DEV_RANDOM\",\"MCRYPT_DEV_URANDOM\",\"MCRYPT_ENCRYPT\",\"MCRYPT_ENIGNA\",\"MCRYPT_GOST\",\"MCRYPT_IDEA\",\"MCRYPT_LOKI97\",\"MCRYPT_MARS\",\"MCRYPT_MODE_CBC\",\"MCRYPT_MODE_CFB\",\"MCRYPT_MODE_ECB\",\"MCRYPT_MODE_NOFB\",\"MCRYPT_MODE_OFB\",\"MCRYPT_MODE_STREAM\",\"MCRYPT_PANAMA\",\"MCRYPT_RAND\",\"MCRYPT_RC2\",\"MCRYPT_RC6\",\"MCRYPT_RIJNDAEL_128\",\"MCRYPT_RIJNDAEL_192\",\"MCRYPT_RIJNDAEL_256\",\"MCRYPT_SAFER128\",\"MCRYPT_SAFER64\",\"MCRYPT_SAFERPLUS\",\"MCRYPT_SERPENT\",\"MCRYPT_SKIPJACK\",\"MCRYPT_THREEWAY\",\"MCRYPT_TRIPLEDES\",\"MCRYPT_TWOFISH\",\"MCRYPT_WAKE\",\"MCRYPT_XTEA\",\"MHASH_ADLER32\",\"MHASH_CRC32\",\"MHASH_CRC32B\",\"MHASH_GOST\",\"MHASH_HAVAL128\",\"MHASH_HAVAL160\",\"MHASH_HAVAL192\",\"MHASH_HAVAL224\",\"MHASH_HAVAL256\",\"MHASH_MD2\",\"MHASH_MD4\",\"MHASH_MD5\",\"MHASH_RIPEMD128\",\"MHASH_RIPEMD160\",\"MHASH_RIPEMD256\",\"MHASH_RIPEMD320\",\"MHASH_SHA1\",\"MHASH_SHA224\",\"MHASH_SHA256\",\"MHASH_SHA384\",\"MHASH_SHA512\",\"MHASH_SNEFRU128\",\"MHASH_SNEFRU256\",\"MHASH_TIGER\",\"MHASH_TIGER128\",\"MHASH_TIGER160\",\"MHASH_WHIRLPOOL\",\"MON_1\",\"MON_10\",\"MON_11\",\"MON_12\",\"MON_2\",\"MON_3\",\"MON_4\",\"MON_5\",\"MON_6\",\"MON_7\",\"MON_8\",\"MON_9\",\"MSG_DONTROUTE\",\"MSG_EXCEPT\",\"MSG_IPC_NOWAIT\",\"MSG_NOERROR\",\"MSG_OOB\",\"MSG_PEEK\",\"MSG_WAITALL\",\"MYSQL_ASSOC\",\"MYSQL_BOTH\",\"MYSQL_CLIENT_COMPRESS\",\"MYSQL_CLIENT_IGNORE_SPACE\",\"MYSQL_CLIENT_INTERACTIVE\",\"MYSQL_CLIENT_SSL\",\"MYSQL_NUM\",\"MYSQLI_ASSOC\",\"MYSQLI_AUTO_INCREMENT_FLAG\",\"MYSQLI_BLOB_FLAG\",\"MYSQLI_BOTH\",\"MYSQLI_CLIENT_COMPRESS\",\"MYSQLI_CLIENT_FOUND_ROWS\",\"MYSQLI_CLIENT_IGNORE_SPACE\",\"MYSQLI_CLIENT_INTERACTIVE\",\"MYSQLI_CLIENT_NO_SCHEMA\",\"MYSQLI_CLIENT_SSL\",\"MYSQLI_GROUP_FLAG\",\"MYSQLI_INIT_COMMAND\",\"MYSQLI_MULTIPLE_KEY_FLAG\",\"MYSQLI_NO_DATA\",\"MYSQLI_NOT_NULL_FLAG\",\"MYSQLI_NUM\",\"MYSQLI_NUM_FLAG\",\"MYSQLI_OPT_CONNECT_TIMEOUT\",\"MYSQLI_OPT_LOCAL_INFILE\",\"MYSQLI_PART_KEY_FLAG\",\"MYSQLI_PRI_KEY_FLAG\",\"MYSQLI_READ_DEFAULT_FILE\",\"MYSQLI_READ_DEFAULT_GROUP\",\"MYSQLI_REPORT_ALL\",\"MYSQLI_REPORT_ERROR\",\"MYSQLI_REPORT_INDEX\",\"MYSQLI_REPORT_OFF\",\"MYSQLI_REPORT_STRICT\",\"MYSQLI_RPL_ADMIN\",\"MYSQLI_RPL_MASTER\",\"MYSQLI_RPL_SLAVE\",\"MYSQLI_SET_FLAG\",\"MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH\",\"MYSQLI_STORE_RESULT\",\"MYSQLI_TIMESTAMP_FLAG\",\"MYSQLI_TYPE_BLOB\",\"MYSQLI_TYPE_CHAR\",\"MYSQLI_TYPE_DATE\",\"MYSQLI_TYPE_DATETIME\",\"MYSQLI_TYPE_DECIMAL\",\"MYSQLI_TYPE_DOUBLE\",\"MYSQLI_TYPE_ENUM\",\"MYSQLI_TYPE_FLOAT\",\"MYSQLI_TYPE_GEOMETRY\",\"MYSQLI_TYPE_INT24\",\"MYSQLI_TYPE_INTERVAL\",\"MYSQLI_TYPE_LONG\",\"MYSQLI_TYPE_LONG_BLOB\",\"MYSQLI_TYPE_LONGLONG\",\"MYSQLI_TYPE_MEDIUM_BLOB\",\"MYSQLI_TYPE_NEWDATE\",\"MYSQLI_TYPE_NULL\",\"MYSQLI_TYPE_SET\",\"MYSQLI_TYPE_SHORT\",\"MYSQLI_TYPE_STRING\",\"MYSQLI_TYPE_TIME\",\"MYSQLI_TYPE_TIMESTAMP\",\"MYSQLI_TYPE_TINY\",\"MYSQLI_TYPE_TINY_BLOB\",\"MYSQLI_TYPE_VAR_STRING\",\"MYSQLI_TYPE_YEAR\",\"MYSQLI_UNIQUE_KEY_FLAG\",\"MYSQLI_UNSIGNED_FLAG\",\"MYSQLI_USE_RESULT\",\"MYSQLI_ZEROFILL_FLAG\",\"NAN\",\"NCURSES_A_ALTCHARSET\",\"NCURSES_A_BLINK\",\"NCURSES_A_BOLD\",\"NCURSES_A_CHARTEXT\",\"NCURSES_A_DIM\",\"NCURSES_A_INVIS\",\"NCURSES_A_NORMAL\",\"NCURSES_A_PROTECT\",\"NCURSES_A_REVERSE\",\"NCURSES_A_STANDOUT\",\"NCURSES_A_UNDERLINE\",\"NCURSES_ALL_MOUSE_EVENTS\",\"NCURSES_BUTTON1_CLICKED\",\"NCURSES_BUTTON1_DOUBLE_CLICKED\",\"NCURSES_BUTTON1_PRESSED\",\"NCURSES_BUTTON1_RELEASED\",\"NCURSES_BUTTON1_TRIPLE_CLICKED\",\"NCURSES_BUTTON2_CLICKED\",\"NCURSES_BUTTON2_DOUBLE_CLICKED\",\"NCURSES_BUTTON2_PRESSED\",\"NCURSES_BUTTON2_RELEASED\",\"NCURSES_BUTTON2_TRIPLE_CLICKED\",\"NCURSES_BUTTON3_CLICKED\",\"NCURSES_BUTTON3_DOUBLE_CLICKED\",\"NCURSES_BUTTON3_PRESSED\",\"NCURSES_BUTTON3_RELEASED\",\"NCURSES_BUTTON3_TRIPLE_CLICKED\",\"NCURSES_BUTTON4_CLICKED\",\"NCURSES_BUTTON4_DOUBLE_CLICKED\",\"NCURSES_BUTTON4_PRESSED\",\"NCURSES_BUTTON4_RELEASED\",\"NCURSES_BUTTON4_TRIPLE_CLICKED\",\"NCURSES_BUTTON_ALT\",\"NCURSES_BUTTON_CTRL\",\"NCURSES_BUTTON_SHIFT\",\"NCURSES_COLOR_BLACK\",\"NCURSES_COLOR_BLUE\",\"NCURSES_COLOR_CYAN\",\"NCURSES_COLOR_GREEN\",\"NCURSES_COLOR_MAGENTA\",\"NCURSES_COLOR_RED\",\"NCURSES_COLOR_WHITE\",\"NCURSES_COLOR_YELLOW\",\"NCURSES_KEY_A1\",\"NCURSES_KEY_A3\",\"NCURSES_KEY_B2\",\"NCURSES_KEY_BACKSPACE\",\"NCURSES_KEY_BEG\",\"NCURSES_KEY_BTAB\",\"NCURSES_KEY_C1\",\"NCURSES_KEY_C3\",\"NCURSES_KEY_CANCEL\",\"NCURSES_KEY_CATAB\",\"NCURSES_KEY_CLEAR\",\"NCURSES_KEY_CLOSE\",\"NCURSES_KEY_COMMAND\",\"NCURSES_KEY_COPY\",\"NCURSES_KEY_CREATE\",\"NCURSES_KEY_CTAB\",\"NCURSES_KEY_DC\",\"NCURSES_KEY_DL\",\"NCURSES_KEY_DOWN\",\"NCURSES_KEY_EIC\",\"NCURSES_KEY_END\",\"NCURSES_KEY_ENTER\",\"NCURSES_KEY_EOL\",\"NCURSES_KEY_EOS\",\"NCURSES_KEY_EXIT\",\"NCURSES_KEY_F0\",\"NCURSES_KEY_F1\",\"NCURSES_KEY_F10\",\"NCURSES_KEY_F11\",\"NCURSES_KEY_F12\",\"NCURSES_KEY_F2\",\"NCURSES_KEY_F3\",\"NCURSES_KEY_F4\",\"NCURSES_KEY_F5\",\"NCURSES_KEY_F6\",\"NCURSES_KEY_F7\",\"NCURSES_KEY_F8\",\"NCURSES_KEY_F9\",\"NCURSES_KEY_FIND\",\"NCURSES_KEY_HELP\",\"NCURSES_KEY_IC\",\"NCURSES_KEY_IL\",\"NCURSES_KEY_LEFT\",\"NCURSES_KEY_LL\",\"NCURSES_KEY_MARK\",\"NCURSES_KEY_MESSAGE\",\"NCURSES_KEY_MOUSE\",\"NCURSES_KEY_MOVE\",\"NCURSES_KEY_NEXT\",\"NCURSES_KEY_NPAGE\",\"NCURSES_KEY_OPEN\",\"NCURSES_KEY_OPTIONS\",\"NCURSES_KEY_PPAGE\",\"NCURSES_KEY_PREVIOUS\",\"NCURSES_KEY_PRINT\",\"NCURSES_KEY_REDO\",\"NCURSES_KEY_REFERENCE\",\"NCURSES_KEY_REFRESH\",\"NCURSES_KEY_REPLACE\",\"NCURSES_KEY_RESET\",\"NCURSES_KEY_RESIZE\",\"NCURSES_KEY_RESTART\",\"NCURSES_KEY_RESUME\",\"NCURSES_KEY_RIGHT\",\"NCURSES_KEY_SAVE\",\"NCURSES_KEY_SBEG\",\"NCURSES_KEY_SCANCEL\",\"NCURSES_KEY_SCOMMAND\",\"NCURSES_KEY_SCOPY\",\"NCURSES_KEY_SCREATE\",\"NCURSES_KEY_SDC\",\"NCURSES_KEY_SDL\",\"NCURSES_KEY_SELECT\",\"NCURSES_KEY_SEND\",\"NCURSES_KEY_SEOL\",\"NCURSES_KEY_SEXIT\",\"NCURSES_KEY_SF\",\"NCURSES_KEY_SFIND\",\"NCURSES_KEY_SHELP\",\"NCURSES_KEY_SHOME\",\"NCURSES_KEY_SIC\",\"NCURSES_KEY_SLEFT\",\"NCURSES_KEY_SMESSAGE\",\"NCURSES_KEY_SMOVE\",\"NCURSES_KEY_SNEXT\",\"NCURSES_KEY_SOPTIONS\",\"NCURSES_KEY_SPREVIOUS\",\"NCURSES_KEY_SPRINT\",\"NCURSES_KEY_SR\",\"NCURSES_KEY_SREDO\",\"NCURSES_KEY_SREPLACE\",\"NCURSES_KEY_SRESET\",\"NCURSES_KEY_SRIGHT\",\"NCURSES_KEY_SRSUME\",\"NCURSES_KEY_SSAVE\",\"NCURSES_KEY_SSUSPEND\",\"NCURSES_KEY_STAB\",\"NCURSES_KEY_SUNDO\",\"NCURSES_KEY_SUSPEND\",\"NCURSES_KEY_UNDO\",\"NCURSES_KEY_UP\",\"NCURSES_REPORT_MOUSE_POSITION\",\"NIL\",\"NOEXPR\",\"null\",\"O_APPEND\",\"O_ASYNC\",\"O_CREAT\",\"O_EXCL\",\"O_NDELAY\",\"O_NOCTTY\",\"O_NONBLOCK\",\"O_RDONLY\",\"O_RDWR\",\"O_SYNC\",\"O_TRUNC\",\"O_WRONLY\",\"OCI_ASSOC\",\"OCI_B_BFILE\",\"OCI_B_BIN\",\"OCI_B_BLOB\",\"OCI_B_CFILEE\",\"OCI_B_CLOB\",\"OCI_B_CURSOR\",\"OCI_B_INT\",\"OCI_B_NTY\",\"OCI_B_NUM\",\"OCI_B_ROWID\",\"OCI_BOTH\",\"OCI_COMMIT_ON_SUCCESS\",\"OCI_CRED_EXT\",\"OCI_DEFAULT\",\"OCI_DESCRIBE_ONLY\",\"OCI_DTYPE_FILE\",\"OCI_DTYPE_LOB\",\"OCI_DTYPE_ROWID\",\"OCI_FETCHSTATEMENT_BY_COLUMN\",\"OCI_FETCHSTATEMENT_BY_ROW\",\"OCI_LOB_BUFFER_FREE\",\"OCI_NO_AUTO_COMMIT\",\"OCI_NUM\",\"OCI_RETURN_LOBS\",\"OCI_RETURN_NULLS\",\"OCI_SEEK_CUR\",\"OCI_SEEK_END\",\"OCI_SEEK_SET\",\"OCI_SYSDBA\",\"OCI_SYSOPER\",\"OCI_TEMP_BLOB\",\"OCI_TEMP_CLOB\",\"ODBC_BINMODE_CONVERT\",\"ODBC_BINMODE_PASSTHRU\",\"ODBC_BINMODE_RETURN\",\"ODBC_TYPE\",\"OP_ANONYMOUS\",\"OP_DEBUG\",\"OP_EXPUNGE\",\"OP_HALFOPEN\",\"OP_PROTOTYPE\",\"OP_READONLY\",\"OP_SECURE\",\"OP_SHORTCACHE\",\"OP_SILENT\",\"OPENSSL_ALGO_MD2\",\"OPENSSL_ALGO_MD4\",\"OPENSSL_ALGO_MD5\",\"OPENSSL_ALGO_SHA1\",\"OPENSSL_CIPHER_3DES\",\"OPENSSL_CIPHER_DES\",\"OPENSSL_CIPHER_RC2_128\",\"OPENSSL_CIPHER_RC2_40\",\"OPENSSL_CIPHER_RC2_64\",\"OPENSSL_KEYTYPE_DH\",\"OPENSSL_KEYTYPE_DSA\",\"OPENSSL_KEYTYPE_RSA\",\"OPENSSL_NO_PADDING\",\"OPENSSL_PKCS1_OAEP_PADDING\",\"OPENSSL_PKCS1_PADDING\",\"OPENSSL_SSLV23_PADDING\",\"P_PRIVATE\",\"P_PROTECTED\",\"P_PUBLIC\",\"P_STATIC\",\"PATH_SEPARATOR\",\"PATHINFO_BASENAME\",\"PATHINFO_DIRNAME\",\"PATHINFO_EXTENSION\",\"PATHINFO_FILENAME\",\"PEAR_EXTENSION_DIR\",\"PEAR_INSTALL_DIR\",\"PGSQL_ASSOC\",\"PGSQL_BAD_RESPONSE\",\"PGSQL_BOTH\",\"PGSQL_COMMAND_OK\",\"PGSQL_CONNECT_FORCE_NEW\",\"PGSQL_CONNECTION_BAD\",\"PGSQL_CONNECTION_OK\",\"PGSQL_CONV_FORCE_NULL\",\"PGSQL_CONV_IGNORE_DEFAULT\",\"PGSQL_CONV_IGNORE_NOT_NULL\",\"PGSQL_COPY_IN\",\"PGSQL_COPY_OUT\",\"PGSQL_DML_ASYNC\",\"PGSQL_DML_EXEC\",\"PGSQL_DML_NO_CONV\",\"PGSQL_DML_STRING\",\"PGSQL_EMPTY_QUERY\",\"PGSQL_FATAL_ERROR\",\"PGSQL_NONFATAL_ERROR\",\"PGSQL_NUM\",\"PGSQL_SEEK_CUR\",\"PGSQL_SEEK_END\",\"PGSQL_SEEK_SET\",\"PGSQL_STATUS_LONG\",\"PGSQL_STATUS_STRING\",\"PGSQL_TUPLES_OK\",\"PHP_BINARY_READ\",\"PHP_BINDIR\",\"PHP_CONFIG_FILE_PATH\",\"PHP_CONFIG_FILE_SCAN_DIR\",\"PHP_DATADIR\",\"PHP_EOL\",\"PHP_EXTENSION_DIR\",\"PHP_LIBDIR\",\"PHP_LOCALSTATEDIR\",\"PHP_NORMAL_READ\",\"PHP_OS\",\"PHP_OUTPUT_HANDLER_CONT\",\"PHP_OUTPUT_HANDLER_END\",\"PHP_OUTPUT_HANDLER_START\",\"PHP_PREFIX\",\"PHP_SAPI\",\"PHP_SHLIB_SUFFIX\",\"PHP_SYSCONFDIR\",\"PHP_URL_FRAGMENT\",\"PHP_URL_HOST\",\"PHP_URL_PASS\",\"PHP_URL_PATH\",\"PHP_URL_PORT\",\"PHP_URL_QUERY\",\"PHP_URL_SCHEME\",\"PHP_URL_USER\",\"PHP_VERSION\",\"PKCS7_BINARY\",\"PKCS7_DETACHED\",\"PKCS7_NOATTR\",\"PKCS7_NOCERTS\",\"PKCS7_NOCHAIN\",\"PKCS7_NOINTERN\",\"PKCS7_NOSIGS\",\"PKCS7_NOVERIFY\",\"PKCS7_TEXT\",\"PM_STR\",\"PREG_GREP_INVERT\",\"PREG_OFFSET_CAPTURE\",\"PREG_PATTERN_ORDER\",\"PREG_SET_ORDER\",\"PREG_SPLIT_DELIM_CAPTURE\",\"PREG_SPLIT_NO_EMPTY\",\"PREG_SPLIT_OFFSET_CAPTURE\",\"PRIO_PGRP\",\"PRIO_PROCESS\",\"PRIO_USER\",\"PSFS_ERR_FATAL\",\"PSFS_FEED_ME\",\"PSFS_FLAG_FLUSH_CLOSE\",\"PSFS_FLAG_FLUSH_INC\",\"PSFS_FLAG_NORMAL\",\"PSFS_PASS_ON\",\"RADIXCHAR\",\"RIT_CHILD_FIRST\",\"RIT_LEAVES_ONLY\",\"RIT_SELF_FIRST\",\"S_IRGRP\",\"S_IROTH\",\"S_IRUSR\",\"S_IRWXG\",\"S_IRWXO\",\"S_IRWXU\",\"S_IWGRP\",\"S_IWOTH\",\"S_IWUSR\",\"S_IXGRP\",\"S_IXOTH\",\"S_IXUSR\",\"SA_ALL\",\"SA_MESSAGES\",\"SA_RECENT\",\"SA_UIDNEXT\",\"SA_UIDVALIDITY\",\"SA_UNSEEN\",\"SE_FREE\",\"SE_NOPREFETCH\",\"SE_UID\",\"SEEK_CUR\",\"SEEK_END\",\"SEEK_SET\",\"SIG_DFL\",\"SIG_ERR\",\"SIG_IGN\",\"SIGABRT\",\"SIGALRM\",\"SIGBABY\",\"SIGBUS\",\"SIGCHLD\",\"SIGCLD\",\"SIGCONT\",\"SIGFPE\",\"SIGHUP\",\"SIGILL\",\"SIGINT\",\"SIGIO\",\"SIGIOT\",\"SIGKILL\",\"SIGPIPE\",\"SIGPOLL\",\"SIGPROF\",\"SIGPWR\",\"SIGQUIT\",\"SIGSEGV\",\"SIGSTKFLT\",\"SIGSTOP\",\"SIGSYS\",\"SIGTERM\",\"SIGTRAP\",\"SIGTSTP\",\"SIGTTIN\",\"SIGTTOU\",\"SIGURG\",\"SIGUSR1\",\"SIGUSR2\",\"SIGVTALRM\",\"SIGWINCH\",\"SIGXCPU\",\"SIGXFSZ\",\"SNMP_BIT_STR\",\"SNMP_COUNTER\",\"SNMP_COUNTER64\",\"SNMP_INTEGER\",\"SNMP_IPADDRESS\",\"SNMP_NULL\",\"SNMP_OBJECT_ID\",\"SNMP_OCTET_STR\",\"SNMP_OPAQUE\",\"SNMP_TIMETICKS\",\"SNMP_UINTEGER\",\"SNMP_UNSIGNED\",\"SNMP_VALUE_LIBRARY\",\"SNMP_VALUE_OBJECT\",\"SNMP_VALUE_PLAIN\",\"SO_BROADCAST\",\"SO_DEBUG\",\"SO_DONTROUTE\",\"SO_ERROR\",\"SO_FREE\",\"SO_KEEPALIVE\",\"SO_LINGER\",\"SO_NOSERVER\",\"SO_OOBINLINE\",\"SO_RCVBUF\",\"SO_RCVLOWAT\",\"SO_RCVTIMEO\",\"SO_REUSEADDR\",\"SO_SNDBUF\",\"SO_SNDLOWAT\",\"SO_SNDTIMEO\",\"SO_TYPE\",\"SOAP_1_1\",\"SOAP_1_2\",\"SOAP_ACTOR_NEXT\",\"SOAP_ACTOR_NONE\",\"SOAP_ACTOR_UNLIMATERECEIVER\",\"SOAP_COMPRESSION_ACCEPT\",\"SOAP_COMPRESSION_DEFLATE\",\"SOAP_COMPRESSION_GZIP\",\"SOAP_DOCUMENT\",\"SOAP_ENC_ARRAY\",\"SOAP_ENC_OBJECT\",\"SOAP_ENCODED\",\"SOAP_FUNCTIONS_ALL\",\"SOAP_LITERAL\",\"SOAP_PERSISTENCE_REQUEST\",\"SOAP_PERSISTENCE_SESSION\",\"SOAP_RPC\",\"SOCK_DGRAM\",\"SOCK_RAW\",\"SOCK_RDM\",\"SOCK_SEQPACKET\",\"SOCK_STREAM\",\"SOCKET_E2BIG\",\"SOCKET_EACCES\",\"SOCKET_EADDRINUSE\",\"SOCKET_EADDRNOTAVAIL\",\"SOCKET_EADV\",\"SOCKET_EAFNOSUPPORT\",\"SOCKET_EAGAIN\",\"SOCKET_EALREADY\",\"SOCKET_EBADE\",\"SOCKET_EBADF\",\"SOCKET_EBADFD\",\"SOCKET_EBADMSG\",\"SOCKET_EBADR\",\"SOCKET_EBADRQC\",\"SOCKET_EBADSLT\",\"SOCKET_EBUSY\",\"SOCKET_ECHRNG\",\"SOCKET_ECOMM\",\"SOCKET_ECONNABORTED\",\"SOCKET_ECONNREFUSED\",\"SOCKET_ECONNRESET\",\"SOCKET_EDESTADDRREQ\",\"SOCKET_EDQUOT\",\"SOCKET_EEXIST\",\"SOCKET_EFAULT\",\"SOCKET_EHOSTDOWN\",\"SOCKET_EHOSTUNREACH\",\"SOCKET_EIDRM\",\"SOCKET_EINPROGRESS\",\"SOCKET_EINTR\",\"SOCKET_EINVAL\",\"SOCKET_EIO\",\"SOCKET_EISCONN\",\"SOCKET_EISDIR\",\"SOCKET_EISNAM\",\"SOCKET_EL2HLT\",\"SOCKET_EL2NSYNC\",\"SOCKET_EL3HLT\",\"SOCKET_EL3RST\",\"SOCKET_ELNRNG\",\"SOCKET_ELOOP\",\"SOCKET_EMEDIUMTYPE\",\"SOCKET_EMFILE\",\"SOCKET_EMLINK\",\"SOCKET_EMSGSIZE\",\"SOCKET_EMULTIHOP\",\"SOCKET_ENAMETOOLONG\",\"SOCKET_ENETDOWN\",\"SOCKET_ENETRESET\",\"SOCKET_ENETUNREACH\",\"SOCKET_ENFILE\",\"SOCKET_ENOANO\",\"SOCKET_ENOBUFS\",\"SOCKET_ENOCSI\",\"SOCKET_ENODATA\",\"SOCKET_ENODEV\",\"SOCKET_ENOENT\",\"SOCKET_ENOLCK\",\"SOCKET_ENOLINK\",\"SOCKET_ENOMEDIUM\",\"SOCKET_ENOMEM\",\"SOCKET_ENOMSG\",\"SOCKET_ENONET\",\"SOCKET_ENOPROTOOPT\",\"SOCKET_ENOSPC\",\"SOCKET_ENOSR\",\"SOCKET_ENOSTR\",\"SOCKET_ENOSYS\",\"SOCKET_ENOTBLK\",\"SOCKET_ENOTCONN\",\"SOCKET_ENOTDIR\",\"SOCKET_ENOTEMPTY\",\"SOCKET_ENOTSOCK\",\"SOCKET_ENOTTY\",\"SOCKET_ENOTUNIQ\",\"SOCKET_ENXIO\",\"SOCKET_EOPNOTSUPP\",\"SOCKET_EPERM\",\"SOCKET_EPFNOSUPPORT\",\"SOCKET_EPIPE\",\"SOCKET_EPROTO\",\"SOCKET_EPROTONOSUPPORT\",\"SOCKET_EPROTOTYPE\",\"SOCKET_EREMCHG\",\"SOCKET_EREMOTE\",\"SOCKET_EREMOTEIO\",\"SOCKET_ERESTART\",\"SOCKET_EROFS\",\"SOCKET_ESHUTDOWN\",\"SOCKET_ESOCKTNOSUPPORT\",\"SOCKET_ESPIPE\",\"SOCKET_ESRMNT\",\"SOCKET_ESTRPIPE\",\"SOCKET_ETIME\",\"SOCKET_ETIMEDOUT\",\"SOCKET_ETOOMANYREFS\",\"SOCKET_EUNATCH\",\"SOCKET_EUSERS\",\"SOCKET_EWOULDBLOCK\",\"SOCKET_EXDEV\",\"SOCKET_EXFULL\",\"SOL_SOCKET\",\"SOL_TCP\",\"SOL_UDP\",\"SOMAXCONN\",\"SORT_ASC\",\"SORT_DESC\",\"SORT_FLAG_CASE\",\"SORT_LOCALE_STRING\",\"SORT_NATURAL\",\"SORT_NUMERIC\",\"SORT_REGULAR\",\"SORT_STRING\",\"SORTARRIVAL\",\"SORTCC\",\"SORTDATE\",\"SORTFROM\",\"SORTSIZE\",\"SORTSUBJECT\",\"SORTTO\",\"SQL_BIGINT\",\"SQL_BINARY\",\"SQL_BIT\",\"SQL_CHAR\",\"SQL_CONCUR_LOCK\",\"SQL_CONCUR_READ_ONLY\",\"SQL_CONCUR_ROWVER\",\"SQL_CONCUR_VALUES\",\"SQL_CONCURRENCY\",\"SQL_CUR_USE_DRIVER\",\"SQL_CUR_USE_IF_NEEDED\",\"SQL_CUR_USE_ODBC\",\"SQL_CURSOR_DYNAMIC\",\"SQL_CURSOR_FORWARD_ONLY\",\"SQL_CURSOR_KEYSET_DRIVEN\",\"SQL_CURSOR_STATIC\",\"SQL_CURSOR_TYPE\",\"SQL_DATE\",\"SQL_DECIMAL\",\"SQL_DOUBLE\",\"SQL_FETCH_FIRST\",\"SQL_FETCH_NEXT\",\"SQL_FLOAT\",\"SQL_INTEGER\",\"SQL_KEYSET_SIZE\",\"SQL_LONGVARBINARY\",\"SQL_LONGVARCHAR\",\"SQL_NUMERIC\",\"SQL_ODBC_CURSORS\",\"SQL_REAL\",\"SQL_SMALLINT\",\"SQL_TIME\",\"SQL_TIMESTAMP\",\"SQL_TINYINT\",\"SQL_VARBINARY\",\"SQL_VARCHAR\",\"SQLITE3_ASSOC\",\"SQLITE3_BLOB\",\"SQLITE3_BOTH\",\"SQLITE3_FLOAT\",\"SQLITE3_INTEGER\",\"SQLITE3_NULL\",\"SQLITE3_NUM\",\"SQLITE3_OPEN_CREATE\",\"SQLITE3_OPEN_READONLY\",\"SQLITE3_OPEN_READWRITE\",\"SQLITE3_TEXT\",\"SQLITE_ABORT\",\"SQLITE_ASSOC\",\"SQLITE_AUTH\",\"SQLITE_BOTH\",\"SQLITE_BUSY\",\"SQLITE_CANTOPEN\",\"SQLITE_CONSTRAINT\",\"SQLITE_CORRUPT\",\"SQLITE_DONE\",\"SQLITE_EMPTY\",\"SQLITE_ERROR\",\"SQLITE_FORMAT\",\"SQLITE_FULL\",\"SQLITE_INTERNAL\",\"SQLITE_INTERRUPT\",\"SQLITE_IOERR\",\"SQLITE_LOCKED\",\"SQLITE_MISMATCH\",\"SQLITE_MISUSE\",\"SQLITE_NOLFS\",\"SQLITE_NOMEM\",\"SQLITE_NOTFOUND\",\"SQLITE_NUM\",\"SQLITE_OK\",\"SQLITE_PERM\",\"SQLITE_PROTOCOL\",\"SQLITE_READONLY\",\"SQLITE_ROW\",\"SQLITE_SCHEMA\",\"SQLITE_TOOBIG\",\"SQLT_AFC\",\"SQLT_AVC\",\"SQLT_BDOUBLE\",\"SQLT_BFILEE\",\"SQLT_BFLOAT\",\"SQLT_BIN\",\"SQLT_BLOB\",\"SQLT_CFILEE\",\"SQLT_CHR\",\"SQLT_CLOB\",\"SQLT_FLT\",\"SQLT_INT\",\"SQLT_LBI\",\"SQLT_LNG\",\"SQLT_LVC\",\"SQLT_NTY\",\"SQLT_NUM\",\"SQLT_ODT\",\"SQLT_RDD\",\"SQLT_RSET\",\"SQLT_STR\",\"SQLT_UIN\",\"SQLT_VCS\",\"ST_SET\",\"ST_SILENT\",\"ST_UID\",\"STDERR\",\"STDIN\",\"STDOUT\",\"STR_PAD_BOTH\",\"STR_PAD_LEFT\",\"STR_PAD_RIGHT\",\"STREAM_CLIENT_ASYNC_CONNECT\",\"STREAM_CLIENT_CONNECT\",\"STREAM_CLIENT_PERSISTENT\",\"STREAM_ENFORCE_SAFE_MODE\",\"STREAM_FILTER_ALL\",\"STREAM_FILTER_READ\",\"STREAM_FILTER_WRITE\",\"STREAM_IGNORE_URL\",\"STREAM_MKDIR_RECURSIVE\",\"STREAM_MUST_SEEK\",\"STREAM_NOTIFY_AUTH_REQUIRED\",\"STREAM_NOTIFY_AUTH_RESULT\",\"STREAM_NOTIFY_COMPLETED\",\"STREAM_NOTIFY_CONNECT\",\"STREAM_NOTIFY_FAILURE\",\"STREAM_NOTIFY_FILE_SIZE_IS\",\"STREAM_NOTIFY_MIME_TYPE_IS\",\"STREAM_NOTIFY_PROGRESS\",\"STREAM_NOTIFY_REDIRECTED\",\"STREAM_NOTIFY_RESOLVE\",\"STREAM_NOTIFY_SEVERITY_ERR\",\"STREAM_NOTIFY_SEVERITY_INFO\",\"STREAM_NOTIFY_SEVERITY_WARN\",\"STREAM_OOB\",\"STREAM_PEEK\",\"STREAM_REPORT_ERRORS\",\"STREAM_SERVER_BIND\",\"STREAM_SERVER_LISTEN\",\"STREAM_URL_STAT_LINK\",\"STREAM_URL_STAT_QUIET\",\"STREAM_USE_PATH\",\"SUNFUNCS_RET_DOUBLE\",\"SUNFUNCS_RET_STRING\",\"SUNFUNCS_RET_TIMESTAMP\",\"T_ABSTRACT\",\"T_AND_EQUAL\",\"T_ARRAY\",\"T_ARRAY_CAST\",\"T_AS\",\"T_BAD_CHARACTER\",\"T_BOOL_CAST\",\"T_BOOLEAN_AND\",\"T_BOOLEAN_OR\",\"T_BREAK\",\"T_CASE\",\"T_CATCH\",\"T_CHARACTER\",\"T_CLASS\",\"T_CLASS_C\",\"T_CLONE\",\"T_CLOSE_TAG\",\"T_COMMENT\",\"T_CONCAT_EQUAL\",\"T_CONST\",\"T_CONSTANT_ENCAPSED_STRING\",\"T_CONTINUE\",\"T_CURLY_OPEN\",\"T_DEC\",\"T_DECLARE\",\"T_DEFAULT\",\"T_DIV_EQUAL\",\"T_DNUMBER\",\"T_DO\",\"T_DOC_COMMENT\",\"T_DOLLAR_OPEN_CURLY_BRACES\",\"T_DOUBLE_ARROW\",\"T_DOUBLE_CAST\",\"T_DOUBLE_COLON\",\"T_ECHO\",\"T_ELSE\",\"T_ELSEIF\",\"T_EMPTY\",\"T_ENCAPSED_AND_WHITESPACE\",\"T_END_HEREDOC\",\"T_ENDDECLARE\",\"T_ENDFOR\",\"T_ENDFOREACH\",\"T_ENDIF\",\"T_ENDSWITCH\",\"T_ENDWHILE\",\"T_EVAL\",\"T_EXIT\",\"T_EXTENDS\",\"T_FILE\",\"T_FINAL\",\"T_FMT\",\"T_FMT_AMPM\",\"T_FOR\",\"T_FOREACH\",\"T_FUNC_C\",\"T_FUNCTION\",\"T_GLOBAL\",\"T_IF\",\"T_IMPLEMENTS\",\"T_INC\",\"T_INCLUDE\",\"T_INCLUDE_ONCE\",\"T_INLINE_HTML\",\"T_INSTANCEOF\",\"T_INT_CAST\",\"T_INTERFACE\",\"T_IS_EQUAL\",\"T_IS_GREATER_OR_EQUAL\",\"T_IS_IDENTICAL\",\"T_IS_NOT_EQUAL\",\"T_IS_NOT_IDENTICAL\",\"T_IS_SMALLER_OR_EQUAL\",\"T_ISSET\",\"T_LINE\",\"T_LIST\",\"T_LNUMBER\",\"T_LOGICAL_AND\",\"T_LOGICAL_OR\",\"T_LOGICAL_XOR\",\"T_METHOD_C\",\"T_MINUS_EQUAL\",\"T_MOD_EQUAL\",\"T_MUL_EQUAL\",\"T_NEW\",\"T_NUM_STRING\",\"T_OBJECT_CAST\",\"T_OBJECT_OPERATOR\",\"T_OPEN_TAG\",\"T_OPEN_TAG_WITH_ECHO\",\"T_OR_EQUAL\",\"T_PAAMAYIM_NEKUDOTAYIM\",\"T_PLUS_EQUAL\",\"T_PRINT\",\"T_PRIVATE\",\"T_PROTECTED\",\"T_PUBLIC\",\"T_REQUIRE\",\"T_REQUIRE_ONCE\",\"T_RETURN\",\"T_SL\",\"T_SL_EQUAL\",\"T_SR\",\"T_SR_EQUAL\",\"T_START_HEREDOC\",\"T_STATIC\",\"T_STRING\",\"T_STRING_CAST\",\"T_STRING_VARNAME\",\"T_SWITCH\",\"T_THROW\",\"T_TRY\",\"T_UNSET\",\"T_UNSET_CAST\",\"T_USE\",\"T_VAR\",\"T_VARIABLE\",\"T_WHILE\",\"T_WHITESPACE\",\"T_XOR_EQUAL\",\"THOUSEP\",\"true\",\"TYPEAPPLICATION\",\"TYPEAUDIO\",\"TYPEIMAGE\",\"TYPEMESSAGE\",\"TYPEMODEL\",\"TYPEMULTIPART\",\"TYPEOTHER\",\"TYPETEXT\",\"TYPEVIDEO\",\"UNKNOWN_TYPE\",\"UPLOAD_ERR_CANT_WRITE\",\"UPLOAD_ERR_FORM_SIZE\",\"UPLOAD_ERR_INI_SIZE\",\"UPLOAD_ERR_NO_FILE\",\"UPLOAD_ERR_NO_TMP_DIR\",\"UPLOAD_ERR_OK\",\"UPLOAD_ERR_PARTIAL\",\"WNOHANG\",\"WUNTRACED\",\"X509_PURPOSE_ANY\",\"X509_PURPOSE_CRL_SIGN\",\"X509_PURPOSE_NS_SSL_SERVER\",\"X509_PURPOSE_SMIME_ENCRYPT\",\"X509_PURPOSE_SMIME_SIGN\",\"X509_PURPOSE_SSL_CLIENT\",\"X509_PURPOSE_SSL_SERVER\",\"XML_ATTRIBUTE_CDATA\",\"XML_ATTRIBUTE_DECL_NODE\",\"XML_ATTRIBUTE_ENTITY\",\"XML_ATTRIBUTE_ENUMERATION\",\"XML_ATTRIBUTE_ID\",\"XML_ATTRIBUTE_IDREF\",\"XML_ATTRIBUTE_IDREFS\",\"XML_ATTRIBUTE_NMTOKEN\",\"XML_ATTRIBUTE_NMTOKENS\",\"XML_ATTRIBUTE_NODE\",\"XML_ATTRIBUTE_NOTATION\",\"XML_CDATA_SECTION_NODE\",\"XML_COMMENT_NODE\",\"XML_DOCUMENT_FRAG_NODE\",\"XML_DOCUMENT_NODE\",\"XML_DOCUMENT_TYPE_NODE\",\"XML_DTD_NODE\",\"XML_ELEMENT_DECL_NODE\",\"XML_ELEMENT_NODE\",\"XML_ENTITY_DECL_NODE\",\"XML_ENTITY_NODE\",\"XML_ENTITY_REF_NODE\",\"XML_ERROR_ASYNC_ENTITY\",\"XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF\",\"XML_ERROR_BAD_CHAR_REF\",\"XML_ERROR_BINARY_ENTITY_REF\",\"XML_ERROR_DUPLICATE_ATTRIBUTE\",\"XML_ERROR_EXTERNAL_ENTITY_HANDLING\",\"XML_ERROR_INCORRECT_ENCODING\",\"XML_ERROR_INVALID_TOKEN\",\"XML_ERROR_JUNK_AFTER_DOC_ELEMENT\",\"XML_ERROR_MISPLACED_XML_PI\",\"XML_ERROR_NO_ELEMENTS\",\"XML_ERROR_NO_MEMORY\",\"XML_ERROR_NONE\",\"XML_ERROR_PARAM_ENTITY_REF\",\"XML_ERROR_PARTIAL_CHAR\",\"XML_ERROR_RECURSIVE_ENTITY_REF\",\"XML_ERROR_SYNTAX\",\"XML_ERROR_TAG_MISMATCH\",\"XML_ERROR_UNCLOSED_CDATA_SECTION\",\"XML_ERROR_UNCLOSED_TOKEN\",\"XML_ERROR_UNDEFINED_ENTITY\",\"XML_ERROR_UNKNOWN_ENCODING\",\"XML_HTML_DOCUMENT_NODE\",\"XML_LOCAL_NAMESPACE\",\"XML_NAMESPACE_DECL_NODE\",\"XML_NOTATION_NODE\",\"XML_OPTION_CASE_FOLDING\",\"XML_OPTION_SKIP_TAGSTART\",\"XML_OPTION_SKIP_WHITE\",\"XML_OPTION_TARGET_ENCODING\",\"XML_PI_NODE\",\"XML_SAX_IMPL\",\"XML_TEXT_NODE\",\"XSD_1999_NAMESPACE\",\"XSD_1999_TIMEINSTANT\",\"XSD_ANYTYPE\",\"XSD_ANYURI\",\"XSD_BASE64BINARY\",\"XSD_BOOLEAN\",\"XSD_BYTE\",\"XSD_DATE\",\"XSD_DATETIME\",\"XSD_DECIMAL\",\"XSD_DOUBLE\",\"XSD_DURATION\",\"XSD_ENTITIES\",\"XSD_ENTITY\",\"XSD_FLOAT\",\"XSD_GDAY\",\"XSD_GMONTH\",\"XSD_GMONTHDAY\",\"XSD_GYEAR\",\"XSD_GYEARMONTH\",\"XSD_HEXBINARY\",\"XSD_ID\",\"XSD_IDREF\",\"XSD_IDREFS\",\"XSD_INT\",\"XSD_INTEGER\",\"XSD_LANGUAGE\",\"XSD_LONG\",\"XSD_NAME\",\"XSD_NAMESPACE\",\"XSD_NCNAME\",\"XSD_NEGATIVEINTEGER\",\"XSD_NMTOKEN\",\"XSD_NMTOKENS\",\"XSD_NONNEGATIVEINTEGER\",\"XSD_NONPOSITIVEINTEGER\",\"XSD_NORMALIZEDSTRING\",\"XSD_NOTATION\",\"XSD_POSITIVEINTEGER\",\"XSD_QNAME\",\"XSD_SHORT\",\"XSD_STRING\",\"XSD_TIME\",\"XSD_TOKEN\",\"XSD_UNSIGNEDBYTE\",\"XSD_UNSIGNEDINT\",\"XSD_UNSIGNEDLONG\",\"XSD_UNSIGNEDSHORT\",\"XSL_CLONE_ALWAYS\",\"XSL_CLONE_AUTO\",\"XSL_CLONE_NEVER\",\"YESEXPR\",\"YPERR_BADARGS\",\"YPERR_BADDB\",\"YPERR_BUSY\",\"YPERR_DOMAIN\",\"YPERR_KEY\",\"YPERR_MAP\",\"YPERR_NODOM\",\"YPERR_NOMORE\",\"YPERR_PMAP\",\"YPERR_RESRC\",\"YPERR_RPC\",\"YPERR_VERS\",\"YPERR_YPBIND\",\"YPERR_YPERR\",\"YPERR_YPSERV\",\"ZEND_THREAD_SAFE\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[A-Z_][A-Z_0-9]*\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\(\\\\s*(int|integer|bool|boolean|float|double|real|string|array|object)\\\\s*\\\\)\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PHP/PHP\",\"doublequotestring\")]},Rule {rMatcher = DetectChar '`', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PHP/PHP\",\"backquotestring\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PHP/PHP\",\"singlequotestring\")]},Rule {rMatcher = RegExpr (RE {reString = \"<<<\\\"((EO)?HTML)\\\"\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PHP/PHP\",\"htmlheredoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"<<<\\\"((EO)?CSS)\\\"\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PHP/PHP\",\"cssheredoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"<<<\\\"((EO)?JAVASCRIPT)\\\"\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PHP/PHP\",\"javascriptheredoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"<<<\\\"((EO)?MYSQL)\\\"\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PHP/PHP\",\"mysqlheredoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"<<<\\\"([A-Za-z_][A-Za-z0-9_]*)\\\"\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PHP/PHP\",\"heredoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"<<<((EO)?HTML)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PHP/PHP\",\"htmlheredoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"<<<((EO)?CSS)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PHP/PHP\",\"cssheredoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"<<<((EO)?JAVASCRIPT)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PHP/PHP\",\"javascriptheredoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"<<<((EO)?MYSQL)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PHP/PHP\",\"mysqlheredoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"<<<([A-Za-z_][A-Za-z0-9_]*)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PHP/PHP\",\"heredoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"<<<'((EO)?HTML)'\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PHP/PHP\",\"htmlnowdoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"<<<'((EO)?CSS)'\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PHP/PHP\",\"cssnowdoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"<<<'((EO)?JAVASCRIPT)'\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PHP/PHP\",\"javascriptnowdoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"<<<'((EO)?MYSQL)'\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PHP/PHP\",\"mysqlnowdoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"<<<'([A-Za-z_][A-Za-z0-9_]*)'\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PHP/PHP\",\"nowdoc\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?@[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"$_COOKIE\",\"$_ENV\",\"$_FILES\",\"$_GET\",\"$_POST\",\"$_REQUEST\",\"$_SERVER\",\"$_SESSION\",\"$GLOBALS\",\"$php_errormsg\",\"$this\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$+[a-zA-Z_\\\\x7f-\\\\xff][a-zA-Z0-9_\\\\x7f-\\\\xff]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[0123456789]*\\\\.\\\\.\\\\.[0123456789]*\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"0[bB][01]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \";(),[]\", rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"singlequotestring\",Context {cName = \"singlequotestring\", cSyntax = \"PHP/PHP\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\\'', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"start\",Context {cName = \"start\", cSyntax = \"PHP/PHP\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<\\\\?(?:=|php)?\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PHP/PHP\",\"phpsource\")]},Rule {rMatcher = StringDetect \"?>\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Push (\"PHP/PHP\",\"phpsource\")], cDynamic = False}),(\"ternary\",Context {cName = \"ternary\", cSyntax = \"PHP/PHP\", cRules = [Rule {rMatcher = Detect2Chars ':' ':', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ':', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"PHP/PHP\",\"phpsource\"), 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}),(\"twolinecomment\",Context {cName = \"twolinecomment\", cSyntax = \"PHP/PHP\", cRules = [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 = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"\", sVersion = \"2\", sLicense = \"\", sExtensions = [], sStartingContext = \"start\"}"
diff --git a/src/Skylighting/Syntax/Pike.hs b/src/Skylighting/Syntax/Pike.hs
--- a/src/Skylighting/Syntax/Pike.hs
+++ b/src/Skylighting/Syntax/Pike.hs
@@ -2,689 +2,6 @@
 module Skylighting.Syntax.Pike (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Pike"
-  , sFilename = "pike.xml"
-  , sShortname = "Pike"
-  , sContexts =
-      fromList
-        [ ( "Block Comment"
-          , Context
-              { cName = "Block Comment"
-              , cSyntax = "Pike"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(FIXME|TODO|NOT(IC)?E):?"
-                              , reCompiled = Just (compileRegex True "(FIXME|TODO|NOT(IC)?E):?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Line Comment"
-          , Context
-              { cName = "Line Comment"
-              , cSyntax = "Pike"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(FIXME|TODO|NOT(IC)?E):?"
-                              , reCompiled = Just (compileRegex True "(FIXME|TODO|NOT(IC)?E):?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Pike"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "break"
-                               , "case"
-                               , "class"
-                               , "continue"
-                               , "default"
-                               , "do"
-                               , "else"
-                               , "for"
-                               , "foreach"
-                               , "if"
-                               , "return"
-                               , "switch"
-                               , "while"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "array"
-                               , "float"
-                               , "function"
-                               , "int"
-                               , "mapping"
-                               , "mixed"
-                               , "multiset>"
-                               , "object"
-                               , "program"
-                               , "static"
-                               , "string"
-                               , "void"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "catch" , "gauge" , "sscanf" , "typeof" ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "`([\\+\\-\\*/%~&\\|^]|[!=<>]=|<<?|>>?|(\\[\\]|->)=?)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "`([\\+\\-\\*/%~&\\|^]|[!=<>]=|<<?|>>?|(\\[\\]|->)=?)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "0[bB][01]+"
-                              , reCompiled = Just (compileRegex True "0[bB][01]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Pike" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Pike" , "Line Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '!'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Pike" , "Line Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Pike" , "Block Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*if\\s+0"
-                              , reCompiled = Just (compileRegex True "#\\s*if\\s+0")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Pike" , "Outscoped" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Pike" , "Preprocessor" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Outscoped"
-          , Context
-              { cName = "Outscoped"
-              , cSyntax = "Pike"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(FIXME|TODO|NOT(IC)?E):?"
-                              , reCompiled = Just (compileRegex True "(FIXME|TODO|NOT(IC)?E):?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AlertTok
-                      , 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 ( "Pike" , "Block Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*if"
-                              , reCompiled = Just (compileRegex True "#\\s*if")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Pike" , "Outscoped intern" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*(endif|elif|else)"
-                              , reCompiled = Just (compileRegex True "#\\s*(endif|elif|else)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Outscoped intern"
-          , Context
-              { cName = "Outscoped intern"
-              , cSyntax = "Pike"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Pike" , "Block Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*if"
-                              , reCompiled = Just (compileRegex True "#\\s*if")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Pike" , "Outscoped intern" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*endif"
-                              , reCompiled = Just (compileRegex True "#\\s*endif")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Preprocessor"
-          , Context
-              { cName = "Preprocessor"
-              , cSyntax = "Pike"
-              , cRules =
-                  [ Rule
-                      { rMatcher = RangeDetect '"' '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '<' '>'
-                      , rAttribute = StringTok
-                      , 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 ( "Pike" , "Line Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Pike" , "Block Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Pike"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\d[0-9]+"
-                              , reCompiled = Just (compileRegex True "\\\\d[0-9]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Paul Pogonyshev"
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.pike" ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"Pike\", sFilename = \"pike.xml\", sShortname = \"Pike\", sContexts = fromList [(\"Block Comment\",Context {cName = \"Block Comment\", cSyntax = \"Pike\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(FIXME|TODO|NOT(IC)?E):?\", reCaseSensitive = True}), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Line Comment\",Context {cName = \"Line Comment\", cSyntax = \"Pike\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(FIXME|TODO|NOT(IC)?E):?\", reCaseSensitive = True}), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Pike\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"break\",\"case\",\"class\",\"continue\",\"default\",\"do\",\"else\",\"for\",\"foreach\",\"if\",\"return\",\"switch\",\"while\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"array\",\"float\",\"function\",\"int\",\"mapping\",\"mixed\",\"multiset>\",\"object\",\"program\",\"static\",\"string\",\"void\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"catch\",\"gauge\",\"sscanf\",\"typeof\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"`([\\\\+\\\\-\\\\*/%~&\\\\|^]|[!=<>]=|<<?|>>?|(\\\\[\\\\]|->)=?)\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"0[bB][01]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Pike\",\"String\")]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Pike\",\"Line Comment\")]},Rule {rMatcher = Detect2Chars '#' '!', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Pike\",\"Line Comment\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Pike\",\"Block Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*if\\\\s+0\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Pike\",\"Outscoped\")]},Rule {rMatcher = DetectChar '#', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Pike\",\"Preprocessor\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Outscoped\",Context {cName = \"Outscoped\", cSyntax = \"Pike\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(FIXME|TODO|NOT(IC)?E):?\", reCaseSensitive = True}), rAttribute = AlertTok, 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 (\"Pike\",\"Block Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*if\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Pike\",\"Outscoped intern\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*(endif|elif|else)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Outscoped intern\",Context {cName = \"Outscoped intern\", cSyntax = \"Pike\", cRules = [Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Pike\",\"Block Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*if\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Pike\",\"Outscoped intern\")]},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*endif\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Preprocessor\",Context {cName = \"Preprocessor\", cSyntax = \"Pike\", cRules = [Rule {rMatcher = RangeDetect '\"' '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RangeDetect '<' '>', rAttribute = StringTok, 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 (\"Pike\",\"Line Comment\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Pike\",\"Block Comment\")]},Rule {rMatcher = LineContinue, rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Pike\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\d[0-9]+\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCStringChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Paul Pogonyshev\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.pike\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Postscript.hs b/src/Skylighting/Syntax/Postscript.hs
--- a/src/Skylighting/Syntax/Postscript.hs
+++ b/src/Skylighting/Syntax/Postscript.hs
@@ -2,584 +2,6 @@
 module Skylighting.Syntax.Postscript (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "PostScript"
-  , sFilename = "postscript.xml"
-  , sShortname = "Postscript"
-  , sContexts =
-      fromList
-        [ ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "PostScript"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Header"
-          , Context
-              { cName = "Header"
-              , cSyntax = "PostScript"
-              , cRules = []
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "PostScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "abs"
-                               , "add"
-                               , "aload"
-                               , "anchorsearch"
-                               , "and"
-                               , "arc"
-                               , "arcn"
-                               , "arct"
-                               , "arcto"
-                               , "array"
-                               , "ASCII85Decode"
-                               , "ASCII85Encode"
-                               , "ASCIIHexDecode"
-                               , "ASCIIHexEncode"
-                               , "ashow"
-                               , "astore"
-                               , "atan"
-                               , "awidthshow"
-                               , "banddevice"
-                               , "begin"
-                               , "bind"
-                               , "bitshift"
-                               , "bytesavailable"
-                               , "cachestatus"
-                               , "CCITTFaxDecode"
-                               , "CCITTFaxEncode"
-                               , "ceiling"
-                               , "charpath"
-                               , "CIEBasedA"
-                               , "CIEBasedABC"
-                               , "CIEBasedDEF"
-                               , "CIEBasedDEFG"
-                               , "clear"
-                               , "cleardictstack"
-                               , "cleartomark"
-                               , "clip"
-                               , "clippath"
-                               , "closefile"
-                               , "closepath"
-                               , "colorimage"
-                               , "concat"
-                               , "concatmatrix"
-                               , "condition"
-                               , "copy"
-                               , "copypage"
-                               , "cos"
-                               , "count"
-                               , "countdictstack"
-                               , "countexecstack"
-                               , "counttomark"
-                               , "Courier"
-                               , "Courier-Bold"
-                               , "Courier-BoldOblique"
-                               , "Courier-Oblique"
-                               , "cshow"
-                               , "currentblackgeneration"
-                               , "currentcacheparams"
-                               , "currentcmykcolor"
-                               , "currentcolor"
-                               , "currentcolorrendering"
-                               , "currentcolorscreen"
-                               , "currentcolorspace"
-                               , "currentcolortransfer"
-                               , "currentcontext"
-                               , "currentdash"
-                               , "currentdevparams"
-                               , "currentdict"
-                               , "currentfile"
-                               , "currentflat"
-                               , "currentfont"
-                               , "currentglobal"
-                               , "currentgray"
-                               , "currentgstate"
-                               , "currenthalftone"
-                               , "currenthalftonephase"
-                               , "currenthsbcolor"
-                               , "currentlinecap"
-                               , "currentlinejoin"
-                               , "currentlinewidth"
-                               , "currentmatrix"
-                               , "currentmiterlimit"
-                               , "currentobjectformat"
-                               , "currentoverprint"
-                               , "currentpacking"
-                               , "currentpagedevice"
-                               , "currentpoint"
-                               , "currentrgbcolor"
-                               , "currentscreen"
-                               , "currentshared"
-                               , "currentstrokeadjust"
-                               , "currentsystemparams"
-                               , "currenttransfer"
-                               , "currentundercolorremoval"
-                               , "currentuserparams"
-                               , "curveto"
-                               , "cvi"
-                               , "cvlit"
-                               , "cvn"
-                               , "cvr"
-                               , "cvrs"
-                               , "cvs"
-                               , "cvx"
-                               , "DCTDecode"
-                               , "DCTEncode"
-                               , "def"
-                               , "defaultmatrix"
-                               , "definefont"
-                               , "defineresource"
-                               , "defineusername"
-                               , "defineuserobject"
-                               , "deletefile"
-                               , "detach"
-                               , "DeviceCMYK"
-                               , "DeviceGray"
-                               , "deviceinfo"
-                               , "DeviceN"
-                               , "DeviceRGB"
-                               , "dict"
-                               , "dictstack"
-                               , "div"
-                               , "dtransform"
-                               , "dup"
-                               , "echo"
-                               , "end"
-                               , "eoclip"
-                               , "eofill"
-                               , "eoviewclip"
-                               , "eq"
-                               , "erasepage"
-                               , "errordict"
-                               , "exch"
-                               , "exec"
-                               , "execform"
-                               , "execstack"
-                               , "execuserobject"
-                               , "executeonly"
-                               , "exit"
-                               , "exp"
-                               , "false"
-                               , "file"
-                               , "filenameforall"
-                               , "fileposition"
-                               , "fill"
-                               , "filter"
-                               , "findencoding"
-                               , "findfont"
-                               , "findresource"
-                               , "flattenpath"
-                               , "floor"
-                               , "flush"
-                               , "flushfile"
-                               , "FontDirectory"
-                               , "for"
-                               , "forall"
-                               , "fork"
-                               , "framedevice"
-                               , "gcheck"
-                               , "ge"
-                               , "get"
-                               , "getinterval"
-                               , "globaldict"
-                               , "GlobalFontDirectory"
-                               , "glyphshow"
-                               , "grestore"
-                               , "grestoreall"
-                               , "gsave"
-                               , "gstate"
-                               , "gt"
-                               , "handleerror"
-                               , "Helvetica"
-                               , "Helvetica-Bold"
-                               , "Helvetica-BoldOblique"
-                               , "Helvetica-Oblique"
-                               , "identmatrix"
-                               , "idiv"
-                               , "idtransform"
-                               , "if"
-                               , "ifelse"
-                               , "image"
-                               , "imagemask"
-                               , "index"
-                               , "Indexed"
-                               , "ineofill"
-                               , "infill"
-                               , "initclip"
-                               , "initgraphics"
-                               , "initmatrix"
-                               , "initviewclip"
-                               , "instroke"
-                               , "inueofill"
-                               , "inufill"
-                               , "inustroke"
-                               , "invertmatrix"
-                               , "ISOLatin1Encoding"
-                               , "itransform"
-                               , "join"
-                               , "known"
-                               , "kshow"
-                               , "languagelevel"
-                               , "le"
-                               , "length"
-                               , "lineto"
-                               , "ln"
-                               , "load"
-                               , "lock"
-                               , "log"
-                               , "loop"
-                               , "lt"
-                               , "LZWDecode"
-                               , "LZWEncode"
-                               , "makefont"
-                               , "makepattern"
-                               , "mark"
-                               , "matrix"
-                               , "maxlength"
-                               , "mod"
-                               , "monitor"
-                               , "moveto"
-                               , "mul"
-                               , "ne"
-                               , "neg"
-                               , "newpath"
-                               , "noaccess"
-                               , "not"
-                               , "notify"
-                               , "null"
-                               , "nulldevice"
-                               , "NullEncode"
-                               , "or"
-                               , "packedarray"
-                               , "pathbbox"
-                               , "pathforall"
-                               , "Pattern"
-                               , "pop"
-                               , "print"
-                               , "printobject"
-                               , "product"
-                               , "pstack"
-                               , "put"
-                               , "putinterval"
-                               , "quit"
-                               , "rand"
-                               , "rcheck"
-                               , "rcurveto"
-                               , "read"
-                               , "readhexstring"
-                               , "readline"
-                               , "readonly"
-                               , "readstring"
-                               , "realtime"
-                               , "rectclip"
-                               , "rectfill"
-                               , "rectstroke"
-                               , "rectviewclip"
-                               , "renamefile"
-                               , "renderbands"
-                               , "repeat"
-                               , "resetfile"
-                               , "resourceforall"
-                               , "resourcestatus"
-                               , "restore"
-                               , "reversepath"
-                               , "revision"
-                               , "rlineto"
-                               , "rmoveto"
-                               , "roll"
-                               , "rootfont"
-                               , "rotate"
-                               , "round"
-                               , "rrand"
-                               , "run"
-                               , "RunLengthDecode"
-                               , "RunLengthEncode"
-                               , "save"
-                               , "scale"
-                               , "scalefont"
-                               , "scheck"
-                               , "search"
-                               , "selectfont"
-                               , "Separation"
-                               , "serialnumber"
-                               , "setbbox"
-                               , "setblackgeneration"
-                               , "setcachedevice"
-                               , "setcachedevice2"
-                               , "setcachelimit"
-                               , "setcacheparams"
-                               , "setcharwidth"
-                               , "setcmykcolor"
-                               , "setcolor"
-                               , "setcolorrendering"
-                               , "setcolorscreen"
-                               , "setcolorspace"
-                               , "setcolortransfer"
-                               , "setdash"
-                               , "setdevparams"
-                               , "setfileposition"
-                               , "setflat"
-                               , "setfont"
-                               , "setglobal"
-                               , "setgray"
-                               , "setgstate"
-                               , "sethalftone"
-                               , "sethalftonephase"
-                               , "sethsbcolor"
-                               , "setlinecap"
-                               , "setlinejoin"
-                               , "setlinewidth"
-                               , "setmatrix"
-                               , "setmiterlimit"
-                               , "setobjectformat"
-                               , "setoverprint"
-                               , "setpacking"
-                               , "setpagedevice"
-                               , "setpattern"
-                               , "setrgbcolor"
-                               , "setscreen"
-                               , "setshared"
-                               , "setstrokeadjust"
-                               , "setsystemparams"
-                               , "settransfer"
-                               , "setucacheparams"
-                               , "setundercolorremoval"
-                               , "setuserparams"
-                               , "setvmthreshold"
-                               , "shareddict"
-                               , "SharedFontDirectory"
-                               , "show"
-                               , "showpage"
-                               , "sin"
-                               , "sqrt"
-                               , "srand"
-                               , "stack"
-                               , "StandardEncoding"
-                               , "startjob"
-                               , "status"
-                               , "statusdict"
-                               , "stop"
-                               , "stopped"
-                               , "store"
-                               , "string"
-                               , "stringwidth"
-                               , "stroke"
-                               , "strokepath"
-                               , "sub"
-                               , "SubFileDecode"
-                               , "Symbol"
-                               , "systemdict"
-                               , "Times-Bold"
-                               , "Times-BoldItalic"
-                               , "Times-Italic"
-                               , "Times-Roman"
-                               , "token"
-                               , "transform"
-                               , "translate"
-                               , "true"
-                               , "truncate"
-                               , "type"
-                               , "uappend"
-                               , "ucache"
-                               , "ucachestatus"
-                               , "ueofill"
-                               , "ufill"
-                               , "undef"
-                               , "undefinefont"
-                               , "undefineresource"
-                               , "undefineuserobject"
-                               , "upath"
-                               , "userdict"
-                               , "UserObjects"
-                               , "usertime"
-                               , "ustroke"
-                               , "ustrokepath"
-                               , "version"
-                               , "viewclip"
-                               , "viewclippath"
-                               , "vmreclaim"
-                               , "vmstatus"
-                               , "wait"
-                               , "wcheck"
-                               , "where"
-                               , "widthshow"
-                               , "write"
-                               , "writehexstring"
-                               , "writeobject"
-                               , "writestring"
-                               , "wtranslation"
-                               , "xcheck"
-                               , "xor"
-                               , "xshow"
-                               , "xyshow"
-                               , "yield"
-                               , "yshow"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '%' '!'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PostScript" , "Header" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PostScript" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PostScript" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\/{1,2}[^\\s\\(\\)\\{\\}\\[\\]%/]*"
-                              , reCompiled =
-                                  Just (compileRegex True "\\/{1,2}[^\\s\\(\\)\\{\\}\\[\\]%/]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "PostScript"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = ""
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.ps" , "*.ai" , "*.eps" ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"PostScript\", sFilename = \"postscript.xml\", sShortname = \"Postscript\", sContexts = fromList [(\"Comment\",Context {cName = \"Comment\", cSyntax = \"PostScript\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Header\",Context {cName = \"Header\", cSyntax = \"PostScript\", cRules = [], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"PostScript\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"abs\",\"add\",\"aload\",\"anchorsearch\",\"and\",\"arc\",\"arcn\",\"arct\",\"arcto\",\"array\",\"ASCII85Decode\",\"ASCII85Encode\",\"ASCIIHexDecode\",\"ASCIIHexEncode\",\"ashow\",\"astore\",\"atan\",\"awidthshow\",\"banddevice\",\"begin\",\"bind\",\"bitshift\",\"bytesavailable\",\"cachestatus\",\"CCITTFaxDecode\",\"CCITTFaxEncode\",\"ceiling\",\"charpath\",\"CIEBasedA\",\"CIEBasedABC\",\"CIEBasedDEF\",\"CIEBasedDEFG\",\"clear\",\"cleardictstack\",\"cleartomark\",\"clip\",\"clippath\",\"closefile\",\"closepath\",\"colorimage\",\"concat\",\"concatmatrix\",\"condition\",\"copy\",\"copypage\",\"cos\",\"count\",\"countdictstack\",\"countexecstack\",\"counttomark\",\"Courier\",\"Courier-Bold\",\"Courier-BoldOblique\",\"Courier-Oblique\",\"cshow\",\"currentblackgeneration\",\"currentcacheparams\",\"currentcmykcolor\",\"currentcolor\",\"currentcolorrendering\",\"currentcolorscreen\",\"currentcolorspace\",\"currentcolortransfer\",\"currentcontext\",\"currentdash\",\"currentdevparams\",\"currentdict\",\"currentfile\",\"currentflat\",\"currentfont\",\"currentglobal\",\"currentgray\",\"currentgstate\",\"currenthalftone\",\"currenthalftonephase\",\"currenthsbcolor\",\"currentlinecap\",\"currentlinejoin\",\"currentlinewidth\",\"currentmatrix\",\"currentmiterlimit\",\"currentobjectformat\",\"currentoverprint\",\"currentpacking\",\"currentpagedevice\",\"currentpoint\",\"currentrgbcolor\",\"currentscreen\",\"currentshared\",\"currentstrokeadjust\",\"currentsystemparams\",\"currenttransfer\",\"currentundercolorremoval\",\"currentuserparams\",\"curveto\",\"cvi\",\"cvlit\",\"cvn\",\"cvr\",\"cvrs\",\"cvs\",\"cvx\",\"DCTDecode\",\"DCTEncode\",\"def\",\"defaultmatrix\",\"definefont\",\"defineresource\",\"defineusername\",\"defineuserobject\",\"deletefile\",\"detach\",\"DeviceCMYK\",\"DeviceGray\",\"deviceinfo\",\"DeviceN\",\"DeviceRGB\",\"dict\",\"dictstack\",\"div\",\"dtransform\",\"dup\",\"echo\",\"end\",\"eoclip\",\"eofill\",\"eoviewclip\",\"eq\",\"erasepage\",\"errordict\",\"exch\",\"exec\",\"execform\",\"execstack\",\"execuserobject\",\"executeonly\",\"exit\",\"exp\",\"false\",\"file\",\"filenameforall\",\"fileposition\",\"fill\",\"filter\",\"findencoding\",\"findfont\",\"findresource\",\"flattenpath\",\"floor\",\"flush\",\"flushfile\",\"FontDirectory\",\"for\",\"forall\",\"fork\",\"framedevice\",\"gcheck\",\"ge\",\"get\",\"getinterval\",\"globaldict\",\"GlobalFontDirectory\",\"glyphshow\",\"grestore\",\"grestoreall\",\"gsave\",\"gstate\",\"gt\",\"handleerror\",\"Helvetica\",\"Helvetica-Bold\",\"Helvetica-BoldOblique\",\"Helvetica-Oblique\",\"identmatrix\",\"idiv\",\"idtransform\",\"if\",\"ifelse\",\"image\",\"imagemask\",\"index\",\"Indexed\",\"ineofill\",\"infill\",\"initclip\",\"initgraphics\",\"initmatrix\",\"initviewclip\",\"instroke\",\"inueofill\",\"inufill\",\"inustroke\",\"invertmatrix\",\"ISOLatin1Encoding\",\"itransform\",\"join\",\"known\",\"kshow\",\"languagelevel\",\"le\",\"length\",\"lineto\",\"ln\",\"load\",\"lock\",\"log\",\"loop\",\"lt\",\"LZWDecode\",\"LZWEncode\",\"makefont\",\"makepattern\",\"mark\",\"matrix\",\"maxlength\",\"mod\",\"monitor\",\"moveto\",\"mul\",\"ne\",\"neg\",\"newpath\",\"noaccess\",\"not\",\"notify\",\"null\",\"nulldevice\",\"NullEncode\",\"or\",\"packedarray\",\"pathbbox\",\"pathforall\",\"Pattern\",\"pop\",\"print\",\"printobject\",\"product\",\"pstack\",\"put\",\"putinterval\",\"quit\",\"rand\",\"rcheck\",\"rcurveto\",\"read\",\"readhexstring\",\"readline\",\"readonly\",\"readstring\",\"realtime\",\"rectclip\",\"rectfill\",\"rectstroke\",\"rectviewclip\",\"renamefile\",\"renderbands\",\"repeat\",\"resetfile\",\"resourceforall\",\"resourcestatus\",\"restore\",\"reversepath\",\"revision\",\"rlineto\",\"rmoveto\",\"roll\",\"rootfont\",\"rotate\",\"round\",\"rrand\",\"run\",\"RunLengthDecode\",\"RunLengthEncode\",\"save\",\"scale\",\"scalefont\",\"scheck\",\"search\",\"selectfont\",\"Separation\",\"serialnumber\",\"setbbox\",\"setblackgeneration\",\"setcachedevice\",\"setcachedevice2\",\"setcachelimit\",\"setcacheparams\",\"setcharwidth\",\"setcmykcolor\",\"setcolor\",\"setcolorrendering\",\"setcolorscreen\",\"setcolorspace\",\"setcolortransfer\",\"setdash\",\"setdevparams\",\"setfileposition\",\"setflat\",\"setfont\",\"setglobal\",\"setgray\",\"setgstate\",\"sethalftone\",\"sethalftonephase\",\"sethsbcolor\",\"setlinecap\",\"setlinejoin\",\"setlinewidth\",\"setmatrix\",\"setmiterlimit\",\"setobjectformat\",\"setoverprint\",\"setpacking\",\"setpagedevice\",\"setpattern\",\"setrgbcolor\",\"setscreen\",\"setshared\",\"setstrokeadjust\",\"setsystemparams\",\"settransfer\",\"setucacheparams\",\"setundercolorremoval\",\"setuserparams\",\"setvmthreshold\",\"shareddict\",\"SharedFontDirectory\",\"show\",\"showpage\",\"sin\",\"sqrt\",\"srand\",\"stack\",\"StandardEncoding\",\"startjob\",\"status\",\"statusdict\",\"stop\",\"stopped\",\"store\",\"string\",\"stringwidth\",\"stroke\",\"strokepath\",\"sub\",\"SubFileDecode\",\"Symbol\",\"systemdict\",\"Times-Bold\",\"Times-BoldItalic\",\"Times-Italic\",\"Times-Roman\",\"token\",\"transform\",\"translate\",\"true\",\"truncate\",\"type\",\"uappend\",\"ucache\",\"ucachestatus\",\"ueofill\",\"ufill\",\"undef\",\"undefinefont\",\"undefineresource\",\"undefineuserobject\",\"upath\",\"userdict\",\"UserObjects\",\"usertime\",\"ustroke\",\"ustrokepath\",\"version\",\"viewclip\",\"viewclippath\",\"vmreclaim\",\"vmstatus\",\"wait\",\"wcheck\",\"where\",\"widthshow\",\"write\",\"writehexstring\",\"writeobject\",\"writestring\",\"wtranslation\",\"xcheck\",\"xor\",\"xshow\",\"xyshow\",\"yield\",\"yshow\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '%' '!', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PostScript\",\"Header\")]},Rule {rMatcher = DetectChar '%', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PostScript\",\"Comment\")]},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PostScript\",\"String\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\/{1,2}[^\\\\s\\\\(\\\\)\\\\{\\\\}\\\\[\\\\]%/]*\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"PostScript\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.ps\",\"*.ai\",\"*.eps\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Prolog.hs b/src/Skylighting/Syntax/Prolog.hs
--- a/src/Skylighting/Syntax/Prolog.hs
+++ b/src/Skylighting/Syntax/Prolog.hs
@@ -2,3559 +2,6 @@
 module Skylighting.Syntax.Prolog (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Prolog"
-  , sFilename = "prolog.xml"
-  , sShortname = "Prolog"
-  , sContexts =
-      fromList
-        [ ( "1-comment"
-          , Context
-              { cName = "1-comment"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts_indent" , "" )
-                      , 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 = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "arith_expr"
-          , Context
-              { cName = "arith_expr"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "nested_expr" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '!'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ','
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '|'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.(?!(\\(|[#$&*+\\-./:<=>?@^~\\\\]))"
-                              , reCompiled =
-                                  Just (compileRegex True "\\.(?!(\\(|[#$&*+\\-./:<=>?@^~\\\\]))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(;|->|\\\\\\+|:-|=|\\\\=)(?![#$&*+\\-./:<=>?@^~\\\\])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(;|->|\\\\\\+|:-|=|\\\\=)(?![#$&*+\\-./:<=>?@^~\\\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "arith_expr_common" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "arith_expr_common"
-          , Context
-              { cName = "arith_expr_common"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "layout" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "number" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"#$%&'()*+,-./:;<=>?[\\]^`{|}~"
-                              }
-                            (makeWordSet True [ "is" ])
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"#$%&'()*+,-./:;<=>?[\\]^`{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "atan"
-                               , "char_conversion"
-                               , "current_char_conversion"
-                               , "ensure_loaded"
-                               , "include"
-                               , "xor"
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"#$%&'()*+,-./:;<=>?[\\]^`{|}~"
-                              }
-                            (makeWordSet True [ "abs" , "max" , "min" , "sign" ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"#$%&'()*+,-./:;<=>?[\\]^`{|}~"
-                              }
-                            (makeWordSet True [ "ceiling" , "floor" , "round" , "truncate" ])
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"#$%&'()*+,-./:;<=>?[\\]^`{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "acos"
-                               , "asin"
-                               , "atan2"
-                               , "cos"
-                               , "exp"
-                               , "float"
-                               , "float_fractional_part"
-                               , "float_integer_part"
-                               , "log"
-                               , "pi"
-                               , "sin"
-                               , "sqrt"
-                               , "tan"
-                               ])
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"#$%&'()*+,-./:;<=>?[\\]^`{|}~"
-                              }
-                            (makeWordSet True [ "div" , "mod" , "rem" ])
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\+|-|\\*|\\^)(?![#$&*+\\-./:<=>?@^~\\\\])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(\\+|-|\\*|\\^)(?![#$&*+\\-./:<=>?@^~\\\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "//(?![#$&*+\\-./:<=>?@^~\\\\])"
-                              , reCompiled =
-                                  Just (compileRegex True "//(?![#$&*+\\-./:<=>?@^~\\\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(/|\\*\\*)(?![#$&*+\\-./:<=>?@^~\\\\])"
-                              , reCompiled =
-                                  Just (compileRegex True "(/|\\*\\*)(?![#$&*+\\-./:<=>?@^~\\\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(/\\\\|\\\\/|\\\\|<<|>>)(?![#$&*+\\-./:<=>?@^~\\\\])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(/\\\\|\\\\/|\\\\|<<|>>)(?![#$&*+\\-./:<=>?@^~\\\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "operator" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "abcdefghijklmnopqrstuvwxyz"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "id" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "ABCDEFGHIJKLMNOPQRSTUVWXYZ_"
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "var" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "#$&*+-./:<=>?@^~\\"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "graphic" ) ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "atomic"
-          , Context
-              { cName = "atomic"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"#$%&'()*+,-./:;<=>?[\\]^`{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "call"
-                               , "catch"
-                               , "fail"
-                               , "false"
-                               , "initialization"
-                               , "once"
-                               , "repeat"
-                               , "throw"
-                               , "true"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"#$%&'()*+,-./:;<=>?[\\]^`{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "atom"
-                               , "atomic"
-                               , "callable"
-                               , "compound"
-                               , "float"
-                               , "ground"
-                               , "integer"
-                               , "nonvar"
-                               , "number"
-                               , "var"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"#$%&'()*+,-./:;<=>?[\\]^`{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "abolish"
-                               , "asserta"
-                               , "assertz"
-                               , "clause"
-                               , "dynamic"
-                               , "retract"
-                               , "retractall"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"#$%&'()*+,-./:;<=>?[\\]^`{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "get_byte"
-                               , "get_char"
-                               , "get_code"
-                               , "nl"
-                               , "open"
-                               , "peek_byte"
-                               , "peek_char"
-                               , "peek_code"
-                               , "put_byte"
-                               , "put_char"
-                               , "put_code"
-                               , "read"
-                               , "read_term"
-                               , "set_stream_position"
-                               , "write"
-                               , "write_canonical"
-                               , "writeq"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"#$%&'()*+,-./:;<=>?[\\]^`{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "acyclic_term"
-                               , "arg"
-                               , "atom_chars"
-                               , "atom_codes"
-                               , "atom_concat"
-                               , "atom_length"
-                               , "char_code"
-                               , "compare"
-                               , "copy_term"
-                               , "functor"
-                               , "number_chars"
-                               , "number_codes"
-                               , "subsumes_term"
-                               , "term_variables"
-                               , "unify_with_occurs_check"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"#$%&'()*+,-./:;<=>?[\\]^`{|}~"
-                              }
-                            (makeWordSet
-                               True [ "discontigous" , "multifile" , "op" , "set_prolog_flag" ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"#$%&'()*+,-./:;<=>?[\\]^`{|}~"
-                              }
-                            (makeWordSet True [ "phrase" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"#$%&'()*+,-./:;<=>?[\\]^`{|}~"
-                              }
-                            (makeWordSet True [ "is" ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "arith_expr" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"#$%&'()*+,-./:;<=>?[\\]^`{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "at_end_of_stream"
-                               , "close"
-                               , "current_input"
-                               , "current_op"
-                               , "current_output"
-                               , "current_prolog_flag"
-                               , "flush_output"
-                               , "set_input"
-                               , "set_output"
-                               , "stream_property"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"#$%&'()*+,-./:;<=>?[\\]^`{|}~"
-                              }
-                            (makeWordSet True [ "error" ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"#$%&'()*+,-./:;<=>?[\\]^`{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "domain_error"
-                               , "evaluation_error"
-                               , "existence_error"
-                               , "instantiation_error"
-                               , "permission_error"
-                               , "representation_error"
-                               , "resource_error"
-                               , "syntax_error"
-                               , "system_error"
-                               , "type_error"
-                               , "uninstantiation_error"
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"#$%&'()*+,-./:;<=>?[\\]^`{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "atan"
-                               , "char_conversion"
-                               , "current_char_conversion"
-                               , "ensure_loaded"
-                               , "include"
-                               , "xor"
-                               ])
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "number" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "single-quoted" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "back-quoted" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "double-quoted" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "operator" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "abcdefghijklmnopqrstuvwxyz"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "id" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "ABCDEFGHIJKLMNOPQRSTUVWXYZ_"
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "var" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "#$&*+-./:<=>?@^~\\"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "graphic" ) ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "back-quoted"
-          , Context
-              { cName = "back-quoted"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ 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 = [ Push ( "Prolog" , "bq" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "bq" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "bin"
-          , Context
-              { cName = "bin"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = AnyChar "01"
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "bq"
-          , Context
-              { cName = "bq"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "quoted_1st" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(``|\\\\[0-7]+\\\\|\\\\x[a-fA-F0-9]+\\\\|\\\\.|[^`\\\\]+)$"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(``|\\\\[0-7]+\\\\|\\\\x[a-fA-F0-9]+\\\\|\\\\.|[^`\\\\]+)$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "syntax_error_bq" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '`' '`'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "quoted_last" )
-                      , 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
-              }
-          )
-        , ( "char_code"
-          , Context
-              { cName = "char_code"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\'' '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "esc_seq_cc" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ' '
-                      , rAttribute = AlertTok
-                      , 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 = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "clause"
-          , Context
-              { cName = "clause"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "layout" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.(?!(\\(|[#$&*+\\-./:<=>?@^~\\\\]))"
-                              , reCompiled =
-                                  Just (compileRegex True "\\.(?!(\\(|[#$&*+\\-./:<=>?@^~\\\\]))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "."
-                              , reCompiled = Just (compileRegex True ".")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "term" ) ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "comment-iso"
-          , Context
-              { cName = "comment-iso"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts_indent" , "" )
-                      , 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
-              }
-          )
-        , ( "curly"
-          , Context
-              { cName = "curly"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "layout" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "list" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "curly" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ','
-                      , rAttribute = KeywordTok
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '|'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '.' '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "list_functor" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "atomic" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "double-quoted"
-          , Context
-              { cName = "double-quoted"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ 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 = [ Push ( "Prolog" , "dq" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "dq" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "dq"
-          , Context
-              { cName = "dq"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "quoted_1st" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\"\"|\\\\[0-7]+\\\\|\\\\x[a-fA-F0-9]+\\\\|\\\\.|[^\"\\\\]+)$"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(\"\"|\\\\[0-7]+\\\\|\\\\x[a-fA-F0-9]+\\\\|\\\\.|[^\"\\\\]+)$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "syntax_error_dq" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '"' '"'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "quoted_last" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "esc_seq_cc"
-          , Context
-              { cName = "esc_seq_cc"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ' '
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "abfnrtv\\'`\"]"
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "esc_seq_q"
-          , Context
-              { cName = "esc_seq_q"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[0-7]+\\\\"
-                              , reCompiled = Just (compileRegex True "\\\\[0-7]+\\\\")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\x[a-fA-F0-9]+\\\\"
-                              , reCompiled = Just (compileRegex True "\\\\x[a-fA-F0-9]+\\\\")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "esc_seq_q2" ) ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "Prolog" , "syntax_error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "esc_seq_q2"
-          , Context
-              { cName = "esc_seq_q2"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ' '
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "abfnrtv\\'`\"]"
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "Prolog" , "syntax_error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop , Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "graphic"
-          , Context
-              { cName = "graphic"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = AnyChar "#$&*+-./:<=>?@^~\\"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "hex"
-          , Context
-              { cName = "hex"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = AnyChar "0123456789abcdefABCDEF"
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "id"
-          , Context
-              { cName = "id"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "layout"
-          , Context
-              { cName = "layout"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , 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 ( "Prolog" , "comment-iso" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "%BEGIN"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "region_marker" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "%END"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "region_marker" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "layout_fold" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "1-comment" ) ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "layout_fold"
-          , Context
-              { cName = "layout_fold"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "%BEGIN"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "region_marker" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "%END"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "region_marker" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "1-comment" ) ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "list"
-          , Context
-              { cName = "list"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "layout" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "list" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "curly" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ','
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '!'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '|'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '.' '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "list_functor" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "atomic" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "list_functor"
-          , Context
-              { cName = "list_functor"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '.'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "Prolog" , "syntax_error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "nested"
-          , Context
-              { cName = "nested"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "layout" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "list" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "curly" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '!'
-                      , rAttribute = KeywordTok
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '|'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '.' '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "list_functor" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.(?!(\\(|[#$&*+\\-./:<=>?@^~\\\\]))"
-                              , reCompiled =
-                                  Just (compileRegex True "\\.(?!(\\(|[#$&*+\\-./:<=>?@^~\\\\]))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "atomic" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "nested_expr"
-          , Context
-              { cName = "nested_expr"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "nested_expr" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '!'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ','
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '|'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(;|->|\\\\\\+|:-|=|\\\\=)(?![#$&*+\\-./:<=>?@^~\\\\])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(;|->|\\\\\\+|:-|=|\\\\=)(?![#$&*+\\-./:<=>?@^~\\\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "arith_expr_common" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "number"
-          , Context
-              { cName = "number"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "0'\\\\?$"
-                              , reCompiled = Just (compileRegex True "0'\\\\?$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "syntax_error_cc" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '0' '\''
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "char_code" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '0' 'b'
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "bin" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '0' 'o'
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "oct" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '0' 'x'
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "hex" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[0-9]+\\.[0-9]+E[+\\-]?[0-9]+"
-                              , reCompiled =
-                                  Just (compileRegex True "[0-9]+\\.[0-9]+E[+\\-]?[0-9]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[0-9]+\\.[0-9]+"
-                              , reCompiled = Just (compileRegex True "[0-9]+\\.[0-9]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[0-9]+E[+\\-]?[0-9]+"
-                              , reCompiled = Just (compileRegex True "[0-9]+E[+\\-]?[0-9]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "oct"
-          , Context
-              { cName = "oct"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = AnyChar "01234567"
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "operator"
-          , Context
-              { cName = "operator"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"#$%&'()*+,-./:;<=>?[\\]^`{|}~"
-                              }
-                            (makeWordSet True [ "is" ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "arith_expr" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"#$%&'()*+,-./:;<=>?[\\]^`{|}~"
-                              }
-                            (makeWordSet True [ "div" , "mod" , "rem" ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(;|->|\\\\\\+|:-|=|\\\\=)(?![#$&*+\\-./:<=>?@^~\\\\])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(;|->|\\\\\\+|:-|=|\\\\=)(?![#$&*+\\-./:<=>?@^~\\\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\?-|==|\\\\==|@=<|@<|@>=|@>|=\\.\\.|@|:)(?![#$&*+\\-./:<=>?@^~\\\\])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(\\?-|==|\\\\==|@=<|@<|@>=|@>|=\\.\\.|@|:)(?![#$&*+\\-./:<=>?@^~\\\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-->(?![#$&*+\\-./:<=>?@^~\\\\])"
-                              , reCompiled =
-                                  Just (compileRegex True "-->(?![#$&*+\\-./:<=>?@^~\\\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(=:=|=\\\\=|=<|<|>=|>)(?![#$&*+\\-./:<=>?@^~\\\\])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(=:=|=\\\\=|=<|<|>=|>)(?![#$&*+\\-./:<=>?@^~\\\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "arith_expr" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\+|-|\\*|\\^)(?![#$&*+\\-./:<=>?@^~\\\\])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(\\+|-|\\*|\\^)(?![#$&*+\\-./:<=>?@^~\\\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "//(?![#$&*+\\-./:<=>?@^~\\\\])"
-                              , reCompiled =
-                                  Just (compileRegex True "//(?![#$&*+\\-./:<=>?@^~\\\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(/|\\*\\*)(?![#$&*+\\-./:<=>?@^~\\\\])"
-                              , reCompiled =
-                                  Just (compileRegex True "(/|\\*\\*)(?![#$&*+\\-./:<=>?@^~\\\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(/\\\\|\\\\/|\\\\|<<|>>)(?![#$&*+\\-./:<=>?@^~\\\\])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(/\\\\|\\\\/|\\\\|<<|>>)(?![#$&*+\\-./:<=>?@^~\\\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "quoted_1st"
-          , Context
-              { cName = "quoted_1st"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "quoted_last"
-          , Context
-              { cName = "quoted_last"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "esc_seq_q" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ' '
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "region_marker"
-          , Context
-              { cName = "region_marker"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "1-comment" )
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = RegionMarkerTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "shebang"
-          , Context
-              { cName = "shebang"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '#' '!'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Prolog" , "1-comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "."
-                              , reCompiled = Just (compileRegex True ".")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "clause" ) ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "Prolog" , "clause" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "single-quoted"
-          , Context
-              { cName = "single-quoted"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ 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 = [ Push ( "Prolog" , "sq" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "sq" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "sq"
-          , Context
-              { cName = "sq"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "quoted_1st" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(''|\\\\[0-7]+\\\\|\\\\x[a-fA-F0-9]+\\\\|\\\\.|[^'\\\\]+)$"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(''|\\\\[0-7]+\\\\|\\\\x[a-fA-F0-9]+\\\\|\\\\.|[^'\\\\]+)$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "syntax_error_sq" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\'' '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "quoted_last" )
-                      , 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
-              }
-          )
-        , ( "syntax_error"
-          , Context
-              { cName = "syntax_error"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = ErrorTok
-                      , 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 = [ Pop ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "syntax_error_bq"
-          , Context
-              { cName = "syntax_error_bq"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '`'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '`' '`'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "syntax_error" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "syntax_error_cc"
-          , Context
-              { cName = "syntax_error_cc"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "syntax_error_dq"
-          , Context
-              { cName = "syntax_error_dq"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '"'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '"' '"'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "syntax_error" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "syntax_error_sq"
-          , Context
-              { cName = "syntax_error_sq"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '\''
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\'' '\''
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "syntax_error" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "term"
-          , Context
-              { cName = "term"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "layout" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "list" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "curly" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ','
-                      , rAttribute = KeywordTok
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '|'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '.' '('
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Prolog" , "list_functor" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.(?!(\\(|[#$&*+\\-./:<=>?@^~\\\\]))"
-                              , reCompiled =
-                                  Just (compileRegex True "\\.(?!(\\(|[#$&*+\\-./:<=>?@^~\\\\]))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Prolog" , "atomic" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "var"
-          , Context
-              { cName = "var"
-              , cSyntax = "Prolog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Torsten Eichst\228dt (torsten.eichstaedt@web.de)"
-  , sVersion = "3"
-  , sLicense = "LGPLv2+"
-  , sExtensions = [ "*.prolog" , "*.dcg" , "*.pro" ]
-  , sStartingContext = "shebang"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Prolog\", sFilename = \"prolog.xml\", sShortname = \"Prolog\", sContexts = fromList [(\"1-comment\",Context {cName = \"1-comment\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Alerts_indent\",\"\"), 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 = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"arith_expr\",Context {cName = \"arith_expr\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"nested_expr\")]},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar ']', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '!', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar ',', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '|', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.(?!(\\\\(|[#$&*+\\\\-./:<=>?@^~\\\\\\\\]))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(;|->|\\\\\\\\\\\\+|:-|=|\\\\\\\\=)(?![#$&*+\\\\-./:<=>?@^~\\\\\\\\])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Prolog\",\"arith_expr_common\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"arith_expr_common\",Context {cName = \"arith_expr_common\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = IncludeRules (\"Prolog\",\"layout\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Prolog\",\"number\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"#$%&'()*+,-./:;<=>?[\\\\]^`{|}~\"}) (CaseSensitiveWords (fromList [\"is\"])), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"#$%&'()*+,-./:;<=>?[\\\\]^`{|}~\"}) (CaseSensitiveWords (fromList [\"atan\",\"char_conversion\",\"current_char_conversion\",\"ensure_loaded\",\"include\",\"xor\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"#$%&'()*+,-./:;<=>?[\\\\]^`{|}~\"}) (CaseSensitiveWords (fromList [\"abs\",\"max\",\"min\",\"sign\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"#$%&'()*+,-./:;<=>?[\\\\]^`{|}~\"}) (CaseSensitiveWords (fromList [\"ceiling\",\"floor\",\"round\",\"truncate\"])), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"#$%&'()*+,-./:;<=>?[\\\\]^`{|}~\"}) (CaseSensitiveWords (fromList [\"acos\",\"asin\",\"atan2\",\"cos\",\"exp\",\"float\",\"float_fractional_part\",\"float_integer_part\",\"log\",\"pi\",\"sin\",\"sqrt\",\"tan\"])), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"#$%&'()*+,-./:;<=>?[\\\\]^`{|}~\"}) (CaseSensitiveWords (fromList [\"div\",\"mod\",\"rem\"])), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(=:=|=\\\\\\\\=|=<|<|>=|>)(?![#$&*+\\\\-./:<=>?@^~\\\\\\\\])\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\+|-|\\\\*|\\\\^)(?![#$&*+\\\\-./:<=>?@^~\\\\\\\\])\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"//(?![#$&*+\\\\-./:<=>?@^~\\\\\\\\])\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(/|\\\\*\\\\*)(?![#$&*+\\\\-./:<=>?@^~\\\\\\\\])\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(/\\\\\\\\|\\\\\\\\/|\\\\\\\\|<<|>>)(?![#$&*+\\\\-./:<=>?@^~\\\\\\\\])\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Prolog\",\"operator\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"abcdefghijklmnopqrstuvwxyz\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"id\")]},Rule {rMatcher = AnyChar \"ABCDEFGHIJKLMNOPQRSTUVWXYZ_\", rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"var\")]},Rule {rMatcher = AnyChar \"#$&*+-./:<=>?@^~\\\\\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"graphic\")]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"atomic\",Context {cName = \"atomic\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"#$%&'()*+,-./:;<=>?[\\\\]^`{|}~\"}) (CaseSensitiveWords (fromList [\"call\",\"catch\",\"fail\",\"false\",\"initialization\",\"once\",\"repeat\",\"throw\",\"true\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"#$%&'()*+,-./:;<=>?[\\\\]^`{|}~\"}) (CaseSensitiveWords (fromList [\"atom\",\"atomic\",\"callable\",\"compound\",\"float\",\"ground\",\"integer\",\"nonvar\",\"number\",\"var\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"#$%&'()*+,-./:;<=>?[\\\\]^`{|}~\"}) (CaseSensitiveWords (fromList [\"abolish\",\"asserta\",\"assertz\",\"clause\",\"dynamic\",\"retract\",\"retractall\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"#$%&'()*+,-./:;<=>?[\\\\]^`{|}~\"}) (CaseSensitiveWords (fromList [\"get_byte\",\"get_char\",\"get_code\",\"nl\",\"open\",\"peek_byte\",\"peek_char\",\"peek_code\",\"put_byte\",\"put_char\",\"put_code\",\"read\",\"read_term\",\"set_stream_position\",\"write\",\"write_canonical\",\"writeq\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"#$%&'()*+,-./:;<=>?[\\\\]^`{|}~\"}) (CaseSensitiveWords (fromList [\"acyclic_term\",\"arg\",\"atom_chars\",\"atom_codes\",\"atom_concat\",\"atom_length\",\"char_code\",\"compare\",\"copy_term\",\"functor\",\"number_chars\",\"number_codes\",\"subsumes_term\",\"term_variables\",\"unify_with_occurs_check\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"#$%&'()*+,-./:;<=>?[\\\\]^`{|}~\"}) (CaseSensitiveWords (fromList [\"discontigous\",\"multifile\",\"op\",\"set_prolog_flag\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"#$%&'()*+,-./:;<=>?[\\\\]^`{|}~\"}) (CaseSensitiveWords (fromList [\"phrase\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"#$%&'()*+,-./:;<=>?[\\\\]^`{|}~\"}) (CaseSensitiveWords (fromList [\"is\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"arith_expr\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"#$%&'()*+,-./:;<=>?[\\\\]^`{|}~\"}) (CaseSensitiveWords (fromList [\"at_end_of_stream\",\"close\",\"current_input\",\"current_op\",\"current_output\",\"current_prolog_flag\",\"flush_output\",\"set_input\",\"set_output\",\"stream_property\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"#$%&'()*+,-./:;<=>?[\\\\]^`{|}~\"}) (CaseSensitiveWords (fromList [\"error\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"#$%&'()*+,-./:;<=>?[\\\\]^`{|}~\"}) (CaseSensitiveWords (fromList [\"domain_error\",\"evaluation_error\",\"existence_error\",\"instantiation_error\",\"permission_error\",\"representation_error\",\"resource_error\",\"syntax_error\",\"system_error\",\"type_error\",\"uninstantiation_error\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"#$%&'()*+,-./:;<=>?[\\\\]^`{|}~\"}) (CaseSensitiveWords (fromList [\"atan\",\"char_conversion\",\"current_char_conversion\",\"ensure_loaded\",\"include\",\"xor\"])), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Prolog\",\"number\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"single-quoted\")]},Rule {rMatcher = DetectChar '`', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"back-quoted\")]},Rule {rMatcher = DetectChar '\"', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"double-quoted\")]},Rule {rMatcher = IncludeRules (\"Prolog\",\"operator\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"abcdefghijklmnopqrstuvwxyz\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"id\")]},Rule {rMatcher = AnyChar \"ABCDEFGHIJKLMNOPQRSTUVWXYZ_\", rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"var\")]},Rule {rMatcher = AnyChar \"#$&*+-./:<=>?@^~\\\\\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"graphic\")]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"back-quoted\",Context {cName = \"back-quoted\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"`$\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"bq\")]},Rule {rMatcher = DetectChar '`', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"bq\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"bin\",Context {cName = \"bin\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = AnyChar \"01\", rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"bq\",Context {cName = \"bq\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = IncludeRules (\"Prolog\",\"quoted_1st\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(``|\\\\\\\\[0-7]+\\\\\\\\|\\\\\\\\x[a-fA-F0-9]+\\\\\\\\|\\\\\\\\.|[^`\\\\\\\\]+)$\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"syntax_error_bq\")]},Rule {rMatcher = Detect2Chars '`' '`', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '`', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Prolog\",\"quoted_last\"), 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}),(\"char_code\",Context {cName = \"char_code\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = Detect2Chars '\\'' '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\\'', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\\\\', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"esc_seq_cc\")]},Rule {rMatcher = DetectChar ' ', rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"clause\",Context {cName = \"clause\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = IncludeRules (\"Prolog\",\"layout\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.(?!(\\\\(|[#$&*+\\\\-./:<=>?@^~\\\\\\\\]))\", reCaseSensitive = True}), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"term\")]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"comment-iso\",Context {cName = \"comment-iso\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Alerts_indent\",\"\"), 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}),(\"curly\",Context {cName = \"curly\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = IncludeRules (\"Prolog\",\"layout\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"nested\")]},Rule {rMatcher = DetectChar '[', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"list\")]},Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"curly\")]},Rule {rMatcher = DetectChar ',', rAttribute = KeywordTok, 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 = []},Rule {rMatcher = DetectChar '|', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '.' '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"list_functor\")]},Rule {rMatcher = IncludeRules (\"Prolog\",\"atomic\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"double-quoted\",Context {cName = \"double-quoted\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\"$\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"dq\")]},Rule {rMatcher = DetectChar '\"', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"dq\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"dq\",Context {cName = \"dq\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = IncludeRules (\"Prolog\",\"quoted_1st\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\"\\\"|\\\\\\\\[0-7]+\\\\\\\\|\\\\\\\\x[a-fA-F0-9]+\\\\\\\\|\\\\\\\\.|[^\\\"\\\\\\\\]+)$\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"syntax_error_dq\")]},Rule {rMatcher = Detect2Chars '\"' '\"', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Prolog\",\"quoted_last\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"esc_seq_cc\",Context {cName = \"esc_seq_cc\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = DetectChar ' ', rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = AnyChar \"abfnrtv\\\\'`\\\"]\", rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"esc_seq_q\",Context {cName = \"esc_seq_q\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[0-7]+\\\\\\\\\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\x[a-fA-F0-9]+\\\\\\\\\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\\\\', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"esc_seq_q2\")]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Push (\"Prolog\",\"syntax_error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"esc_seq_q2\",Context {cName = \"esc_seq_q2\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = DetectChar ' ', rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = AnyChar \"abfnrtv\\\\'`\\\"]\", rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Push (\"Prolog\",\"syntax_error\")], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop,Pop], cDynamic = False}),(\"graphic\",Context {cName = \"graphic\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = AnyChar \"#$&*+-./:<=>?@^~\\\\\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"hex\",Context {cName = \"hex\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = AnyChar \"0123456789abcdefABCDEF\", rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"id\",Context {cName = \"id\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"layout\",Context {cName = \"layout\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, 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 (\"Prolog\",\"comment-iso\")]},Rule {rMatcher = StringDetect \"%BEGIN\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"region_marker\")]},Rule {rMatcher = StringDetect \"%END\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"region_marker\")]},Rule {rMatcher = DetectChar '%', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"layout_fold\")]},Rule {rMatcher = DetectChar '%', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"1-comment\")]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"layout_fold\",Context {cName = \"layout_fold\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"%BEGIN\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"region_marker\")]},Rule {rMatcher = StringDetect \"%END\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"region_marker\")]},Rule {rMatcher = DetectChar '%', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"1-comment\")]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"list\",Context {cName = \"list\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = IncludeRules (\"Prolog\",\"layout\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"nested\")]},Rule {rMatcher = DetectChar ']', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '[', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"list\")]},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"curly\")]},Rule {rMatcher = DetectChar ',', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '!', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '|', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '.' '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"list_functor\")]},Rule {rMatcher = IncludeRules (\"Prolog\",\"atomic\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"list_functor\",Context {cName = \"list_functor\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = DetectChar '.', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Push (\"Prolog\",\"syntax_error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"nested\",Context {cName = \"nested\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = IncludeRules (\"Prolog\",\"layout\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"nested\")]},Rule {rMatcher = DetectChar '[', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"list\")]},Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"curly\")]},Rule {rMatcher = DetectChar '!', rAttribute = KeywordTok, 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 = []},Rule {rMatcher = DetectChar '|', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '.' '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"list_functor\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.(?!(\\\\(|[#$&*+\\\\-./:<=>?@^~\\\\\\\\]))\", reCaseSensitive = True}), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Prolog\",\"atomic\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"nested_expr\",Context {cName = \"nested_expr\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"nested_expr\")]},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '!', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ',', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '|', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(;|->|\\\\\\\\\\\\+|:-|=|\\\\\\\\=)(?![#$&*+\\\\-./:<=>?@^~\\\\\\\\])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Prolog\",\"arith_expr_common\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"number\",Context {cName = \"number\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"0'\\\\\\\\?$\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"syntax_error_cc\")]},Rule {rMatcher = Detect2Chars '0' '\\'', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"char_code\")]},Rule {rMatcher = Detect2Chars '0' 'b', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"bin\")]},Rule {rMatcher = Detect2Chars '0' 'o', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"oct\")]},Rule {rMatcher = Detect2Chars '0' 'x', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"hex\")]},Rule {rMatcher = RegExpr (RE {reString = \"[0-9]+\\\\.[0-9]+E[+\\\\-]?[0-9]+\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[0-9]+\\\\.[0-9]+\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[0-9]+E[+\\\\-]?[0-9]+\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"oct\",Context {cName = \"oct\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = AnyChar \"01234567\", rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"operator\",Context {cName = \"operator\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"#$%&'()*+,-./:;<=>?[\\\\]^`{|}~\"}) (CaseSensitiveWords (fromList [\"is\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"arith_expr\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !\\\"#$%&'()*+,-./:;<=>?[\\\\]^`{|}~\"}) (CaseSensitiveWords (fromList [\"div\",\"mod\",\"rem\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(;|->|\\\\\\\\\\\\+|:-|=|\\\\\\\\=)(?![#$&*+\\\\-./:<=>?@^~\\\\\\\\])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\?-|==|\\\\\\\\==|@=<|@<|@>=|@>|=\\\\.\\\\.|@|:)(?![#$&*+\\\\-./:<=>?@^~\\\\\\\\])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-->(?![#$&*+\\\\-./:<=>?@^~\\\\\\\\])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(=:=|=\\\\\\\\=|=<|<|>=|>)(?![#$&*+\\\\-./:<=>?@^~\\\\\\\\])\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"arith_expr\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\+|-|\\\\*|\\\\^)(?![#$&*+\\\\-./:<=>?@^~\\\\\\\\])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"//(?![#$&*+\\\\-./:<=>?@^~\\\\\\\\])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(/|\\\\*\\\\*)(?![#$&*+\\\\-./:<=>?@^~\\\\\\\\])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(/\\\\\\\\|\\\\\\\\/|\\\\\\\\|<<|>>)(?![#$&*+\\\\-./:<=>?@^~\\\\\\\\])\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"quoted_1st\",Context {cName = \"quoted_1st\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = LineContinue, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectSpaces, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"quoted_last\",Context {cName = \"quoted_last\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = DetectChar '\\\\', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"esc_seq_q\")]},Rule {rMatcher = DetectChar ' ', rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectSpaces, rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"region_marker\",Context {cName = \"region_marker\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = IncludeRules (\"Prolog\",\"1-comment\"), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = RegionMarkerTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"shebang\",Context {cName = \"shebang\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = Detect2Chars '#' '!', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Prolog\",\"1-comment\")]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"clause\")]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Push (\"Prolog\",\"clause\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"single-quoted\",Context {cName = \"single-quoted\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"'$\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"sq\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"sq\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"sq\",Context {cName = \"sq\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = IncludeRules (\"Prolog\",\"quoted_1st\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(''|\\\\\\\\[0-7]+\\\\\\\\|\\\\\\\\x[a-fA-F0-9]+\\\\\\\\|\\\\\\\\.|[^'\\\\\\\\]+)$\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"syntax_error_sq\")]},Rule {rMatcher = Detect2Chars '\\'' '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Prolog\",\"quoted_last\"), 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}),(\"syntax_error\",Context {cName = \"syntax_error\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectIdentifier, rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"syntax_error_bq\",Context {cName = \"syntax_error_bq\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '`', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '`' '`', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '`', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = IncludeRules (\"Prolog\",\"syntax_error\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"syntax_error_cc\",Context {cName = \"syntax_error_cc\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"syntax_error_dq\",Context {cName = \"syntax_error_dq\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\"', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '\"' '\"', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\"', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = IncludeRules (\"Prolog\",\"syntax_error\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"syntax_error_sq\",Context {cName = \"syntax_error_sq\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\\'', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '\\'' '\\'', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\\'', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = IncludeRules (\"Prolog\",\"syntax_error\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"term\",Context {cName = \"term\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = IncludeRules (\"Prolog\",\"layout\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"nested\")]},Rule {rMatcher = DetectChar '[', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"list\")]},Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"curly\")]},Rule {rMatcher = DetectChar ',', rAttribute = KeywordTok, 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 = []},Rule {rMatcher = DetectChar '|', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '.' '(', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Prolog\",\"list_functor\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.(?!(\\\\(|[#$&*+\\\\-./:<=>?@^~\\\\\\\\]))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Prolog\",\"atomic\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"var\",Context {cName = \"var\", cSyntax = \"Prolog\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Torsten Eichst\\228dt (torsten.eichstaedt@web.de)\", sVersion = \"3\", sLicense = \"LGPLv2+\", sExtensions = [\"*.prolog\",\"*.dcg\",\"*.pro\"], sStartingContext = \"shebang\"}"
diff --git a/src/Skylighting/Syntax/Pure.hs b/src/Skylighting/Syntax/Pure.hs
--- a/src/Skylighting/Syntax/Pure.hs
+++ b/src/Skylighting/Syntax/Pure.hs
@@ -2,406 +2,6 @@
 module Skylighting.Syntax.Pure (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Pure"
-  , sFilename = "pure.xml"
-  , sShortname = "Pure"
-  , sContexts =
-      fromList
-        [ ( "Comment1"
-          , Context
-              { cName = "Comment1"
-              , cSyntax = "Pure"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment2"
-          , Context
-              { cName = "Comment2"
-              , cSyntax = "Pure"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Pure"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "case" , "when" , "with" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "end" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "const"
-                               , "def"
-                               , "else"
-                               , "extern"
-                               , "if"
-                               , "infix"
-                               , "infixl"
-                               , "infixr"
-                               , "interface"
-                               , "let"
-                               , "namespace"
-                               , "nonfix"
-                               , "of"
-                               , "otherwise"
-                               , "outfix"
-                               , "postfix"
-                               , "prefix"
-                               , "private"
-                               , "public"
-                               , "then"
-                               , "type"
-                               , "using"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True [ "__break__" , "__trace__" , "catch" , "throw" ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "bigint"
-                               , "bool"
-                               , "char"
-                               , "cmatrix"
-                               , "dmatrix"
-                               , "double"
-                               , "expr"
-                               , "float"
-                               , "imatrix"
-                               , "int"
-                               , "int16"
-                               , "int32"
-                               , "int64"
-                               , "int8"
-                               , "long"
-                               , "matrix"
-                               , "nmatrix"
-                               , "pointer"
-                               , "short"
-                               , "smatrix"
-                               , "string"
-                               , "void"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Za-z_][A-Za-z0-9_]*"
-                              , reCompiled = Just (compileRegex True "[A-Za-z_][A-Za-z0-9_]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "0x[A-Za-z0-9]+"
-                              , reCompiled = Just (compileRegex True "0x[A-Za-z0-9]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Pure" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Pure" , "Comment1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Pure" , "Comment2" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Region Marker"
-          , Context
-              { cName = "Region Marker"
-              , cSyntax = "Pure"
-              , cRules = []
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Pure"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = ""
-  , sVersion = "1.2"
-  , sLicense = ""
-  , sExtensions = [ "*.pure" ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"Pure\", sFilename = \"pure.xml\", sShortname = \"Pure\", sContexts = fromList [(\"Comment1\",Context {cName = \"Comment1\", cSyntax = \"Pure\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment2\",Context {cName = \"Comment2\", cSyntax = \"Pure\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Pure\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"case\",\"when\",\"with\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"end\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"const\",\"def\",\"else\",\"extern\",\"if\",\"infix\",\"infixl\",\"infixr\",\"interface\",\"let\",\"namespace\",\"nonfix\",\"of\",\"otherwise\",\"outfix\",\"postfix\",\"prefix\",\"private\",\"public\",\"then\",\"type\",\"using\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"__break__\",\"__trace__\",\"catch\",\"throw\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"bigint\",\"bool\",\"char\",\"cmatrix\",\"dmatrix\",\"double\",\"expr\",\"float\",\"imatrix\",\"int\",\"int16\",\"int32\",\"int64\",\"int8\",\"long\",\"matrix\",\"nmatrix\",\"pointer\",\"short\",\"smatrix\",\"string\",\"void\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[A-Za-z_][A-Za-z0-9_]*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"0x[A-Za-z0-9]+\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCChar, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Pure\",\"String\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Pure\",\"Comment1\")]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Pure\",\"Comment2\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Region Marker\",Context {cName = \"Region Marker\", cSyntax = \"Pure\", cRules = [], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Pure\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCStringChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"\", sVersion = \"1.2\", sLicense = \"\", sExtensions = [\"*.pure\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Purebasic.hs b/src/Skylighting/Syntax/Purebasic.hs
--- a/src/Skylighting/Syntax/Purebasic.hs
+++ b/src/Skylighting/Syntax/Purebasic.hs
@@ -2,2412 +2,6 @@
 module Skylighting.Syntax.Purebasic (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "PureBasic"
-  , sFilename = "purebasic.xml"
-  , sShortname = "Purebasic"
-  , sContexts =
-      fromList
-        [ ( "Comment1"
-          , Context
-              { cName = "Comment1"
-              , cSyntax = "PureBasic"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [])
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "PureBasic"
-              , cRules =
-                  [ Rule
-                      { rMatcher = AnyChar "-+*/%|=!<>!^&~"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ",.:()[]\\"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(if)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(if)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(endif)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(endif)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(while)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(while)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(wend)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(wend)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(repeat)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(repeat)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(until)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(until)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(select)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(select)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(endselect)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(endselect)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(for|foreach)([\\s]|$)"
-                              , reCompiled =
-                                  Just (compileRegex False "\\b(for|foreach)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(next)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(next)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(procedure|proceduredll)([.\\s]|$)"
-                              , reCompiled =
-                                  Just (compileRegex False "\\b(procedure|proceduredll)([.\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(endprocedure)([\\s]|$)"
-                              , reCompiled =
-                                  Just (compileRegex False "\\b(endprocedure)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(structure)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(structure)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(endstructure)([\\s]|$)"
-                              , reCompiled =
-                                  Just (compileRegex False "\\b(endstructure)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(interface)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(interface)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(endinterface)([\\s]|$)"
-                              , reCompiled =
-                                  Just (compileRegex False "\\b(endinterface)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(enumeration)([\\s]|$)"
-                              , reCompiled =
-                                  Just (compileRegex False "\\b(enumeration)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(endenumeration)([\\s]|$)"
-                              , reCompiled =
-                                  Just (compileRegex False "\\b(endenumeration)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(datasection)([\\s]|$)"
-                              , reCompiled =
-                                  Just (compileRegex False "\\b(datasection)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(enddatasection)([\\s]|$)"
-                              , reCompiled =
-                                  Just (compileRegex False "\\b(enddatasection)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "Break"
-                               , "Case"
-                               , "Continue"
-                               , "Data"
-                               , "DataSection"
-                               , "Declare"
-                               , "DeclareModule"
-                               , "Default"
-                               , "DefType"
-                               , "Dim"
-                               , "Else"
-                               , "ElseIf"
-                               , "End"
-                               , "EndDataSection"
-                               , "EndDeclareModule"
-                               , "EndEnumeration"
-                               , "EndIf"
-                               , "EndInterface"
-                               , "EndModule"
-                               , "EndProcedure"
-                               , "EndSelect"
-                               , "EndStructure"
-                               , "Enumeration"
-                               , "Extends"
-                               , "FakeReturn"
-                               , "For"
-                               , "ForEach"
-                               , "Global"
-                               , "Gosub"
-                               , "Goto"
-                               , "If"
-                               , "IncludeBinary"
-                               , "IncludeFile"
-                               , "IncludePath"
-                               , "Interface"
-                               , "Module"
-                               , "NewList"
-                               , "Next"
-                               , "Procedure"
-                               , "ProcedureDLL"
-                               , "ProcedureReturn"
-                               , "Protected"
-                               , "Read"
-                               , "Repeat"
-                               , "Restore"
-                               , "Return"
-                               , "Select"
-                               , "Shared"
-                               , "Static"
-                               , "Step"
-                               , "Structure"
-                               , "To"
-                               , "Until"
-                               , "UnuseModule"
-                               , "UseModule"
-                               , "Wend"
-                               , "While"
-                               , "With"
-                               , "XIncludeFile"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(compilerif)([\\s]|$)"
-                              , reCompiled = Just (compileRegex False "\\b(compilerif)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(compilerendif)([\\s]|$)"
-                              , reCompiled =
-                                  Just (compileRegex False "\\b(compilerendif)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(compilerselect)([\\s]|$)"
-                              , reCompiled =
-                                  Just (compileRegex False "\\b(compilerselect)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(compilerendselect)([\\s]|$)"
-                              , reCompiled =
-                                  Just (compileRegex False "\\b(compilerendselect)([\\s]|$)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "CompilerCase"
-                               , "CompilerDefault"
-                               , "CompilerElse"
-                               , "CompilerEndIf"
-                               , "CompilerEndSelect"
-                               , "CompilerIf"
-                               , "CompilerSelect"
-                               ])
-                      , rAttribute = KeywordTok
-                      , 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
-                               [ "AbortFTPFile"
-                               , "Abs"
-                               , "ACos"
-                               , "ACosH"
-                               , "Add3DArchive"
-                               , "AddBillboard"
-                               , "AddCipherBuffer"
-                               , "AddDate"
-                               , "AddElement"
-                               , "AddEntityAnimationTime"
-                               , "AddGadgetColumn"
-                               , "AddGadgetItem"
-                               , "AddGadgetItem3D"
-                               , "AddJSONElement"
-                               , "AddJSONMember"
-                               , "AddKeyboardShortcut"
-                               , "AddMailAttachment"
-                               , "AddMailAttachmentData"
-                               , "AddMailRecipient"
-                               , "AddMapElement"
-                               , "AddMaterialLayer"
-                               , "AddNodeAnimationTime"
-                               , "AddPackFile"
-                               , "AddPackMemory"
-                               , "AddSplinePoint"
-                               , "AddStaticGeometryEntity"
-                               , "AddStatusBarField"
-                               , "AddSubMesh"
-                               , "AddSysTrayIcon"
-                               , "AddTerrainTexture"
-                               , "AddVertexPoseReference"
-                               , "AddWindowTimer"
-                               , "AESDecoder"
-                               , "AESEncoder"
-                               , "AffectedDatabaseRows"
-                               , "AllocateMemory"
-                               , "AllocateStructure"
-                               , "Alpha"
-                               , "AlphaBlend"
-                               , "AmbientColor"
-                               , "AntialiasingMode"
-                               , "ApplyEntityForce"
-                               , "ApplyEntityImpulse"
-                               , "ArraySize"
-                               , "Asc"
-                               , "ASin"
-                               , "ASinH"
-                               , "ATan"
-                               , "ATan2"
-                               , "ATanH"
-                               , "AttachEntityObject"
-                               , "AttachNodeObject"
-                               , "AttachRibbonEffect"
-                               , "AudioCDLength"
-                               , "AudioCDName"
-                               , "AudioCDStatus"
-                               , "AudioCDTrackLength"
-                               , "AudioCDTracks"
-                               , "AudioCDTrackSeconds"
-                               , "AvailableProgramOutput"
-                               , "AvailableScreenMemory"
-                               , "AvailableSerialPortInput"
-                               , "AvailableSerialPortOutput"
-                               , "BackColor"
-                               , "Base64Decoder"
-                               , "Base64Encoder"
-                               , "BillboardGroupCommonDirection"
-                               , "BillboardGroupCommonUpVector"
-                               , "BillboardGroupID"
-                               , "BillboardGroupMaterial"
-                               , "BillboardGroupX"
-                               , "BillboardGroupY"
-                               , "BillboardGroupZ"
-                               , "BillboardHeight"
-                               , "BillboardLocate"
-                               , "BillboardWidth"
-                               , "BillboardX"
-                               , "BillboardY"
-                               , "BillboardZ"
-                               , "Bin"
-                               , "BindEvent"
-                               , "BindGadgetEvent"
-                               , "BindMenuEvent"
-                               , "Blue"
-                               , "Box"
-                               , "BoxedGradient"
-                               , "BuildMeshShadowVolume"
-                               , "BuildMeshTangents"
-                               , "BuildStaticGeometry"
-                               , "BuildTerrain"
-                               , "ButtonGadget"
-                               , "ButtonGadget3D"
-                               , "ButtonImageGadget"
-                               , "CalendarGadget"
-                               , "CallCFunction"
-                               , "CallCFunctionFast"
-                               , "CallFunction"
-                               , "CallFunctionFast"
-                               , "CameraBackColor"
-                               , "CameraDirection"
-                               , "CameraDirectionX"
-                               , "CameraDirectionY"
-                               , "CameraDirectionZ"
-                               , "CameraFixedYawAxis"
-                               , "CameraFollow"
-                               , "CameraFOV"
-                               , "CameraID"
-                               , "CameraLookAt"
-                               , "CameraPitch"
-                               , "CameraProjectionMode"
-                               , "CameraProjectionX"
-                               , "CameraProjectionY"
-                               , "CameraRange"
-                               , "CameraRenderMode"
-                               , "CameraRoll"
-                               , "CameraViewHeight"
-                               , "CameraViewWidth"
-                               , "CameraViewX"
-                               , "CameraViewY"
-                               , "CameraX"
-                               , "CameraY"
-                               , "CameraYaw"
-                               , "CameraZ"
-                               , "CanvasGadget"
-                               , "CanvasOutput"
-                               , "CatchImage"
-                               , "CatchJSON"
-                               , "CatchMusic"
-                               , "CatchSound"
-                               , "CatchSprite"
-                               , "CatchXML"
-                               , "ChangeCurrentElement"
-                               , "ChangeGamma"
-                               , "ChangeListIconGadgetDisplay"
-                               , "ChangeSysTrayIcon"
-                               , "CheckBoxGadget"
-                               , "CheckBoxGadget3D"
-                               , "CheckDatabaseNull"
-                               , "CheckFilename"
-                               , "CheckFTPConnection"
-                               , "CheckObjectVisibility"
-                               , "ChildXMLNode"
-                               , "Chr"
-                               , "Circle"
-                               , "CircularGradient"
-                               , "ClearBillboards"
-                               , "ClearClipboard"
-                               , "ClearConsole"
-                               , "ClearDebugOutput"
-                               , "ClearGadgetItemList"
-                               , "ClearGadgetItems"
-                               , "ClearGadgetItems3D"
-                               , "ClearJSONElements"
-                               , "ClearJSONMembers"
-                               , "ClearList"
-                               , "ClearMap"
-                               , "ClearScreen"
-                               , "ClearSpline"
-                               , "ClipOutput"
-                               , "ClipSprite"
-                               , "CloseConsole"
-                               , "CloseCryptRandom"
-                               , "CloseDatabase"
-                               , "CloseFile"
-                               , "CloseFTP"
-                               , "CloseGadgetList"
-                               , "CloseGadgetList3D"
-                               , "CloseHelp"
-                               , "CloseLibrary"
-                               , "CloseNetworkConnection"
-                               , "CloseNetworkServer"
-                               , "ClosePack"
-                               , "ClosePreferences"
-                               , "CloseProgram"
-                               , "CloseScreen"
-                               , "CloseSerialPort"
-                               , "CloseSubMenu"
-                               , "CloseWindow"
-                               , "CloseWindow3D"
-                               , "CocoaMessage"
-                               , "ColorRequester"
-                               , "ComboBoxGadget"
-                               , "ComboBoxGadget3D"
-                               , "CompareMemory"
-                               , "CompareMemoryString"
-                               , "ComposeJSON"
-                               , "ComposeXML"
-                               , "CompositorEffectParameter"
-                               , "CompressMemory"
-                               , "ComputerName"
-                               , "ComputeSpline"
-                               , "ConeTwistJoint"
-                               , "ConicalGradient"
-                               , "ConnectionID"
-                               , "ConsoleColor"
-                               , "ConsoleCursor"
-                               , "ConsoleError"
-                               , "ConsoleLocate"
-                               , "ConsoleTitle"
-                               , "ContainerGadget"
-                               , "ContainerGadget3D"
-                               , "ConvertLocalToWorldPosition"
-                               , "ConvertWorldToLocalPosition"
-                               , "CopyArray"
-                               , "CopyDirectory"
-                               , "CopyEntity"
-                               , "CopyFile"
-                               , "CopyImage"
-                               , "CopyLight"
-                               , "CopyList"
-                               , "CopyMap"
-                               , "CopyMaterial"
-                               , "CopyMemory"
-                               , "CopyMemoryString"
-                               , "CopyMesh"
-                               , "CopySprite"
-                               , "CopyTexture"
-                               , "CopyXMLNode"
-                               , "Cos"
-                               , "CosH"
-                               , "CountBillboards"
-                               , "CountCPUs"
-                               , "CountGadgetItems"
-                               , "CountGadgetItems3D"
-                               , "CountLibraryFunctions"
-                               , "CountList"
-                               , "CountMaterialLayers"
-                               , "CountProgramParameters"
-                               , "CountRegularExpressionGroups"
-                               , "CountSplinePoints"
-                               , "CountString"
-                               , "CPUName"
-                               , "CRC32FileFingerprint"
-                               , "CRC32Fingerprint"
-                               , "CreateBillboardGroup"
-                               , "CreateCamera"
-                               , "CreateCompositorEffect"
-                               , "CreateCube"
-                               , "CreateCubeMapTexture"
-                               , "CreateCylinder"
-                               , "CreateDialog"
-                               , "CreateDirectory"
-                               , "CreateEntity"
-                               , "CreateFile"
-                               , "CreateFTPDirectory"
-                               , "CreateGadgetList"
-                               , "CreateImage"
-                               , "CreateImageMenu"
-                               , "CreateJSON"
-                               , "CreateLensFlareEffect"
-                               , "CreateLight"
-                               , "CreateLine3D"
-                               , "CreateMail"
-                               , "CreateMaterial"
-                               , "CreateMenu"
-                               , "CreateMesh"
-                               , "CreateMutex"
-                               , "CreateNetworkServer"
-                               , "CreateNode"
-                               , "CreateNodeAnimation"
-                               , "CreateNodeAnimationKeyFrame"
-                               , "CreatePack"
-                               , "CreateParticleEmitter"
-                               , "CreatePlane"
-                               , "CreatePopupImageMenu"
-                               , "CreatePopupMenu"
-                               , "CreatePreferences"
-                               , "CreateRegularExpression"
-                               , "CreateRenderTexture"
-                               , "CreateRibbonEffect"
-                               , "CreateSemaphore"
-                               , "CreateSphere"
-                               , "CreateSpline"
-                               , "CreateSprite"
-                               , "CreateStaticGeometry"
-                               , "CreateStatusBar"
-                               , "CreateTerrain"
-                               , "CreateText3D"
-                               , "CreateTexture"
-                               , "CreateThread"
-                               , "CreateToolBar"
-                               , "CreateVertexAnimation"
-                               , "CreateVertexPoseKeyFrame"
-                               , "CreateVertexTrack"
-                               , "CreateWater"
-                               , "CreateXML"
-                               , "CreateXMLNode"
-                               , "CryptRandom"
-                               , "CryptRandomData"
-                               , "CustomFilterCallback"
-                               , "CustomGradient"
-                               , "DatabaseColumnIndex"
-                               , "DatabaseColumnName"
-                               , "DatabaseColumns"
-                               , "DatabaseColumnSize"
-                               , "DatabaseColumnType"
-                               , "DatabaseDriverDescription"
-                               , "DatabaseDriverName"
-                               , "DatabaseError"
-                               , "DatabaseID"
-                               , "DatabaseQuery"
-                               , "DatabaseUpdate"
-                               , "Date"
-                               , "DateGadget"
-                               , "Day"
-                               , "DayOfWeek"
-                               , "DayOfYear"
-                               , "DefaultPrinter"
-                               , "DefineTerrainTile"
-                               , "Degree"
-                               , "Delay"
-                               , "DeleteDirectory"
-                               , "DeleteElement"
-                               , "DeleteFile"
-                               , "DeleteFTPDirectory"
-                               , "DeleteFTPFile"
-                               , "DeleteMapElement"
-                               , "DeleteXMLNode"
-                               , "DESFingerprint"
-                               , "DesktopDepth"
-                               , "DesktopFrequency"
-                               , "DesktopHeight"
-                               , "DesktopMouseX"
-                               , "DesktopMouseY"
-                               , "DesktopName"
-                               , "DesktopWidth"
-                               , "DesktopX"
-                               , "DesktopY"
-                               , "DetachEntityObject"
-                               , "DetachNodeObject"
-                               , "DetachRibbonEffect"
-                               , "DialogError"
-                               , "DialogGadget"
-                               , "DialogID"
-                               , "DialogWindow"
-                               , "DirectoryEntryAttributes"
-                               , "DirectoryEntryDate"
-                               , "DirectoryEntryName"
-                               , "DirectoryEntrySize"
-                               , "DirectoryEntryType"
-                               , "DisableEntityBody"
-                               , "DisableGadget"
-                               , "DisableGadget3D"
-                               , "DisableLightShadows"
-                               , "DisableMaterialLighting"
-                               , "DisableMenuItem"
-                               , "DisableParticleEmitter"
-                               , "DisableToolBarButton"
-                               , "DisableWindow"
-                               , "DisableWindow3D"
-                               , "DisplayPopupMenu"
-                               , "DisplaySprite"
-                               , "DisplayTransparentSprite"
-                               , "DoubleClickTime"
-                               , "DragFiles"
-                               , "DragImage"
-                               , "DragOSFormats"
-                               , "DragPrivate"
-                               , "DragText"
-                               , "DrawAlphaImage"
-                               , "DrawImage"
-                               , "DrawingBuffer"
-                               , "DrawingBufferPitch"
-                               , "DrawingBufferPixelFormat"
-                               , "DrawingFont"
-                               , "DrawingMode"
-                               , "DrawRotatedText"
-                               , "DrawText"
-                               , "EditorGadget"
-                               , "EditorGadget3D"
-                               , "EjectAudioCD"
-                               , "ElapsedMilliseconds"
-                               , "Ellipse"
-                               , "EllipticalGradient"
-                               , "EnableGadgetDrop"
-                               , "EnableGraphicalConsole"
-                               , "EnableHingeJointAngularMotor"
-                               , "EnableManualEntityBoneControl"
-                               , "EnableWindowDrop"
-                               , "EnableWorldCollisions"
-                               , "EnableWorldPhysics"
-                               , "EncodeImage"
-                               , "Engine3DStatus"
-                               , "EntityAngularFactor"
-                               , "EntityAnimationBlendMode"
-                               , "EntityAnimationStatus"
-                               , "EntityBonePitch"
-                               , "EntityBoneRoll"
-                               , "EntityBoneX"
-                               , "EntityBoneY"
-                               , "EntityBoneYaw"
-                               , "EntityBoneZ"
-                               , "EntityBoundingBox"
-                               , "EntityCollide"
-                               , "EntityCubeMapTexture"
-                               , "EntityCustomParameter"
-                               , "EntityFixedYawAxis"
-                               , "EntityID"
-                               , "EntityLinearFactor"
-                               , "EntityLookAt"
-                               , "EntityParentNode"
-                               , "EntityPhysicBody"
-                               , "EntityPitch"
-                               , "EntityRenderMode"
-                               , "EntityRoll"
-                               , "EntityVelocity"
-                               , "EntityX"
-                               , "EntityY"
-                               , "EntityYaw"
-                               , "EntityZ"
-                               , "EnvironmentVariableName"
-                               , "EnvironmentVariableValue"
-                               , "Eof"
-                               , "ErrorAddress"
-                               , "ErrorCode"
-                               , "ErrorFile"
-                               , "ErrorLine"
-                               , "ErrorMessage"
-                               , "ErrorRegister"
-                               , "ErrorTargetAddress"
-                               , "EventClient"
-                               , "EventData"
-                               , "EventDropAction"
-                               , "EventDropBuffer"
-                               , "EventDropFiles"
-                               , "EventDropImage"
-                               , "EventDropPrivate"
-                               , "EventDropSize"
-                               , "EventDropText"
-                               , "EventDropType"
-                               , "EventDropX"
-                               , "EventDropY"
-                               , "EventGadget"
-                               , "EventGadget3D"
-                               , "EventlParam"
-                               , "EventMenu"
-                               , "EventServer"
-                               , "EventTimer"
-                               , "EventType"
-                               , "EventType3D"
-                               , "EventWindow"
-                               , "EventWindow3D"
-                               , "EventwParam"
-                               , "ExamineAssembly"
-                               , "ExamineDatabaseDrivers"
-                               , "ExamineDesktops"
-                               , "ExamineDirectory"
-                               , "ExamineEnvironmentVariables"
-                               , "ExamineFTPDirectory"
-                               , "ExamineIPAddresses"
-                               , "ExamineJoystick"
-                               , "ExamineJSONMembers"
-                               , "ExamineKeyboard"
-                               , "ExamineLibraryFunctions"
-                               , "ExamineMD5Fingerprint"
-                               , "ExamineMouse"
-                               , "ExaminePack"
-                               , "ExaminePreferenceGroups"
-                               , "ExaminePreferenceKeys"
-                               , "ExamineRegularExpression"
-                               , "ExamineScreenModes"
-                               , "ExamineSHA1Fingerprint"
-                               , "ExamineWorldCollisions"
-                               , "ExamineXMLAttributes"
-                               , "Exp"
-                               , "ExplorerComboGadget"
-                               , "ExplorerListGadget"
-                               , "ExplorerTreeGadget"
-                               , "ExportJSON"
-                               , "ExportJSONSize"
-                               , "ExportXML"
-                               , "ExportXMLSize"
-                               , "ExtractJSONArray"
-                               , "ExtractJSONList"
-                               , "ExtractJSONMap"
-                               , "ExtractJSONStructure"
-                               , "ExtractRegularExpression"
-                               , "ExtractXMLArray"
-                               , "ExtractXMLList"
-                               , "ExtractXMLMap"
-                               , "ExtractXMLStructure"
-                               , "FetchEntityMaterial"
-                               , "FetchOrientation"
-                               , "FileBuffersSize"
-                               , "FileID"
-                               , "FileSeek"
-                               , "FileSize"
-                               , "FillArea"
-                               , "FillMemory"
-                               , "FindMapElement"
-                               , "FindString"
-                               , "FinishCipher"
-                               , "FinishDatabaseQuery"
-                               , "FinishDirectory"
-                               , "FinishFingerprint"
-                               , "FinishFTPDirectory"
-                               , "FinishMesh"
-                               , "FirstDatabaseRow"
-                               , "FirstElement"
-                               , "FirstWorldCollisionEntity"
-                               , "FlipBuffers"
-                               , "FlushFileBuffers"
-                               , "Fog"
-                               , "FontID"
-                               , "FontRequester"
-                               , "FormatDate"
-                               , "FormatXML"
-                               , "FrameGadget"
-                               , "FrameGadget3D"
-                               , "FreeArray"
-                               , "FreeBillboardGroup"
-                               , "FreeCamera"
-                               , "FreeDialog"
-                               , "FreeEffect"
-                               , "FreeEntity"
-                               , "FreeEntityJoints"
-                               , "FreeFont"
-                               , "FreeGadget"
-                               , "FreeGadget3D"
-                               , "FreeImage"
-                               , "FreeIP"
-                               , "FreeJoint"
-                               , "FreeJSON"
-                               , "FreeLight"
-                               , "FreeList"
-                               , "FreeMail"
-                               , "FreeMap"
-                               , "FreeMaterial"
-                               , "FreeMemory"
-                               , "FreeMenu"
-                               , "FreeMesh"
-                               , "FreeMovie"
-                               , "FreeMusic"
-                               , "FreeMutex"
-                               , "FreeNode"
-                               , "FreeNodeAnimation"
-                               , "FreeParticleEmitter"
-                               , "FreeRegularExpression"
-                               , "FreeSemaphore"
-                               , "FreeSound"
-                               , "FreeSound3D"
-                               , "FreeSpline"
-                               , "FreeSprite"
-                               , "FreeStaticGeometry"
-                               , "FreeStatusBar"
-                               , "FreeStructure"
-                               , "FreeTerrain"
-                               , "FreeText3D"
-                               , "FreeTexture"
-                               , "FreeToolBar"
-                               , "FreeWater"
-                               , "FreeXML"
-                               , "FrontColor"
-                               , "FTPDirectoryEntryAttributes"
-                               , "FTPDirectoryEntryDate"
-                               , "FTPDirectoryEntryName"
-                               , "FTPDirectoryEntryRaw"
-                               , "FTPDirectoryEntrySize"
-                               , "FTPDirectoryEntryType"
-                               , "FTPProgress"
-                               , "GadgetHeight"
-                               , "GadgetHeight3D"
-                               , "GadgetID"
-                               , "GadgetID3D"
-                               , "GadgetItemID"
-                               , "GadgetToolTip"
-                               , "GadgetToolTip3D"
-                               , "GadgetType"
-                               , "GadgetType3D"
-                               , "GadgetWidth"
-                               , "GadgetWidth3D"
-                               , "GadgetX"
-                               , "GadgetX3D"
-                               , "GadgetY"
-                               , "GadgetY3D"
-                               , "GetActiveGadget"
-                               , "GetActiveGadget3D"
-                               , "GetActiveWindow"
-                               , "GetActiveWindow3D"
-                               , "GetClientIP"
-                               , "GetClientPort"
-                               , "GetClipboardImage"
-                               , "GetClipboardText"
-                               , "GetCurrentDirectory"
-                               , "GetDatabaseBlob"
-                               , "GetDatabaseDouble"
-                               , "GetDatabaseFloat"
-                               , "GetDatabaseLong"
-                               , "GetDatabaseQuad"
-                               , "GetDatabaseString"
-                               , "GetEntityAnimationLength"
-                               , "GetEntityAnimationTime"
-                               , "GetEntityAnimationWeight"
-                               , "GetEntityAttribute"
-                               , "GetEntityCollisionGroup"
-                               , "GetEntityCollisionMask"
-                               , "GetEnvironmentVariable"
-                               , "GetExtensionPart"
-                               , "GetFileAttributes"
-                               , "GetFileDate"
-                               , "GetFilePart"
-                               , "GetFTPDirectory"
-                               , "GetFunction"
-                               , "GetFunctionEntry"
-                               , "GetGadgetAttribute"
-                               , "GetGadgetAttribute3D"
-                               , "GetGadgetColor"
-                               , "GetGadgetData"
-                               , "GetGadgetData3D"
-                               , "GetGadgetFont"
-                               , "GetGadgetItemAttribute"
-                               , "GetGadgetItemColor"
-                               , "GetGadgetItemData"
-                               , "GetGadgetItemData3D"
-                               , "GetGadgetItemState"
-                               , "GetGadgetItemState3D"
-                               , "GetGadgetItemText"
-                               , "GetGadgetItemText3D"
-                               , "GetGadgetState"
-                               , "GetGadgetState3D"
-                               , "GetGadgetText"
-                               , "GetGadgetText3D"
-                               , "GetHomeDirectory"
-                               , "GetHTTPHeader"
-                               , "GetJointAttribute"
-                               , "GetJSONBoolean"
-                               , "GetJSONDouble"
-                               , "GetJSONElement"
-                               , "GetJSONFloat"
-                               , "GetJSONInteger"
-                               , "GetJSONMember"
-                               , "GetJSONQuad"
-                               , "GetJSONString"
-                               , "GetLightColor"
-                               , "GetMailAttribute"
-                               , "GetMailBody"
-                               , "GetMaterialAttribute"
-                               , "GetMaterialColor"
-                               , "GetMenuItemState"
-                               , "GetMenuItemText"
-                               , "GetMenuTitleText"
-                               , "GetMeshData"
-                               , "GetMusicPosition"
-                               , "GetMusicRow"
-                               , "GetNodeAnimationKeyFrameTime"
-                               , "GetNodeAnimationLength"
-                               , "GetNodeAnimationTime"
-                               , "GetNodeAnimationWeight"
-                               , "GetOriginX"
-                               , "GetOriginY"
-                               , "GetPathPart"
-                               , "GetRuntimeDouble"
-                               , "GetRuntimeInteger"
-                               , "GetRuntimeString"
-                               , "GetScriptMaterial"
-                               , "GetScriptParticleEmitter"
-                               , "GetScriptTexture"
-                               , "GetSerialPortStatus"
-                               , "GetSoundFrequency"
-                               , "GetSoundPosition"
-                               , "GetTemporaryDirectory"
-                               , "GetTerrainTileHeightAtPoint"
-                               , "GetTerrainTileLayerBlend"
-                               , "GetToolBarButtonState"
-                               , "GetURLPart"
-                               , "GetW"
-                               , "GetWindowColor"
-                               , "GetWindowData"
-                               , "GetWindowState"
-                               , "GetWindowTitle"
-                               , "GetWindowTitle3D"
-                               , "GetX"
-                               , "GetXMLAttribute"
-                               , "GetXMLEncoding"
-                               , "GetXMLNodeName"
-                               , "GetXMLNodeOffset"
-                               , "GetXMLNodeText"
-                               , "GetXMLStandalone"
-                               , "GetY"
-                               , "GetZ"
-                               , "GrabDrawingImage"
-                               , "GrabImage"
-                               , "GrabSprite"
-                               , "GradientColor"
-                               , "Green"
-                               , "Hex"
-                               , "HideBillboardGroup"
-                               , "HideEffect"
-                               , "HideEntity"
-                               , "HideGadget"
-                               , "HideGadget3D"
-                               , "HideLight"
-                               , "HideMenu"
-                               , "HideParticleEmitter"
-                               , "HideWindow"
-                               , "HideWindow3D"
-                               , "HingeJoint"
-                               , "HingeJointMotorTarget"
-                               , "HostName"
-                               , "Hour"
-                               , "HyperLinkGadget"
-                               , "ImageDepth"
-                               , "ImageFormat"
-                               , "ImageGadget"
-                               , "ImageGadget3D"
-                               , "ImageHeight"
-                               , "ImageID"
-                               , "ImageOutput"
-                               , "ImageWidth"
-                               , "Infinity"
-                               , "InitAudioCD"
-                               , "InitEngine3D"
-                               , "InitJoystick"
-                               , "InitKeyboard"
-                               , "InitMouse"
-                               , "InitMovie"
-                               , "InitNetwork"
-                               , "InitScintilla"
-                               , "InitSound"
-                               , "InitSprite"
-                               , "Inkey"
-                               , "Input"
-                               , "InputEvent3D"
-                               , "InputRequester"
-                               , "InsertElement"
-                               , "InsertJSONArray"
-                               , "InsertJSONList"
-                               , "InsertJSONMap"
-                               , "InsertJSONStructure"
-                               , "InsertString"
-                               , "InsertXMLArray"
-                               , "InsertXMLList"
-                               , "InsertXMLMap"
-                               , "InsertXMLStructure"
-                               , "InstructionAddress"
-                               , "InstructionString"
-                               , "Int"
-                               , "IntQ"
-                               , "IPAddressField"
-                               , "IPAddressGadget"
-                               , "IPString"
-                               , "IsBillboardGroup"
-                               , "IsCamera"
-                               , "IsDatabase"
-                               , "IsDialog"
-                               , "IsDirectory"
-                               , "IsEffect"
-                               , "IsEntity"
-                               , "IsFile"
-                               , "IsFingerprint"
-                               , "IsFont"
-                               , "IsFtp"
-                               , "IsGadget"
-                               , "IsGadget3D"
-                               , "IsImage"
-                               , "IsInfinity"
-                               , "IsJSON"
-                               , "IsLibrary"
-                               , "IsLight"
-                               , "IsMail"
-                               , "IsMaterial"
-                               , "IsMenu"
-                               , "IsMesh"
-                               , "IsMovie"
-                               , "IsMusic"
-                               , "IsNaN"
-                               , "IsNode"
-                               , "IsParticleEmitter"
-                               , "IsProgram"
-                               , "IsRegularExpression"
-                               , "IsRuntime"
-                               , "IsScreenActive"
-                               , "IsSerialPort"
-                               , "IsSound"
-                               , "IsSound3D"
-                               , "IsSprite"
-                               , "IsStaticGeometry"
-                               , "IsStatusBar"
-                               , "IsSysTrayIcon"
-                               , "IsText3D"
-                               , "IsTexture"
-                               , "IsThread"
-                               , "IsToolBar"
-                               , "IsWindow"
-                               , "IsWindow3D"
-                               , "IsXML"
-                               , "JoystickAxisX"
-                               , "JoystickAxisY"
-                               , "JoystickAxisZ"
-                               , "JoystickButton"
-                               , "JoystickName"
-                               , "JSONArraySize"
-                               , "JSONErrorLine"
-                               , "JSONErrorMessage"
-                               , "JSONErrorPosition"
-                               , "JSONMemberKey"
-                               , "JSONMemberValue"
-                               , "JSONObjectSize"
-                               , "JSONType"
-                               , "JSONValue"
-                               , "KeyboardInkey"
-                               , "KeyboardMode"
-                               , "KeyboardPushed"
-                               , "KeyboardReleased"
-                               , "KillProgram"
-                               , "KillThread"
-                               , "LastElement"
-                               , "LCase"
-                               , "Left"
-                               , "Len"
-                               , "LensFlareEffectColor"
-                               , "LibraryFunctionAddress"
-                               , "LibraryFunctionName"
-                               , "LibraryID"
-                               , "LightAttenuation"
-                               , "LightDirection"
-                               , "LightDirectionX"
-                               , "LightDirectionY"
-                               , "LightDirectionZ"
-                               , "LightID"
-                               , "LightLookAt"
-                               , "LightPitch"
-                               , "LightRoll"
-                               , "LightX"
-                               , "LightY"
-                               , "LightYaw"
-                               , "LightZ"
-                               , "Line"
-                               , "LinearGradient"
-                               , "LineXY"
-                               , "ListIconGadget"
-                               , "ListIndex"
-                               , "ListSize"
-                               , "ListViewGadget"
-                               , "ListViewGadget3D"
-                               , "LoadFont"
-                               , "LoadImage"
-                               , "LoadJSON"
-                               , "LoadMesh"
-                               , "LoadMovie"
-                               , "LoadMusic"
-                               , "LoadSound"
-                               , "LoadSound3D"
-                               , "LoadSprite"
-                               , "LoadTexture"
-                               , "LoadWorld"
-                               , "LoadXML"
-                               , "Loc"
-                               , "LockMutex"
-                               , "Lof"
-                               , "Log"
-                               , "Log10"
-                               , "LSet"
-                               , "LTrim"
-                               , "MailProgress"
-                               , "MainXMLNode"
-                               , "MakeIPAddress"
-                               , "MapKey"
-                               , "MapSize"
-                               , "MatchRegularExpression"
-                               , "MaterialBlendingMode"
-                               , "MaterialCullingMode"
-                               , "MaterialFilteringMode"
-                               , "MaterialFog"
-                               , "MaterialID"
-                               , "MaterialShadingMode"
-                               , "MaterialShininess"
-                               , "MD5FileFingerprint"
-                               , "MD5Fingerprint"
-                               , "MDIGadget"
-                               , "MemorySize"
-                               , "MemoryStatus"
-                               , "MemoryStringLength"
-                               , "MenuBar"
-                               , "MenuHeight"
-                               , "MenuID"
-                               , "MenuItem"
-                               , "MenuTitle"
-                               , "MergeLists"
-                               , "MeshFace"
-                               , "MeshID"
-                               , "MeshIndex"
-                               , "MeshIndexCount"
-                               , "MeshPoseCount"
-                               , "MeshPoseName"
-                               , "MeshRadius"
-                               , "MeshVertexColor"
-                               , "MeshVertexCount"
-                               , "MeshVertexNormal"
-                               , "MeshVertexPosition"
-                               , "MeshVertexTangent"
-                               , "MeshVertexTextureCoordinate"
-                               , "MessageRequester"
-                               , "Mid"
-                               , "Minute"
-                               , "Mod"
-                               , "Month"
-                               , "MouseButton"
-                               , "MouseDeltaX"
-                               , "MouseDeltaY"
-                               , "MouseLocate"
-                               , "MousePick"
-                               , "MouseRayCast"
-                               , "MouseWheel"
-                               , "MouseX"
-                               , "MouseY"
-                               , "MoveBillboard"
-                               , "MoveBillboardGroup"
-                               , "MoveCamera"
-                               , "MoveElement"
-                               , "MoveEntity"
-                               , "MoveEntityBone"
-                               , "MoveLight"
-                               , "MoveMemory"
-                               , "MoveNode"
-                               , "MoveParticleEmitter"
-                               , "MoveText3D"
-                               , "MoveXMLNode"
-                               , "MovieAudio"
-                               , "MovieHeight"
-                               , "MovieInfo"
-                               , "MovieLength"
-                               , "MovieSeek"
-                               , "MovieStatus"
-                               , "MovieWidth"
-                               , "MusicVolume"
-                               , "NaN"
-                               , "NetworkClientEvent"
-                               , "NetworkServerEvent"
-                               , "NewPrinterPage"
-                               , "NextDatabaseDriver"
-                               , "NextDatabaseRow"
-                               , "NextDirectoryEntry"
-                               , "NextElement"
-                               , "NextEnvironmentVariable"
-                               , "NextFingerprint"
-                               , "NextFTPDirectoryEntry"
-                               , "NextInstruction"
-                               , "NextIPAddress"
-                               , "NextJSONMember"
-                               , "NextLibraryFunction"
-                               , "NextMapElement"
-                               , "NextPackEntry"
-                               , "NextPreferenceGroup"
-                               , "NextPreferenceKey"
-                               , "NextRegularExpressionMatch"
-                               , "NextScreenMode"
-                               , "NextSelectedFilename"
-                               , "NextWorldCollision"
-                               , "NextXMLAttribute"
-                               , "NextXMLNode"
-                               , "NodeAnimationKeyFramePitch"
-                               , "NodeAnimationKeyFrameRoll"
-                               , "NodeAnimationKeyFrameX"
-                               , "NodeAnimationKeyFrameY"
-                               , "NodeAnimationKeyFrameYaw"
-                               , "NodeAnimationKeyFrameZ"
-                               , "NodeAnimationStatus"
-                               , "NodeFixedYawAxis"
-                               , "NodeID"
-                               , "NodeLookAt"
-                               , "NodePitch"
-                               , "NodeRoll"
-                               , "NodeX"
-                               , "NodeY"
-                               , "NodeYaw"
-                               , "NodeZ"
-                               , "NormalizeMesh"
-                               , "NormalX"
-                               , "NormalY"
-                               , "NormalZ"
-                               , "OnErrorCall"
-                               , "OnErrorDefault"
-                               , "OnErrorExit"
-                               , "OnErrorGoto"
-                               , "OpenConsole"
-                               , "OpenCryptRandom"
-                               , "OpenDatabase"
-                               , "OpenDatabaseRequester"
-                               , "OpenFile"
-                               , "OpenFileRequester"
-                               , "OpenFTP"
-                               , "OpenGadgetList"
-                               , "OpenGadgetList3D"
-                               , "OpenGLGadget"
-                               , "OpenHelp"
-                               , "OpenLibrary"
-                               , "OpenNetworkConnection"
-                               , "OpenPack"
-                               , "OpenPreferences"
-                               , "OpenScreen"
-                               , "OpenSerialPort"
-                               , "OpenSubMenu"
-                               , "OpenWindow"
-                               , "OpenWindow3D"
-                               , "OpenWindowedScreen"
-                               , "OpenXMLDialog"
-                               , "OptionGadget"
-                               , "OptionGadget3D"
-                               , "OSVersion"
-                               , "OutputDepth"
-                               , "OutputHeight"
-                               , "OutputWidth"
-                               , "PackEntryName"
-                               , "PackEntrySize"
-                               , "PackEntryType"
-                               , "PanelGadget"
-                               , "PanelGadget3D"
-                               , "ParentXMLNode"
-                               , "Parse3DScripts"
-                               , "ParseDate"
-                               , "ParseJSON"
-                               , "ParseXML"
-                               , "ParticleColorFader"
-                               , "ParticleColorRange"
-                               , "ParticleEmissionRate"
-                               , "ParticleEmitterDirection"
-                               , "ParticleEmitterID"
-                               , "ParticleEmitterX"
-                               , "ParticleEmitterY"
-                               , "ParticleEmitterZ"
-                               , "ParticleMaterial"
-                               , "ParticleSize"
-                               , "ParticleSpeedFactor"
-                               , "ParticleTimeToLive"
-                               , "ParticleVelocity"
-                               , "PathRequester"
-                               , "PauseAudioCD"
-                               , "PauseMovie"
-                               , "PauseSound"
-                               , "PauseThread"
-                               , "PeekA"
-                               , "PeekB"
-                               , "PeekC"
-                               , "PeekD"
-                               , "PeekF"
-                               , "PeekI"
-                               , "PeekL"
-                               , "PeekQ"
-                               , "PeekS"
-                               , "PeekU"
-                               , "PeekW"
-                               , "PickX"
-                               , "PickY"
-                               , "PickZ"
-                               , "Pitch"
-                               , "PlayAudioCD"
-                               , "PlayMovie"
-                               , "PlayMusic"
-                               , "PlaySound"
-                               , "PlaySound3D"
-                               , "Plot"
-                               , "Point"
-                               , "PointJoint"
-                               , "PointPick"
-                               , "PokeA"
-                               , "PokeB"
-                               , "PokeC"
-                               , "PokeD"
-                               , "PokeF"
-                               , "PokeI"
-                               , "PokeL"
-                               , "PokeQ"
-                               , "PokeS"
-                               , "PokeU"
-                               , "PokeW"
-                               , "PopListPosition"
-                               , "PopMapPosition"
-                               , "PostEvent"
-                               , "Pow"
-                               , "PreferenceComment"
-                               , "PreferenceGroup"
-                               , "PreferenceGroupName"
-                               , "PreferenceKeyName"
-                               , "PreferenceKeyValue"
-                               , "PreviousDatabaseRow"
-                               , "PreviousElement"
-                               , "PreviousXMLNode"
-                               , "Print"
-                               , "PrinterOutput"
-                               , "PrinterPageHeight"
-                               , "PrinterPageWidth"
-                               , "PrintN"
-                               , "PrintRequester"
-                               , "ProgramExitCode"
-                               , "ProgramFilename"
-                               , "ProgramID"
-                               , "ProgramParameter"
-                               , "ProgramRunning"
-                               , "ProgressBarGadget"
-                               , "ProgressBarGadget3D"
-                               , "PurifierGranularity"
-                               , "PushListPosition"
-                               , "PushMapPosition"
-                               , "Radian"
-                               , "RaiseError"
-                               , "Random"
-                               , "RandomData"
-                               , "RandomizeArray"
-                               , "RandomizeList"
-                               , "RandomSeed"
-                               , "RawKey"
-                               , "RayCast"
-                               , "RayCollide"
-                               , "RayPick"
-                               , "ReadAsciiCharacter"
-                               , "ReadByte"
-                               , "ReadCharacter"
-                               , "ReadConsoleData"
-                               , "ReadData"
-                               , "ReadDouble"
-                               , "ReadFile"
-                               , "ReadFloat"
-                               , "ReadInteger"
-                               , "ReadLong"
-                               , "ReadPreferenceDouble"
-                               , "ReadPreferenceFloat"
-                               , "ReadPreferenceInteger"
-                               , "ReadPreferenceLong"
-                               , "ReadPreferenceQuad"
-                               , "ReadPreferenceString"
-                               , "ReadProgramData"
-                               , "ReadProgramError"
-                               , "ReadProgramString"
-                               , "ReadQuad"
-                               , "ReadSerialPortData"
-                               , "ReadString"
-                               , "ReadStringFormat"
-                               , "ReadUnicodeCharacter"
-                               , "ReadWord"
-                               , "ReAllocateMemory"
-                               , "ReceiveFTPFile"
-                               , "ReceiveHTTPFile"
-                               , "ReceiveNetworkData"
-                               , "Red"
-                               , "RegularExpressionError"
-                               , "RegularExpressionGroup"
-                               , "RegularExpressionGroupLength"
-                               , "RegularExpressionGroupPosition"
-                               , "RegularExpressionMatchLength"
-                               , "RegularExpressionMatchPosition"
-                               , "RegularExpressionMatchString"
-                               , "RegularExpressionNamedGroup"
-                               , "RegularExpressionNamedGroupLength"
-                               , "RegularExpressionNamedGroupPosition"
-                               , "ReleaseMouse"
-                               , "ReloadMaterial"
-                               , "RemoveBillboard"
-                               , "RemoveEnvironmentVariable"
-                               , "RemoveGadgetColumn"
-                               , "RemoveGadgetItem"
-                               , "RemoveGadgetItem3D"
-                               , "RemoveJSONElement"
-                               , "RemoveJSONMember"
-                               , "RemoveKeyboardShortcut"
-                               , "RemoveMailRecipient"
-                               , "RemoveMaterialLayer"
-                               , "RemovePackFile"
-                               , "RemovePreferenceGroup"
-                               , "RemovePreferenceKey"
-                               , "RemoveString"
-                               , "RemoveSysTrayIcon"
-                               , "RemoveWindowTimer"
-                               , "RemoveXMLAttribute"
-                               , "RenameFile"
-                               , "RenameFTPFile"
-                               , "RenderWorld"
-                               , "ReplaceRegularExpression"
-                               , "ReplaceString"
-                               , "ResetGradientColors"
-                               , "ResetList"
-                               , "ResetMap"
-                               , "ResetMaterial"
-                               , "ResetProfiler"
-                               , "ResizeBillboard"
-                               , "ResizeGadget"
-                               , "ResizeGadget3D"
-                               , "ResizeImage"
-                               , "ResizeJSONElements"
-                               , "ResizeMovie"
-                               , "ResizeParticleEmitter"
-                               , "ResizeWindow"
-                               , "ResizeWindow3D"
-                               , "ResolveXMLAttributeName"
-                               , "ResolveXMLNodeName"
-                               , "ResumeAudioCD"
-                               , "ResumeMovie"
-                               , "ResumeSound"
-                               , "ResumeThread"
-                               , "ReverseString"
-                               , "RGB"
-                               , "RGBA"
-                               , "RibbonEffectColor"
-                               , "RibbonEffectWidth"
-                               , "Right"
-                               , "Roll"
-                               , "RootXMLNode"
-                               , "RotateBillboardGroup"
-                               , "RotateCamera"
-                               , "RotateEntity"
-                               , "RotateEntityBone"
-                               , "RotateLight"
-                               , "RotateMaterial"
-                               , "RotateNode"
-                               , "RotateSprite"
-                               , "Round"
-                               , "RoundBox"
-                               , "RSet"
-                               , "RTrim"
-                               , "RunProgram"
-                               , "SaveDebugOutput"
-                               , "SaveFileRequester"
-                               , "SaveImage"
-                               , "SaveJSON"
-                               , "SaveMesh"
-                               , "SaveRenderTexture"
-                               , "SaveSprite"
-                               , "SaveTerrain"
-                               , "SaveXML"
-                               , "ScaleEntity"
-                               , "ScaleMaterial"
-                               , "ScaleNode"
-                               , "ScaleText3D"
-                               , "ScintillaGadget"
-                               , "ScintillaSendMessage"
-                               , "ScreenDepth"
-                               , "ScreenHeight"
-                               , "ScreenID"
-                               , "ScreenModeDepth"
-                               , "ScreenModeHeight"
-                               , "ScreenModeRefreshRate"
-                               , "ScreenModeWidth"
-                               , "ScreenOutput"
-                               , "ScreenWidth"
-                               , "ScrollAreaGadget"
-                               , "ScrollAreaGadget3D"
-                               , "ScrollBarGadget"
-                               , "ScrollBarGadget3D"
-                               , "ScrollMaterial"
-                               , "Second"
-                               , "SecondWorldCollisionEntity"
-                               , "SelectedFilePattern"
-                               , "SelectedFontColor"
-                               , "SelectedFontName"
-                               , "SelectedFontSize"
-                               , "SelectedFontStyle"
-                               , "SelectElement"
-                               , "SendFTPFile"
-                               , "SendMail"
-                               , "SendNetworkData"
-                               , "SendNetworkString"
-                               , "SerialPortError"
-                               , "SerialPortID"
-                               , "SerialPortTimeouts"
-                               , "ServerID"
-                               , "SetActiveGadget"
-                               , "SetActiveGadget3D"
-                               , "SetActiveWindow"
-                               , "SetActiveWindow3D"
-                               , "SetClipboardImage"
-                               , "SetClipboardText"
-                               , "SetCurrentDirectory"
-                               , "SetDatabaseBlob"
-                               , "SetDragCallback"
-                               , "SetDropCallback"
-                               , "SetEntityAnimationLength"
-                               , "SetEntityAnimationTime"
-                               , "SetEntityAnimationWeight"
-                               , "SetEntityAttribute"
-                               , "SetEntityCollisionFilter"
-                               , "SetEntityMaterial"
-                               , "SetEnvironmentVariable"
-                               , "SetFileAttributes"
-                               , "SetFileDate"
-                               , "SetFrameRate"
-                               , "SetFTPDirectory"
-                               , "SetGadgetAttribute"
-                               , "SetGadgetAttribute3D"
-                               , "SetGadgetColor"
-                               , "SetGadgetData"
-                               , "SetGadgetData3D"
-                               , "SetGadgetFont"
-                               , "SetGadgetItemAttribute"
-                               , "SetGadgetItemColor"
-                               , "SetGadgetItemData"
-                               , "SetGadgetItemData3D"
-                               , "SetGadgetItemImage"
-                               , "SetGadgetItemState"
-                               , "SetGadgetItemState3D"
-                               , "SetGadgetItemText"
-                               , "SetGadgetItemText3D"
-                               , "SetGadgetState"
-                               , "SetGadgetState3D"
-                               , "SetGadgetText"
-                               , "SetGadgetText3D"
-                               , "SetGUITheme3D"
-                               , "SetJointAttribute"
-                               , "SetJSONArray"
-                               , "SetJSONBoolean"
-                               , "SetJSONDouble"
-                               , "SetJSONFloat"
-                               , "SetJSONInteger"
-                               , "SetJSONNull"
-                               , "SetJSONObject"
-                               , "SetJSONQuad"
-                               , "SetJSONString"
-                               , "SetLightColor"
-                               , "SetMailAttribute"
-                               , "SetMailBody"
-                               , "SetMaterialAttribute"
-                               , "SetMaterialColor"
-                               , "SetMenuItemState"
-                               , "SetMenuItemText"
-                               , "SetMenuTitleText"
-                               , "SetMeshData"
-                               , "SetMeshMaterial"
-                               , "SetMusicPosition"
-                               , "SetNodeAnimationKeyFramePosition"
-                               , "SetNodeAnimationKeyFrameRotation"
-                               , "SetNodeAnimationKeyFrameScale"
-                               , "SetNodeAnimationLength"
-                               , "SetNodeAnimationTime"
-                               , "SetNodeAnimationWeight"
-                               , "SetOrientation"
-                               , "SetOrigin"
-                               , "SetRenderQueue"
-                               , "SetRuntimeDouble"
-                               , "SetRuntimeInteger"
-                               , "SetRuntimeString"
-                               , "SetSerialPortStatus"
-                               , "SetSoundFrequency"
-                               , "SetSoundPosition"
-                               , "SetTerrainTileHeightAtPoint"
-                               , "SetTerrainTileLayerBlend"
-                               , "SetToolBarButtonState"
-                               , "SetupTerrains"
-                               , "SetURLPart"
-                               , "SetWindowCallback"
-                               , "SetWindowColor"
-                               , "SetWindowData"
-                               , "SetWindowState"
-                               , "SetWindowTitle"
-                               , "SetWindowTitle3D"
-                               , "SetXMLAttribute"
-                               , "SetXMLEncoding"
-                               , "SetXMLNodeName"
-                               , "SetXMLNodeOffset"
-                               , "SetXMLNodeText"
-                               , "SetXMLStandalone"
-                               , "SHA1FileFingerprint"
-                               , "SHA1Fingerprint"
-                               , "ShortcutGadget"
-                               , "ShowAssemblyViewer"
-                               , "ShowCallstack"
-                               , "ShowDebugOutput"
-                               , "ShowGUI"
-                               , "ShowLibraryViewer"
-                               , "ShowMemoryViewer"
-                               , "ShowProfiler"
-                               , "ShowVariableViewer"
-                               , "ShowWatchlist"
-                               , "Sign"
-                               , "SignalSemaphore"
-                               , "Sin"
-                               , "SinH"
-                               , "SkyBox"
-                               , "SkyDome"
-                               , "SliderJoint"
-                               , "SmartWindowRefresh"
-                               , "SortArray"
-                               , "SortList"
-                               , "SortStructuredArray"
-                               , "SortStructuredList"
-                               , "SoundCone3D"
-                               , "SoundID3D"
-                               , "SoundLength"
-                               , "SoundListenerLocate"
-                               , "SoundPan"
-                               , "SoundRange3D"
-                               , "SoundStatus"
-                               , "SoundVolume"
-                               , "SoundVolume3D"
-                               , "Space"
-                               , "SpinGadget"
-                               , "SpinGadget3D"
-                               , "SplinePointX"
-                               , "SplinePointY"
-                               , "SplinePointZ"
-                               , "SplineX"
-                               , "SplineY"
-                               , "SplineZ"
-                               , "SplitList"
-                               , "SplitterGadget"
-                               , "SpotLightRange"
-                               , "SpriteBlendingMode"
-                               , "SpriteCollision"
-                               , "SpriteDepth"
-                               , "SpriteHeight"
-                               , "SpriteID"
-                               , "SpriteOutput"
-                               , "SpritePixelCollision"
-                               , "SpriteQuality"
-                               , "SpriteWidth"
-                               , "Sqr"
-                               , "StartAESCipher"
-                               , "StartDrawing"
-                               , "StartEntityAnimation"
-                               , "StartNodeAnimation"
-                               , "StartPrinting"
-                               , "StartProfiler"
-                               , "StatusBarHeight"
-                               , "StatusBarID"
-                               , "StatusBarImage"
-                               , "StatusBarProgress"
-                               , "StatusBarText"
-                               , "StickyWindow"
-                               , "StopAudioCD"
-                               , "StopDrawing"
-                               , "StopEntityAnimation"
-                               , "StopMovie"
-                               , "StopMusic"
-                               , "StopNodeAnimation"
-                               , "StopPrinting"
-                               , "StopProfiler"
-                               , "StopSound"
-                               , "StopSound3D"
-                               , "Str"
-                               , "StrD"
-                               , "StrF"
-                               , "StringByteLength"
-                               , "StringField"
-                               , "StringGadget"
-                               , "StringGadget3D"
-                               , "StrU"
-                               , "SubMeshCount"
-                               , "Sun"
-                               , "SwapElements"
-                               , "SwitchCamera"
-                               , "SysTrayIconToolTip"
-                               , "Tan"
-                               , "TanH"
-                               , "TerrainHeight"
-                               , "TerrainLocate"
-                               , "TerrainMousePick"
-                               , "TerrainPhysicBody"
-                               , "TerrainRenderMode"
-                               , "TerrainTileHeightAtPosition"
-                               , "TerrainTileLayerMapSize"
-                               , "TerrainTilePointX"
-                               , "TerrainTilePointY"
-                               , "TerrainTileSize"
-                               , "Text3DAlignment"
-                               , "Text3DCaption"
-                               , "Text3DColor"
-                               , "Text3DID"
-                               , "TextGadget"
-                               , "TextGadget3D"
-                               , "TextHeight"
-                               , "TextureHeight"
-                               , "TextureID"
-                               , "TextureOutput"
-                               , "TextureWidth"
-                               , "TextWidth"
-                               , "ThreadID"
-                               , "ThreadPriority"
-                               , "ToolBarHeight"
-                               , "ToolBarID"
-                               , "ToolBarImageButton"
-                               , "ToolBarSeparator"
-                               , "ToolBarStandardButton"
-                               , "ToolBarToolTip"
-                               , "TrackBarGadget"
-                               , "TransformMesh"
-                               , "TransformSprite"
-                               , "TransparentSpriteColor"
-                               , "TreeGadget"
-                               , "Trim"
-                               , "TruncateFile"
-                               , "TryLockMutex"
-                               , "TrySemaphore"
-                               , "UCase"
-                               , "UnbindEvent"
-                               , "UnbindGadgetEvent"
-                               , "UnbindMenuEvent"
-                               , "UnclipOutput"
-                               , "UncompressMemory"
-                               , "UncompressPackFile"
-                               , "UncompressPackMemory"
-                               , "UnlockMutex"
-                               , "UpdateEntityAnimation"
-                               , "UpdateMesh"
-                               , "UpdateMeshBoundingBox"
-                               , "UpdateRenderTexture"
-                               , "UpdateSplinePoint"
-                               , "UpdateTerrain"
-                               , "UpdateTerrainTileLayerBlend"
-                               , "UpdateVertexPoseReference"
-                               , "URLDecoder"
-                               , "URLEncoder"
-                               , "UseAudioCD"
-                               , "UseBriefLZPacker"
-                               , "UseFLACSoundDecoder"
-                               , "UseGadgetList"
-                               , "UseJCALG1Packer"
-                               , "UseJPEG2000ImageDecoder"
-                               , "UseJPEG2000ImageEncoder"
-                               , "UseJPEGImageDecoder"
-                               , "UseJPEGImageEncoder"
-                               , "UseLZMAPacker"
-                               , "UseODBCDatabase"
-                               , "UseOGGSoundDecoder"
-                               , "UsePNGImageDecoder"
-                               , "UsePNGImageEncoder"
-                               , "UsePostgreSQLDatabase"
-                               , "UserName"
-                               , "UseSQLiteDatabase"
-                               , "UseTGAImageDecoder"
-                               , "UseTIFFImageDecoder"
-                               , "UseZipPacker"
-                               , "Val"
-                               , "ValD"
-                               , "ValF"
-                               , "VertexPoseReferenceCount"
-                               , "WaitProgram"
-                               , "WaitSemaphore"
-                               , "WaitThread"
-                               , "WaitWindowEvent"
-                               , "WaterColor"
-                               , "WaterHeight"
-                               , "WebGadget"
-                               , "WebGadgetPath"
-                               , "WindowBounds"
-                               , "WindowEvent"
-                               , "WindowEvent3D"
-                               , "WindowHeight"
-                               , "WindowHeight3D"
-                               , "WindowID"
-                               , "WindowID3D"
-                               , "WindowMouseX"
-                               , "WindowMouseY"
-                               , "WindowOutput"
-                               , "WindowWidth"
-                               , "WindowWidth3D"
-                               , "WindowX"
-                               , "WindowX3D"
-                               , "WindowY"
-                               , "WindowY3D"
-                               , "WorldCollisionAppliedImpulse"
-                               , "WorldCollisionContact"
-                               , "WorldCollisionNormal"
-                               , "WorldDebug"
-                               , "WorldGravity"
-                               , "WorldShadows"
-                               , "WriteAsciiCharacter"
-                               , "WriteByte"
-                               , "WriteCharacter"
-                               , "WriteConsoleData"
-                               , "WriteData"
-                               , "WriteDouble"
-                               , "WriteFloat"
-                               , "WriteInteger"
-                               , "WriteLong"
-                               , "WritePreferenceDouble"
-                               , "WritePreferenceFloat"
-                               , "WritePreferenceInteger"
-                               , "WritePreferenceLong"
-                               , "WritePreferenceQuad"
-                               , "WritePreferenceString"
-                               , "WriteProgramData"
-                               , "WriteProgramString"
-                               , "WriteProgramStringN"
-                               , "WriteQuad"
-                               , "WriteSerialPortData"
-                               , "WriteSerialPortString"
-                               , "WriteString"
-                               , "WriteStringFormat"
-                               , "WriteStringN"
-                               , "WriteUnicodeCharacter"
-                               , "WriteWord"
-                               , "XMLAttributeName"
-                               , "XMLAttributeValue"
-                               , "XMLChildCount"
-                               , "XMLError"
-                               , "XMLErrorLine"
-                               , "XMLErrorPosition"
-                               , "XMLNodeFromID"
-                               , "XMLNodeFromPath"
-                               , "XMLNodePath"
-                               , "XMLNodeType"
-                               , "XMLStatus"
-                               , "Yaw"
-                               , "Year"
-                               , "ZoomSprite"
-                               ])
-                      , rAttribute = FunctionTok
-                      , 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 [ "CallDebugger" , "Debug" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\#+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\#+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PureBasic" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*;+\\s*BEGIN.*$"
-                              , reCompiled = Just (compileRegex True "\\s*;+\\s*BEGIN.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*;+\\s*END.*$"
-                              , reCompiled = Just (compileRegex True "\\s*;+\\s*END.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ';'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "PureBasic" , "Comment1" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "PureBasic"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor =
-      "Alexander Clay (Tuireann@EpicBasic.org);Sven Langenkamp (ace@kylixforum.de)"
-  , sVersion = "6"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.pb" , "*.pbi" ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"PureBasic\", sFilename = \"purebasic.xml\", sShortname = \"Purebasic\", sContexts = fromList [(\"Comment1\",Context {cName = \"Comment1\", cSyntax = \"PureBasic\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [])), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"PureBasic\", cRules = [Rule {rMatcher = AnyChar \"-+*/%|=!<>!^&~\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \",.:()[]\\\\\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(if)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(endif)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(while)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(wend)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(repeat)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(until)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(select)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(endselect)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(for|foreach)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(next)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(procedure|proceduredll)([.\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(endprocedure)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(structure)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(endstructure)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(interface)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(endinterface)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(enumeration)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(endenumeration)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(datasection)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(enddatasection)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"Break\",\"Case\",\"Continue\",\"Data\",\"DataSection\",\"Declare\",\"DeclareModule\",\"Default\",\"DefType\",\"Dim\",\"Else\",\"ElseIf\",\"End\",\"EndDataSection\",\"EndDeclareModule\",\"EndEnumeration\",\"EndIf\",\"EndInterface\",\"EndModule\",\"EndProcedure\",\"EndSelect\",\"EndStructure\",\"Enumeration\",\"Extends\",\"FakeReturn\",\"For\",\"ForEach\",\"Global\",\"Gosub\",\"Goto\",\"If\",\"IncludeBinary\",\"IncludeFile\",\"IncludePath\",\"Interface\",\"Module\",\"NewList\",\"Next\",\"Procedure\",\"ProcedureDLL\",\"ProcedureReturn\",\"Protected\",\"Read\",\"Repeat\",\"Restore\",\"Return\",\"Select\",\"Shared\",\"Static\",\"Step\",\"Structure\",\"To\",\"Until\",\"UnuseModule\",\"UseModule\",\"Wend\",\"While\",\"With\",\"XIncludeFile\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(compilerif)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(compilerendif)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(compilerselect)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(compilerendselect)([\\\\s]|$)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"CompilerCase\",\"CompilerDefault\",\"CompilerElse\",\"CompilerEndIf\",\"CompilerEndSelect\",\"CompilerIf\",\"CompilerSelect\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"AbortFTPFile\",\"Abs\",\"ACos\",\"ACosH\",\"Add3DArchive\",\"AddBillboard\",\"AddCipherBuffer\",\"AddDate\",\"AddElement\",\"AddEntityAnimationTime\",\"AddGadgetColumn\",\"AddGadgetItem\",\"AddGadgetItem3D\",\"AddJSONElement\",\"AddJSONMember\",\"AddKeyboardShortcut\",\"AddMailAttachment\",\"AddMailAttachmentData\",\"AddMailRecipient\",\"AddMapElement\",\"AddMaterialLayer\",\"AddNodeAnimationTime\",\"AddPackFile\",\"AddPackMemory\",\"AddSplinePoint\",\"AddStaticGeometryEntity\",\"AddStatusBarField\",\"AddSubMesh\",\"AddSysTrayIcon\",\"AddTerrainTexture\",\"AddVertexPoseReference\",\"AddWindowTimer\",\"AESDecoder\",\"AESEncoder\",\"AffectedDatabaseRows\",\"AllocateMemory\",\"AllocateStructure\",\"Alpha\",\"AlphaBlend\",\"AmbientColor\",\"AntialiasingMode\",\"ApplyEntityForce\",\"ApplyEntityImpulse\",\"ArraySize\",\"Asc\",\"ASin\",\"ASinH\",\"ATan\",\"ATan2\",\"ATanH\",\"AttachEntityObject\",\"AttachNodeObject\",\"AttachRibbonEffect\",\"AudioCDLength\",\"AudioCDName\",\"AudioCDStatus\",\"AudioCDTrackLength\",\"AudioCDTracks\",\"AudioCDTrackSeconds\",\"AvailableProgramOutput\",\"AvailableScreenMemory\",\"AvailableSerialPortInput\",\"AvailableSerialPortOutput\",\"BackColor\",\"Base64Decoder\",\"Base64Encoder\",\"BillboardGroupCommonDirection\",\"BillboardGroupCommonUpVector\",\"BillboardGroupID\",\"BillboardGroupMaterial\",\"BillboardGroupX\",\"BillboardGroupY\",\"BillboardGroupZ\",\"BillboardHeight\",\"BillboardLocate\",\"BillboardWidth\",\"BillboardX\",\"BillboardY\",\"BillboardZ\",\"Bin\",\"BindEvent\",\"BindGadgetEvent\",\"BindMenuEvent\",\"Blue\",\"Box\",\"BoxedGradient\",\"BuildMeshShadowVolume\",\"BuildMeshTangents\",\"BuildStaticGeometry\",\"BuildTerrain\",\"ButtonGadget\",\"ButtonGadget3D\",\"ButtonImageGadget\",\"CalendarGadget\",\"CallCFunction\",\"CallCFunctionFast\",\"CallFunction\",\"CallFunctionFast\",\"CameraBackColor\",\"CameraDirection\",\"CameraDirectionX\",\"CameraDirectionY\",\"CameraDirectionZ\",\"CameraFixedYawAxis\",\"CameraFollow\",\"CameraFOV\",\"CameraID\",\"CameraLookAt\",\"CameraPitch\",\"CameraProjectionMode\",\"CameraProjectionX\",\"CameraProjectionY\",\"CameraRange\",\"CameraRenderMode\",\"CameraRoll\",\"CameraViewHeight\",\"CameraViewWidth\",\"CameraViewX\",\"CameraViewY\",\"CameraX\",\"CameraY\",\"CameraYaw\",\"CameraZ\",\"CanvasGadget\",\"CanvasOutput\",\"CatchImage\",\"CatchJSON\",\"CatchMusic\",\"CatchSound\",\"CatchSprite\",\"CatchXML\",\"ChangeCurrentElement\",\"ChangeGamma\",\"ChangeListIconGadgetDisplay\",\"ChangeSysTrayIcon\",\"CheckBoxGadget\",\"CheckBoxGadget3D\",\"CheckDatabaseNull\",\"CheckFilename\",\"CheckFTPConnection\",\"CheckObjectVisibility\",\"ChildXMLNode\",\"Chr\",\"Circle\",\"CircularGradient\",\"ClearBillboards\",\"ClearClipboard\",\"ClearConsole\",\"ClearDebugOutput\",\"ClearGadgetItemList\",\"ClearGadgetItems\",\"ClearGadgetItems3D\",\"ClearJSONElements\",\"ClearJSONMembers\",\"ClearList\",\"ClearMap\",\"ClearScreen\",\"ClearSpline\",\"ClipOutput\",\"ClipSprite\",\"CloseConsole\",\"CloseCryptRandom\",\"CloseDatabase\",\"CloseFile\",\"CloseFTP\",\"CloseGadgetList\",\"CloseGadgetList3D\",\"CloseHelp\",\"CloseLibrary\",\"CloseNetworkConnection\",\"CloseNetworkServer\",\"ClosePack\",\"ClosePreferences\",\"CloseProgram\",\"CloseScreen\",\"CloseSerialPort\",\"CloseSubMenu\",\"CloseWindow\",\"CloseWindow3D\",\"CocoaMessage\",\"ColorRequester\",\"ComboBoxGadget\",\"ComboBoxGadget3D\",\"CompareMemory\",\"CompareMemoryString\",\"ComposeJSON\",\"ComposeXML\",\"CompositorEffectParameter\",\"CompressMemory\",\"ComputerName\",\"ComputeSpline\",\"ConeTwistJoint\",\"ConicalGradient\",\"ConnectionID\",\"ConsoleColor\",\"ConsoleCursor\",\"ConsoleError\",\"ConsoleLocate\",\"ConsoleTitle\",\"ContainerGadget\",\"ContainerGadget3D\",\"ConvertLocalToWorldPosition\",\"ConvertWorldToLocalPosition\",\"CopyArray\",\"CopyDirectory\",\"CopyEntity\",\"CopyFile\",\"CopyImage\",\"CopyLight\",\"CopyList\",\"CopyMap\",\"CopyMaterial\",\"CopyMemory\",\"CopyMemoryString\",\"CopyMesh\",\"CopySprite\",\"CopyTexture\",\"CopyXMLNode\",\"Cos\",\"CosH\",\"CountBillboards\",\"CountCPUs\",\"CountGadgetItems\",\"CountGadgetItems3D\",\"CountLibraryFunctions\",\"CountList\",\"CountMaterialLayers\",\"CountProgramParameters\",\"CountRegularExpressionGroups\",\"CountSplinePoints\",\"CountString\",\"CPUName\",\"CRC32FileFingerprint\",\"CRC32Fingerprint\",\"CreateBillboardGroup\",\"CreateCamera\",\"CreateCompositorEffect\",\"CreateCube\",\"CreateCubeMapTexture\",\"CreateCylinder\",\"CreateDialog\",\"CreateDirectory\",\"CreateEntity\",\"CreateFile\",\"CreateFTPDirectory\",\"CreateGadgetList\",\"CreateImage\",\"CreateImageMenu\",\"CreateJSON\",\"CreateLensFlareEffect\",\"CreateLight\",\"CreateLine3D\",\"CreateMail\",\"CreateMaterial\",\"CreateMenu\",\"CreateMesh\",\"CreateMutex\",\"CreateNetworkServer\",\"CreateNode\",\"CreateNodeAnimation\",\"CreateNodeAnimationKeyFrame\",\"CreatePack\",\"CreateParticleEmitter\",\"CreatePlane\",\"CreatePopupImageMenu\",\"CreatePopupMenu\",\"CreatePreferences\",\"CreateRegularExpression\",\"CreateRenderTexture\",\"CreateRibbonEffect\",\"CreateSemaphore\",\"CreateSphere\",\"CreateSpline\",\"CreateSprite\",\"CreateStaticGeometry\",\"CreateStatusBar\",\"CreateTerrain\",\"CreateText3D\",\"CreateTexture\",\"CreateThread\",\"CreateToolBar\",\"CreateVertexAnimation\",\"CreateVertexPoseKeyFrame\",\"CreateVertexTrack\",\"CreateWater\",\"CreateXML\",\"CreateXMLNode\",\"CryptRandom\",\"CryptRandomData\",\"CustomFilterCallback\",\"CustomGradient\",\"DatabaseColumnIndex\",\"DatabaseColumnName\",\"DatabaseColumns\",\"DatabaseColumnSize\",\"DatabaseColumnType\",\"DatabaseDriverDescription\",\"DatabaseDriverName\",\"DatabaseError\",\"DatabaseID\",\"DatabaseQuery\",\"DatabaseUpdate\",\"Date\",\"DateGadget\",\"Day\",\"DayOfWeek\",\"DayOfYear\",\"DefaultPrinter\",\"DefineTerrainTile\",\"Degree\",\"Delay\",\"DeleteDirectory\",\"DeleteElement\",\"DeleteFile\",\"DeleteFTPDirectory\",\"DeleteFTPFile\",\"DeleteMapElement\",\"DeleteXMLNode\",\"DESFingerprint\",\"DesktopDepth\",\"DesktopFrequency\",\"DesktopHeight\",\"DesktopMouseX\",\"DesktopMouseY\",\"DesktopName\",\"DesktopWidth\",\"DesktopX\",\"DesktopY\",\"DetachEntityObject\",\"DetachNodeObject\",\"DetachRibbonEffect\",\"DialogError\",\"DialogGadget\",\"DialogID\",\"DialogWindow\",\"DirectoryEntryAttributes\",\"DirectoryEntryDate\",\"DirectoryEntryName\",\"DirectoryEntrySize\",\"DirectoryEntryType\",\"DisableEntityBody\",\"DisableGadget\",\"DisableGadget3D\",\"DisableLightShadows\",\"DisableMaterialLighting\",\"DisableMenuItem\",\"DisableParticleEmitter\",\"DisableToolBarButton\",\"DisableWindow\",\"DisableWindow3D\",\"DisplayPopupMenu\",\"DisplaySprite\",\"DisplayTransparentSprite\",\"DoubleClickTime\",\"DragFiles\",\"DragImage\",\"DragOSFormats\",\"DragPrivate\",\"DragText\",\"DrawAlphaImage\",\"DrawImage\",\"DrawingBuffer\",\"DrawingBufferPitch\",\"DrawingBufferPixelFormat\",\"DrawingFont\",\"DrawingMode\",\"DrawRotatedText\",\"DrawText\",\"EditorGadget\",\"EditorGadget3D\",\"EjectAudioCD\",\"ElapsedMilliseconds\",\"Ellipse\",\"EllipticalGradient\",\"EnableGadgetDrop\",\"EnableGraphicalConsole\",\"EnableHingeJointAngularMotor\",\"EnableManualEntityBoneControl\",\"EnableWindowDrop\",\"EnableWorldCollisions\",\"EnableWorldPhysics\",\"EncodeImage\",\"Engine3DStatus\",\"EntityAngularFactor\",\"EntityAnimationBlendMode\",\"EntityAnimationStatus\",\"EntityBonePitch\",\"EntityBoneRoll\",\"EntityBoneX\",\"EntityBoneY\",\"EntityBoneYaw\",\"EntityBoneZ\",\"EntityBoundingBox\",\"EntityCollide\",\"EntityCubeMapTexture\",\"EntityCustomParameter\",\"EntityFixedYawAxis\",\"EntityID\",\"EntityLinearFactor\",\"EntityLookAt\",\"EntityParentNode\",\"EntityPhysicBody\",\"EntityPitch\",\"EntityRenderMode\",\"EntityRoll\",\"EntityVelocity\",\"EntityX\",\"EntityY\",\"EntityYaw\",\"EntityZ\",\"EnvironmentVariableName\",\"EnvironmentVariableValue\",\"Eof\",\"ErrorAddress\",\"ErrorCode\",\"ErrorFile\",\"ErrorLine\",\"ErrorMessage\",\"ErrorRegister\",\"ErrorTargetAddress\",\"EventClient\",\"EventData\",\"EventDropAction\",\"EventDropBuffer\",\"EventDropFiles\",\"EventDropImage\",\"EventDropPrivate\",\"EventDropSize\",\"EventDropText\",\"EventDropType\",\"EventDropX\",\"EventDropY\",\"EventGadget\",\"EventGadget3D\",\"EventlParam\",\"EventMenu\",\"EventServer\",\"EventTimer\",\"EventType\",\"EventType3D\",\"EventWindow\",\"EventWindow3D\",\"EventwParam\",\"ExamineAssembly\",\"ExamineDatabaseDrivers\",\"ExamineDesktops\",\"ExamineDirectory\",\"ExamineEnvironmentVariables\",\"ExamineFTPDirectory\",\"ExamineIPAddresses\",\"ExamineJoystick\",\"ExamineJSONMembers\",\"ExamineKeyboard\",\"ExamineLibraryFunctions\",\"ExamineMD5Fingerprint\",\"ExamineMouse\",\"ExaminePack\",\"ExaminePreferenceGroups\",\"ExaminePreferenceKeys\",\"ExamineRegularExpression\",\"ExamineScreenModes\",\"ExamineSHA1Fingerprint\",\"ExamineWorldCollisions\",\"ExamineXMLAttributes\",\"Exp\",\"ExplorerComboGadget\",\"ExplorerListGadget\",\"ExplorerTreeGadget\",\"ExportJSON\",\"ExportJSONSize\",\"ExportXML\",\"ExportXMLSize\",\"ExtractJSONArray\",\"ExtractJSONList\",\"ExtractJSONMap\",\"ExtractJSONStructure\",\"ExtractRegularExpression\",\"ExtractXMLArray\",\"ExtractXMLList\",\"ExtractXMLMap\",\"ExtractXMLStructure\",\"FetchEntityMaterial\",\"FetchOrientation\",\"FileBuffersSize\",\"FileID\",\"FileSeek\",\"FileSize\",\"FillArea\",\"FillMemory\",\"FindMapElement\",\"FindString\",\"FinishCipher\",\"FinishDatabaseQuery\",\"FinishDirectory\",\"FinishFingerprint\",\"FinishFTPDirectory\",\"FinishMesh\",\"FirstDatabaseRow\",\"FirstElement\",\"FirstWorldCollisionEntity\",\"FlipBuffers\",\"FlushFileBuffers\",\"Fog\",\"FontID\",\"FontRequester\",\"FormatDate\",\"FormatXML\",\"FrameGadget\",\"FrameGadget3D\",\"FreeArray\",\"FreeBillboardGroup\",\"FreeCamera\",\"FreeDialog\",\"FreeEffect\",\"FreeEntity\",\"FreeEntityJoints\",\"FreeFont\",\"FreeGadget\",\"FreeGadget3D\",\"FreeImage\",\"FreeIP\",\"FreeJoint\",\"FreeJSON\",\"FreeLight\",\"FreeList\",\"FreeMail\",\"FreeMap\",\"FreeMaterial\",\"FreeMemory\",\"FreeMenu\",\"FreeMesh\",\"FreeMovie\",\"FreeMusic\",\"FreeMutex\",\"FreeNode\",\"FreeNodeAnimation\",\"FreeParticleEmitter\",\"FreeRegularExpression\",\"FreeSemaphore\",\"FreeSound\",\"FreeSound3D\",\"FreeSpline\",\"FreeSprite\",\"FreeStaticGeometry\",\"FreeStatusBar\",\"FreeStructure\",\"FreeTerrain\",\"FreeText3D\",\"FreeTexture\",\"FreeToolBar\",\"FreeWater\",\"FreeXML\",\"FrontColor\",\"FTPDirectoryEntryAttributes\",\"FTPDirectoryEntryDate\",\"FTPDirectoryEntryName\",\"FTPDirectoryEntryRaw\",\"FTPDirectoryEntrySize\",\"FTPDirectoryEntryType\",\"FTPProgress\",\"GadgetHeight\",\"GadgetHeight3D\",\"GadgetID\",\"GadgetID3D\",\"GadgetItemID\",\"GadgetToolTip\",\"GadgetToolTip3D\",\"GadgetType\",\"GadgetType3D\",\"GadgetWidth\",\"GadgetWidth3D\",\"GadgetX\",\"GadgetX3D\",\"GadgetY\",\"GadgetY3D\",\"GetActiveGadget\",\"GetActiveGadget3D\",\"GetActiveWindow\",\"GetActiveWindow3D\",\"GetClientIP\",\"GetClientPort\",\"GetClipboardImage\",\"GetClipboardText\",\"GetCurrentDirectory\",\"GetDatabaseBlob\",\"GetDatabaseDouble\",\"GetDatabaseFloat\",\"GetDatabaseLong\",\"GetDatabaseQuad\",\"GetDatabaseString\",\"GetEntityAnimationLength\",\"GetEntityAnimationTime\",\"GetEntityAnimationWeight\",\"GetEntityAttribute\",\"GetEntityCollisionGroup\",\"GetEntityCollisionMask\",\"GetEnvironmentVariable\",\"GetExtensionPart\",\"GetFileAttributes\",\"GetFileDate\",\"GetFilePart\",\"GetFTPDirectory\",\"GetFunction\",\"GetFunctionEntry\",\"GetGadgetAttribute\",\"GetGadgetAttribute3D\",\"GetGadgetColor\",\"GetGadgetData\",\"GetGadgetData3D\",\"GetGadgetFont\",\"GetGadgetItemAttribute\",\"GetGadgetItemColor\",\"GetGadgetItemData\",\"GetGadgetItemData3D\",\"GetGadgetItemState\",\"GetGadgetItemState3D\",\"GetGadgetItemText\",\"GetGadgetItemText3D\",\"GetGadgetState\",\"GetGadgetState3D\",\"GetGadgetText\",\"GetGadgetText3D\",\"GetHomeDirectory\",\"GetHTTPHeader\",\"GetJointAttribute\",\"GetJSONBoolean\",\"GetJSONDouble\",\"GetJSONElement\",\"GetJSONFloat\",\"GetJSONInteger\",\"GetJSONMember\",\"GetJSONQuad\",\"GetJSONString\",\"GetLightColor\",\"GetMailAttribute\",\"GetMailBody\",\"GetMaterialAttribute\",\"GetMaterialColor\",\"GetMenuItemState\",\"GetMenuItemText\",\"GetMenuTitleText\",\"GetMeshData\",\"GetMusicPosition\",\"GetMusicRow\",\"GetNodeAnimationKeyFrameTime\",\"GetNodeAnimationLength\",\"GetNodeAnimationTime\",\"GetNodeAnimationWeight\",\"GetOriginX\",\"GetOriginY\",\"GetPathPart\",\"GetRuntimeDouble\",\"GetRuntimeInteger\",\"GetRuntimeString\",\"GetScriptMaterial\",\"GetScriptParticleEmitter\",\"GetScriptTexture\",\"GetSerialPortStatus\",\"GetSoundFrequency\",\"GetSoundPosition\",\"GetTemporaryDirectory\",\"GetTerrainTileHeightAtPoint\",\"GetTerrainTileLayerBlend\",\"GetToolBarButtonState\",\"GetURLPart\",\"GetW\",\"GetWindowColor\",\"GetWindowData\",\"GetWindowState\",\"GetWindowTitle\",\"GetWindowTitle3D\",\"GetX\",\"GetXMLAttribute\",\"GetXMLEncoding\",\"GetXMLNodeName\",\"GetXMLNodeOffset\",\"GetXMLNodeText\",\"GetXMLStandalone\",\"GetY\",\"GetZ\",\"GrabDrawingImage\",\"GrabImage\",\"GrabSprite\",\"GradientColor\",\"Green\",\"Hex\",\"HideBillboardGroup\",\"HideEffect\",\"HideEntity\",\"HideGadget\",\"HideGadget3D\",\"HideLight\",\"HideMenu\",\"HideParticleEmitter\",\"HideWindow\",\"HideWindow3D\",\"HingeJoint\",\"HingeJointMotorTarget\",\"HostName\",\"Hour\",\"HyperLinkGadget\",\"ImageDepth\",\"ImageFormat\",\"ImageGadget\",\"ImageGadget3D\",\"ImageHeight\",\"ImageID\",\"ImageOutput\",\"ImageWidth\",\"Infinity\",\"InitAudioCD\",\"InitEngine3D\",\"InitJoystick\",\"InitKeyboard\",\"InitMouse\",\"InitMovie\",\"InitNetwork\",\"InitScintilla\",\"InitSound\",\"InitSprite\",\"Inkey\",\"Input\",\"InputEvent3D\",\"InputRequester\",\"InsertElement\",\"InsertJSONArray\",\"InsertJSONList\",\"InsertJSONMap\",\"InsertJSONStructure\",\"InsertString\",\"InsertXMLArray\",\"InsertXMLList\",\"InsertXMLMap\",\"InsertXMLStructure\",\"InstructionAddress\",\"InstructionString\",\"Int\",\"IntQ\",\"IPAddressField\",\"IPAddressGadget\",\"IPString\",\"IsBillboardGroup\",\"IsCamera\",\"IsDatabase\",\"IsDialog\",\"IsDirectory\",\"IsEffect\",\"IsEntity\",\"IsFile\",\"IsFingerprint\",\"IsFont\",\"IsFtp\",\"IsGadget\",\"IsGadget3D\",\"IsImage\",\"IsInfinity\",\"IsJSON\",\"IsLibrary\",\"IsLight\",\"IsMail\",\"IsMaterial\",\"IsMenu\",\"IsMesh\",\"IsMovie\",\"IsMusic\",\"IsNaN\",\"IsNode\",\"IsParticleEmitter\",\"IsProgram\",\"IsRegularExpression\",\"IsRuntime\",\"IsScreenActive\",\"IsSerialPort\",\"IsSound\",\"IsSound3D\",\"IsSprite\",\"IsStaticGeometry\",\"IsStatusBar\",\"IsSysTrayIcon\",\"IsText3D\",\"IsTexture\",\"IsThread\",\"IsToolBar\",\"IsWindow\",\"IsWindow3D\",\"IsXML\",\"JoystickAxisX\",\"JoystickAxisY\",\"JoystickAxisZ\",\"JoystickButton\",\"JoystickName\",\"JSONArraySize\",\"JSONErrorLine\",\"JSONErrorMessage\",\"JSONErrorPosition\",\"JSONMemberKey\",\"JSONMemberValue\",\"JSONObjectSize\",\"JSONType\",\"JSONValue\",\"KeyboardInkey\",\"KeyboardMode\",\"KeyboardPushed\",\"KeyboardReleased\",\"KillProgram\",\"KillThread\",\"LastElement\",\"LCase\",\"Left\",\"Len\",\"LensFlareEffectColor\",\"LibraryFunctionAddress\",\"LibraryFunctionName\",\"LibraryID\",\"LightAttenuation\",\"LightDirection\",\"LightDirectionX\",\"LightDirectionY\",\"LightDirectionZ\",\"LightID\",\"LightLookAt\",\"LightPitch\",\"LightRoll\",\"LightX\",\"LightY\",\"LightYaw\",\"LightZ\",\"Line\",\"LinearGradient\",\"LineXY\",\"ListIconGadget\",\"ListIndex\",\"ListSize\",\"ListViewGadget\",\"ListViewGadget3D\",\"LoadFont\",\"LoadImage\",\"LoadJSON\",\"LoadMesh\",\"LoadMovie\",\"LoadMusic\",\"LoadSound\",\"LoadSound3D\",\"LoadSprite\",\"LoadTexture\",\"LoadWorld\",\"LoadXML\",\"Loc\",\"LockMutex\",\"Lof\",\"Log\",\"Log10\",\"LSet\",\"LTrim\",\"MailProgress\",\"MainXMLNode\",\"MakeIPAddress\",\"MapKey\",\"MapSize\",\"MatchRegularExpression\",\"MaterialBlendingMode\",\"MaterialCullingMode\",\"MaterialFilteringMode\",\"MaterialFog\",\"MaterialID\",\"MaterialShadingMode\",\"MaterialShininess\",\"MD5FileFingerprint\",\"MD5Fingerprint\",\"MDIGadget\",\"MemorySize\",\"MemoryStatus\",\"MemoryStringLength\",\"MenuBar\",\"MenuHeight\",\"MenuID\",\"MenuItem\",\"MenuTitle\",\"MergeLists\",\"MeshFace\",\"MeshID\",\"MeshIndex\",\"MeshIndexCount\",\"MeshPoseCount\",\"MeshPoseName\",\"MeshRadius\",\"MeshVertexColor\",\"MeshVertexCount\",\"MeshVertexNormal\",\"MeshVertexPosition\",\"MeshVertexTangent\",\"MeshVertexTextureCoordinate\",\"MessageRequester\",\"Mid\",\"Minute\",\"Mod\",\"Month\",\"MouseButton\",\"MouseDeltaX\",\"MouseDeltaY\",\"MouseLocate\",\"MousePick\",\"MouseRayCast\",\"MouseWheel\",\"MouseX\",\"MouseY\",\"MoveBillboard\",\"MoveBillboardGroup\",\"MoveCamera\",\"MoveElement\",\"MoveEntity\",\"MoveEntityBone\",\"MoveLight\",\"MoveMemory\",\"MoveNode\",\"MoveParticleEmitter\",\"MoveText3D\",\"MoveXMLNode\",\"MovieAudio\",\"MovieHeight\",\"MovieInfo\",\"MovieLength\",\"MovieSeek\",\"MovieStatus\",\"MovieWidth\",\"MusicVolume\",\"NaN\",\"NetworkClientEvent\",\"NetworkServerEvent\",\"NewPrinterPage\",\"NextDatabaseDriver\",\"NextDatabaseRow\",\"NextDirectoryEntry\",\"NextElement\",\"NextEnvironmentVariable\",\"NextFingerprint\",\"NextFTPDirectoryEntry\",\"NextInstruction\",\"NextIPAddress\",\"NextJSONMember\",\"NextLibraryFunction\",\"NextMapElement\",\"NextPackEntry\",\"NextPreferenceGroup\",\"NextPreferenceKey\",\"NextRegularExpressionMatch\",\"NextScreenMode\",\"NextSelectedFilename\",\"NextWorldCollision\",\"NextXMLAttribute\",\"NextXMLNode\",\"NodeAnimationKeyFramePitch\",\"NodeAnimationKeyFrameRoll\",\"NodeAnimationKeyFrameX\",\"NodeAnimationKeyFrameY\",\"NodeAnimationKeyFrameYaw\",\"NodeAnimationKeyFrameZ\",\"NodeAnimationStatus\",\"NodeFixedYawAxis\",\"NodeID\",\"NodeLookAt\",\"NodePitch\",\"NodeRoll\",\"NodeX\",\"NodeY\",\"NodeYaw\",\"NodeZ\",\"NormalizeMesh\",\"NormalX\",\"NormalY\",\"NormalZ\",\"OnErrorCall\",\"OnErrorDefault\",\"OnErrorExit\",\"OnErrorGoto\",\"OpenConsole\",\"OpenCryptRandom\",\"OpenDatabase\",\"OpenDatabaseRequester\",\"OpenFile\",\"OpenFileRequester\",\"OpenFTP\",\"OpenGadgetList\",\"OpenGadgetList3D\",\"OpenGLGadget\",\"OpenHelp\",\"OpenLibrary\",\"OpenNetworkConnection\",\"OpenPack\",\"OpenPreferences\",\"OpenScreen\",\"OpenSerialPort\",\"OpenSubMenu\",\"OpenWindow\",\"OpenWindow3D\",\"OpenWindowedScreen\",\"OpenXMLDialog\",\"OptionGadget\",\"OptionGadget3D\",\"OSVersion\",\"OutputDepth\",\"OutputHeight\",\"OutputWidth\",\"PackEntryName\",\"PackEntrySize\",\"PackEntryType\",\"PanelGadget\",\"PanelGadget3D\",\"ParentXMLNode\",\"Parse3DScripts\",\"ParseDate\",\"ParseJSON\",\"ParseXML\",\"ParticleColorFader\",\"ParticleColorRange\",\"ParticleEmissionRate\",\"ParticleEmitterDirection\",\"ParticleEmitterID\",\"ParticleEmitterX\",\"ParticleEmitterY\",\"ParticleEmitterZ\",\"ParticleMaterial\",\"ParticleSize\",\"ParticleSpeedFactor\",\"ParticleTimeToLive\",\"ParticleVelocity\",\"PathRequester\",\"PauseAudioCD\",\"PauseMovie\",\"PauseSound\",\"PauseThread\",\"PeekA\",\"PeekB\",\"PeekC\",\"PeekD\",\"PeekF\",\"PeekI\",\"PeekL\",\"PeekQ\",\"PeekS\",\"PeekU\",\"PeekW\",\"PickX\",\"PickY\",\"PickZ\",\"Pitch\",\"PlayAudioCD\",\"PlayMovie\",\"PlayMusic\",\"PlaySound\",\"PlaySound3D\",\"Plot\",\"Point\",\"PointJoint\",\"PointPick\",\"PokeA\",\"PokeB\",\"PokeC\",\"PokeD\",\"PokeF\",\"PokeI\",\"PokeL\",\"PokeQ\",\"PokeS\",\"PokeU\",\"PokeW\",\"PopListPosition\",\"PopMapPosition\",\"PostEvent\",\"Pow\",\"PreferenceComment\",\"PreferenceGroup\",\"PreferenceGroupName\",\"PreferenceKeyName\",\"PreferenceKeyValue\",\"PreviousDatabaseRow\",\"PreviousElement\",\"PreviousXMLNode\",\"Print\",\"PrinterOutput\",\"PrinterPageHeight\",\"PrinterPageWidth\",\"PrintN\",\"PrintRequester\",\"ProgramExitCode\",\"ProgramFilename\",\"ProgramID\",\"ProgramParameter\",\"ProgramRunning\",\"ProgressBarGadget\",\"ProgressBarGadget3D\",\"PurifierGranularity\",\"PushListPosition\",\"PushMapPosition\",\"Radian\",\"RaiseError\",\"Random\",\"RandomData\",\"RandomizeArray\",\"RandomizeList\",\"RandomSeed\",\"RawKey\",\"RayCast\",\"RayCollide\",\"RayPick\",\"ReadAsciiCharacter\",\"ReadByte\",\"ReadCharacter\",\"ReadConsoleData\",\"ReadData\",\"ReadDouble\",\"ReadFile\",\"ReadFloat\",\"ReadInteger\",\"ReadLong\",\"ReadPreferenceDouble\",\"ReadPreferenceFloat\",\"ReadPreferenceInteger\",\"ReadPreferenceLong\",\"ReadPreferenceQuad\",\"ReadPreferenceString\",\"ReadProgramData\",\"ReadProgramError\",\"ReadProgramString\",\"ReadQuad\",\"ReadSerialPortData\",\"ReadString\",\"ReadStringFormat\",\"ReadUnicodeCharacter\",\"ReadWord\",\"ReAllocateMemory\",\"ReceiveFTPFile\",\"ReceiveHTTPFile\",\"ReceiveNetworkData\",\"Red\",\"RegularExpressionError\",\"RegularExpressionGroup\",\"RegularExpressionGroupLength\",\"RegularExpressionGroupPosition\",\"RegularExpressionMatchLength\",\"RegularExpressionMatchPosition\",\"RegularExpressionMatchString\",\"RegularExpressionNamedGroup\",\"RegularExpressionNamedGroupLength\",\"RegularExpressionNamedGroupPosition\",\"ReleaseMouse\",\"ReloadMaterial\",\"RemoveBillboard\",\"RemoveEnvironmentVariable\",\"RemoveGadgetColumn\",\"RemoveGadgetItem\",\"RemoveGadgetItem3D\",\"RemoveJSONElement\",\"RemoveJSONMember\",\"RemoveKeyboardShortcut\",\"RemoveMailRecipient\",\"RemoveMaterialLayer\",\"RemovePackFile\",\"RemovePreferenceGroup\",\"RemovePreferenceKey\",\"RemoveString\",\"RemoveSysTrayIcon\",\"RemoveWindowTimer\",\"RemoveXMLAttribute\",\"RenameFile\",\"RenameFTPFile\",\"RenderWorld\",\"ReplaceRegularExpression\",\"ReplaceString\",\"ResetGradientColors\",\"ResetList\",\"ResetMap\",\"ResetMaterial\",\"ResetProfiler\",\"ResizeBillboard\",\"ResizeGadget\",\"ResizeGadget3D\",\"ResizeImage\",\"ResizeJSONElements\",\"ResizeMovie\",\"ResizeParticleEmitter\",\"ResizeWindow\",\"ResizeWindow3D\",\"ResolveXMLAttributeName\",\"ResolveXMLNodeName\",\"ResumeAudioCD\",\"ResumeMovie\",\"ResumeSound\",\"ResumeThread\",\"ReverseString\",\"RGB\",\"RGBA\",\"RibbonEffectColor\",\"RibbonEffectWidth\",\"Right\",\"Roll\",\"RootXMLNode\",\"RotateBillboardGroup\",\"RotateCamera\",\"RotateEntity\",\"RotateEntityBone\",\"RotateLight\",\"RotateMaterial\",\"RotateNode\",\"RotateSprite\",\"Round\",\"RoundBox\",\"RSet\",\"RTrim\",\"RunProgram\",\"SaveDebugOutput\",\"SaveFileRequester\",\"SaveImage\",\"SaveJSON\",\"SaveMesh\",\"SaveRenderTexture\",\"SaveSprite\",\"SaveTerrain\",\"SaveXML\",\"ScaleEntity\",\"ScaleMaterial\",\"ScaleNode\",\"ScaleText3D\",\"ScintillaGadget\",\"ScintillaSendMessage\",\"ScreenDepth\",\"ScreenHeight\",\"ScreenID\",\"ScreenModeDepth\",\"ScreenModeHeight\",\"ScreenModeRefreshRate\",\"ScreenModeWidth\",\"ScreenOutput\",\"ScreenWidth\",\"ScrollAreaGadget\",\"ScrollAreaGadget3D\",\"ScrollBarGadget\",\"ScrollBarGadget3D\",\"ScrollMaterial\",\"Second\",\"SecondWorldCollisionEntity\",\"SelectedFilePattern\",\"SelectedFontColor\",\"SelectedFontName\",\"SelectedFontSize\",\"SelectedFontStyle\",\"SelectElement\",\"SendFTPFile\",\"SendMail\",\"SendNetworkData\",\"SendNetworkString\",\"SerialPortError\",\"SerialPortID\",\"SerialPortTimeouts\",\"ServerID\",\"SetActiveGadget\",\"SetActiveGadget3D\",\"SetActiveWindow\",\"SetActiveWindow3D\",\"SetClipboardImage\",\"SetClipboardText\",\"SetCurrentDirectory\",\"SetDatabaseBlob\",\"SetDragCallback\",\"SetDropCallback\",\"SetEntityAnimationLength\",\"SetEntityAnimationTime\",\"SetEntityAnimationWeight\",\"SetEntityAttribute\",\"SetEntityCollisionFilter\",\"SetEntityMaterial\",\"SetEnvironmentVariable\",\"SetFileAttributes\",\"SetFileDate\",\"SetFrameRate\",\"SetFTPDirectory\",\"SetGadgetAttribute\",\"SetGadgetAttribute3D\",\"SetGadgetColor\",\"SetGadgetData\",\"SetGadgetData3D\",\"SetGadgetFont\",\"SetGadgetItemAttribute\",\"SetGadgetItemColor\",\"SetGadgetItemData\",\"SetGadgetItemData3D\",\"SetGadgetItemImage\",\"SetGadgetItemState\",\"SetGadgetItemState3D\",\"SetGadgetItemText\",\"SetGadgetItemText3D\",\"SetGadgetState\",\"SetGadgetState3D\",\"SetGadgetText\",\"SetGadgetText3D\",\"SetGUITheme3D\",\"SetJointAttribute\",\"SetJSONArray\",\"SetJSONBoolean\",\"SetJSONDouble\",\"SetJSONFloat\",\"SetJSONInteger\",\"SetJSONNull\",\"SetJSONObject\",\"SetJSONQuad\",\"SetJSONString\",\"SetLightColor\",\"SetMailAttribute\",\"SetMailBody\",\"SetMaterialAttribute\",\"SetMaterialColor\",\"SetMenuItemState\",\"SetMenuItemText\",\"SetMenuTitleText\",\"SetMeshData\",\"SetMeshMaterial\",\"SetMusicPosition\",\"SetNodeAnimationKeyFramePosition\",\"SetNodeAnimationKeyFrameRotation\",\"SetNodeAnimationKeyFrameScale\",\"SetNodeAnimationLength\",\"SetNodeAnimationTime\",\"SetNodeAnimationWeight\",\"SetOrientation\",\"SetOrigin\",\"SetRenderQueue\",\"SetRuntimeDouble\",\"SetRuntimeInteger\",\"SetRuntimeString\",\"SetSerialPortStatus\",\"SetSoundFrequency\",\"SetSoundPosition\",\"SetTerrainTileHeightAtPoint\",\"SetTerrainTileLayerBlend\",\"SetToolBarButtonState\",\"SetupTerrains\",\"SetURLPart\",\"SetWindowCallback\",\"SetWindowColor\",\"SetWindowData\",\"SetWindowState\",\"SetWindowTitle\",\"SetWindowTitle3D\",\"SetXMLAttribute\",\"SetXMLEncoding\",\"SetXMLNodeName\",\"SetXMLNodeOffset\",\"SetXMLNodeText\",\"SetXMLStandalone\",\"SHA1FileFingerprint\",\"SHA1Fingerprint\",\"ShortcutGadget\",\"ShowAssemblyViewer\",\"ShowCallstack\",\"ShowDebugOutput\",\"ShowGUI\",\"ShowLibraryViewer\",\"ShowMemoryViewer\",\"ShowProfiler\",\"ShowVariableViewer\",\"ShowWatchlist\",\"Sign\",\"SignalSemaphore\",\"Sin\",\"SinH\",\"SkyBox\",\"SkyDome\",\"SliderJoint\",\"SmartWindowRefresh\",\"SortArray\",\"SortList\",\"SortStructuredArray\",\"SortStructuredList\",\"SoundCone3D\",\"SoundID3D\",\"SoundLength\",\"SoundListenerLocate\",\"SoundPan\",\"SoundRange3D\",\"SoundStatus\",\"SoundVolume\",\"SoundVolume3D\",\"Space\",\"SpinGadget\",\"SpinGadget3D\",\"SplinePointX\",\"SplinePointY\",\"SplinePointZ\",\"SplineX\",\"SplineY\",\"SplineZ\",\"SplitList\",\"SplitterGadget\",\"SpotLightRange\",\"SpriteBlendingMode\",\"SpriteCollision\",\"SpriteDepth\",\"SpriteHeight\",\"SpriteID\",\"SpriteOutput\",\"SpritePixelCollision\",\"SpriteQuality\",\"SpriteWidth\",\"Sqr\",\"StartAESCipher\",\"StartDrawing\",\"StartEntityAnimation\",\"StartNodeAnimation\",\"StartPrinting\",\"StartProfiler\",\"StatusBarHeight\",\"StatusBarID\",\"StatusBarImage\",\"StatusBarProgress\",\"StatusBarText\",\"StickyWindow\",\"StopAudioCD\",\"StopDrawing\",\"StopEntityAnimation\",\"StopMovie\",\"StopMusic\",\"StopNodeAnimation\",\"StopPrinting\",\"StopProfiler\",\"StopSound\",\"StopSound3D\",\"Str\",\"StrD\",\"StrF\",\"StringByteLength\",\"StringField\",\"StringGadget\",\"StringGadget3D\",\"StrU\",\"SubMeshCount\",\"Sun\",\"SwapElements\",\"SwitchCamera\",\"SysTrayIconToolTip\",\"Tan\",\"TanH\",\"TerrainHeight\",\"TerrainLocate\",\"TerrainMousePick\",\"TerrainPhysicBody\",\"TerrainRenderMode\",\"TerrainTileHeightAtPosition\",\"TerrainTileLayerMapSize\",\"TerrainTilePointX\",\"TerrainTilePointY\",\"TerrainTileSize\",\"Text3DAlignment\",\"Text3DCaption\",\"Text3DColor\",\"Text3DID\",\"TextGadget\",\"TextGadget3D\",\"TextHeight\",\"TextureHeight\",\"TextureID\",\"TextureOutput\",\"TextureWidth\",\"TextWidth\",\"ThreadID\",\"ThreadPriority\",\"ToolBarHeight\",\"ToolBarID\",\"ToolBarImageButton\",\"ToolBarSeparator\",\"ToolBarStandardButton\",\"ToolBarToolTip\",\"TrackBarGadget\",\"TransformMesh\",\"TransformSprite\",\"TransparentSpriteColor\",\"TreeGadget\",\"Trim\",\"TruncateFile\",\"TryLockMutex\",\"TrySemaphore\",\"UCase\",\"UnbindEvent\",\"UnbindGadgetEvent\",\"UnbindMenuEvent\",\"UnclipOutput\",\"UncompressMemory\",\"UncompressPackFile\",\"UncompressPackMemory\",\"UnlockMutex\",\"UpdateEntityAnimation\",\"UpdateMesh\",\"UpdateMeshBoundingBox\",\"UpdateRenderTexture\",\"UpdateSplinePoint\",\"UpdateTerrain\",\"UpdateTerrainTileLayerBlend\",\"UpdateVertexPoseReference\",\"URLDecoder\",\"URLEncoder\",\"UseAudioCD\",\"UseBriefLZPacker\",\"UseFLACSoundDecoder\",\"UseGadgetList\",\"UseJCALG1Packer\",\"UseJPEG2000ImageDecoder\",\"UseJPEG2000ImageEncoder\",\"UseJPEGImageDecoder\",\"UseJPEGImageEncoder\",\"UseLZMAPacker\",\"UseODBCDatabase\",\"UseOGGSoundDecoder\",\"UsePNGImageDecoder\",\"UsePNGImageEncoder\",\"UsePostgreSQLDatabase\",\"UserName\",\"UseSQLiteDatabase\",\"UseTGAImageDecoder\",\"UseTIFFImageDecoder\",\"UseZipPacker\",\"Val\",\"ValD\",\"ValF\",\"VertexPoseReferenceCount\",\"WaitProgram\",\"WaitSemaphore\",\"WaitThread\",\"WaitWindowEvent\",\"WaterColor\",\"WaterHeight\",\"WebGadget\",\"WebGadgetPath\",\"WindowBounds\",\"WindowEvent\",\"WindowEvent3D\",\"WindowHeight\",\"WindowHeight3D\",\"WindowID\",\"WindowID3D\",\"WindowMouseX\",\"WindowMouseY\",\"WindowOutput\",\"WindowWidth\",\"WindowWidth3D\",\"WindowX\",\"WindowX3D\",\"WindowY\",\"WindowY3D\",\"WorldCollisionAppliedImpulse\",\"WorldCollisionContact\",\"WorldCollisionNormal\",\"WorldDebug\",\"WorldGravity\",\"WorldShadows\",\"WriteAsciiCharacter\",\"WriteByte\",\"WriteCharacter\",\"WriteConsoleData\",\"WriteData\",\"WriteDouble\",\"WriteFloat\",\"WriteInteger\",\"WriteLong\",\"WritePreferenceDouble\",\"WritePreferenceFloat\",\"WritePreferenceInteger\",\"WritePreferenceLong\",\"WritePreferenceQuad\",\"WritePreferenceString\",\"WriteProgramData\",\"WriteProgramString\",\"WriteProgramStringN\",\"WriteQuad\",\"WriteSerialPortData\",\"WriteSerialPortString\",\"WriteString\",\"WriteStringFormat\",\"WriteStringN\",\"WriteUnicodeCharacter\",\"WriteWord\",\"XMLAttributeName\",\"XMLAttributeValue\",\"XMLChildCount\",\"XMLError\",\"XMLErrorLine\",\"XMLErrorPosition\",\"XMLNodeFromID\",\"XMLNodeFromPath\",\"XMLNodePath\",\"XMLNodeType\",\"XMLStatus\",\"Yaw\",\"Year\",\"ZoomSprite\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"CallDebugger\",\"Debug\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\#+[a-zA-Z_\\\\x7f-\\\\xff][a-zA-Z0-9_\\\\x7f-\\\\xff]*\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PureBasic\",\"String\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*;+\\\\s*BEGIN.*$\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*;+\\\\s*END.*$\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = DetectChar ';', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"PureBasic\",\"Comment1\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"PureBasic\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Alexander Clay (Tuireann@EpicBasic.org);Sven Langenkamp (ace@kylixforum.de)\", sVersion = \"6\", sLicense = \"LGPL\", sExtensions = [\"*.pb\",\"*.pbi\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Python.hs b/src/Skylighting/Syntax/Python.hs
--- a/src/Skylighting/Syntax/Python.hs
+++ b/src/Skylighting/Syntax/Python.hs
@@ -2,2795 +2,6 @@
 module Skylighting.Syntax.Python (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Python"
-  , sFilename = "python.xml"
-  , sShortname = "Python"
-  , sContexts =
-      fromList
-        [ ( "#CheckForString"
-          , Context
-              { cName = "#CheckForString"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "CheckForStringNext" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "CheckForStringNext"
-          , Context
-              { cName = "CheckForStringNext"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "CheckForStringNext" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "StringVariants" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "CommentVariants"
-          , Context
-              { cName = "CommentVariants"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "u?'''"
-                              , reCompiled = Just (compileRegex False "u?'''")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Triple A-comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "u?\"\"\""
-                              , reCompiled = Just (compileRegex False "u?\"\"\"")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Triple Q-comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "u?'"
-                              , reCompiled = Just (compileRegex False "u?'")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Single A-comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "u?\""
-                              , reCompiled = Just (compileRegex False "u?\"")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Single Q-comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(u?r|ru)'''"
-                              , reCompiled = Just (compileRegex False "(u?r|ru)'''")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Triple A-comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(u?r|ru)\"\"\""
-                              , reCompiled = Just (compileRegex False "(u?r|ru)\"\"\"")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Triple Q-comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(u?r|ru)'"
-                              , reCompiled = Just (compileRegex False "(u?r|ru)'")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Single A-comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(u?r|ru)\""
-                              , reCompiled = Just (compileRegex False "(u?r|ru)\"")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Single Q-comment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Dictionary"
-          , Context
-              { cName = "Dictionary"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "StringVariants" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "Normal" )
-                      , 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
-              }
-          )
-        , ( "Hash comment"
-          , Context
-              { cName = "Hash comment"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Modelines" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "List"
-          , Context
-              { cName = "List"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "StringVariants" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "Normal" )
-                      , 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
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !#%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "as" , "from" , "import" ])
-                      , rAttribute = ImportTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !#%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "class" , "def" , "del" , "global" , "lambda" , "nonlocal" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !#%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "and" , "in" , "is" , "not" , "or" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !#%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "assert"
-                               , "async"
-                               , "await"
-                               , "break"
-                               , "continue"
-                               , "elif"
-                               , "else"
-                               , "except"
-                               , "finally"
-                               , "for"
-                               , "if"
-                               , "pass"
-                               , "raise"
-                               , "return"
-                               , "try"
-                               , "while"
-                               , "with"
-                               , "yield"
-                               ])
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !#%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "__import__"
-                               , "abs"
-                               , "all"
-                               , "any"
-                               , "apply"
-                               , "ascii"
-                               , "basestring"
-                               , "bin"
-                               , "bool"
-                               , "buffer"
-                               , "bytearray"
-                               , "bytes"
-                               , "callable"
-                               , "chr"
-                               , "classmethod"
-                               , "cmp"
-                               , "coerce"
-                               , "compile"
-                               , "complex"
-                               , "delattr"
-                               , "dict"
-                               , "dir"
-                               , "divmod"
-                               , "enumerate"
-                               , "eval"
-                               , "exec"
-                               , "execfile"
-                               , "file"
-                               , "filter"
-                               , "float"
-                               , "format"
-                               , "frozenset"
-                               , "getattr"
-                               , "globals"
-                               , "hasattr"
-                               , "hash"
-                               , "help"
-                               , "hex"
-                               , "id"
-                               , "input"
-                               , "int"
-                               , "intern"
-                               , "isinstance"
-                               , "issubclass"
-                               , "iter"
-                               , "len"
-                               , "list"
-                               , "locals"
-                               , "long"
-                               , "map"
-                               , "max"
-                               , "memoryview"
-                               , "min"
-                               , "next"
-                               , "object"
-                               , "oct"
-                               , "open"
-                               , "ord"
-                               , "pow"
-                               , "print"
-                               , "property"
-                               , "range"
-                               , "raw_input"
-                               , "reduce"
-                               , "reload"
-                               , "repr"
-                               , "reversed"
-                               , "round"
-                               , "set"
-                               , "setattr"
-                               , "slice"
-                               , "sorted"
-                               , "staticmethod"
-                               , "str"
-                               , "sum"
-                               , "super"
-                               , "tuple"
-                               , "type"
-                               , "unichr"
-                               , "unicode"
-                               , "vars"
-                               , "xrange"
-                               , "zip"
-                               ])
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !#%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Ellipsis"
-                               , "False"
-                               , "None"
-                               , "NotImplemented"
-                               , "True"
-                               , "__debug__"
-                               , "__file__"
-                               , "__name__"
-                               , "self"
-                               ])
-                      , rAttribute = VariableTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !#%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "SIGNAL" , "SLOT" , "connect" ])
-                      , rAttribute = ExtensionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !#%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ArithmeticError"
-                               , "AssertionError"
-                               , "AttributeError"
-                               , "BaseException"
-                               , "BlockingIOError"
-                               , "BrokenPipeError"
-                               , "BufferError"
-                               , "BytesWarning"
-                               , "ChildProcessError"
-                               , "ConnectionAbortedError"
-                               , "ConnectionError"
-                               , "ConnectionRefusedError"
-                               , "ConnectionResetError"
-                               , "DeprecationWarning"
-                               , "EOFError"
-                               , "EnvironmentError"
-                               , "Exception"
-                               , "FileExistsError"
-                               , "FileNotFoundError"
-                               , "FloatingPointError"
-                               , "FutureWarning"
-                               , "GeneratorExit"
-                               , "IOError"
-                               , "ImportError"
-                               , "ImportWarning"
-                               , "IndentationError"
-                               , "IndexError"
-                               , "InterruptedError"
-                               , "IsADirectoryError"
-                               , "KeyError"
-                               , "KeyboardInterrupt"
-                               , "LookupError"
-                               , "MemoryError"
-                               , "NameError"
-                               , "NotADirectoryError"
-                               , "NotImplementedError"
-                               , "OSError"
-                               , "OverflowError"
-                               , "PendingDeprecationWarning"
-                               , "PermissionError"
-                               , "ProcessLookupError"
-                               , "ReferenceError"
-                               , "ResourceWarning"
-                               , "RuntimeError"
-                               , "RuntimeWarning"
-                               , "StandardError"
-                               , "StopIteration"
-                               , "SyntaxError"
-                               , "SyntaxWarning"
-                               , "SystemError"
-                               , "SystemExit"
-                               , "TabError"
-                               , "TimeoutError"
-                               , "TypeError"
-                               , "UnboundLocalError"
-                               , "UnicodeDecodeError"
-                               , "UnicodeEncodeError"
-                               , "UnicodeError"
-                               , "UnicodeTranslateError"
-                               , "UnicodeWarning"
-                               , "UserWarning"
-                               , "ValueError"
-                               , "Warning"
-                               , "WindowsError"
-                               , "ZeroDivisionError"
-                               ])
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !#%&'()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "__abs__"
-                               , "__add__"
-                               , "__aenter__"
-                               , "__aexit__"
-                               , "__aiter__"
-                               , "__and__"
-                               , "__anext__"
-                               , "__await__"
-                               , "__bytes__"
-                               , "__call__"
-                               , "__cmp__"
-                               , "__coerce__"
-                               , "__complex__"
-                               , "__contains__"
-                               , "__del__"
-                               , "__delattr__"
-                               , "__delete__"
-                               , "__delitem__"
-                               , "__delslice__"
-                               , "__dir__"
-                               , "__div__"
-                               , "__divmod__"
-                               , "__enter__"
-                               , "__eq__"
-                               , "__exit__"
-                               , "__float__"
-                               , "__floordiv__"
-                               , "__format__"
-                               , "__ge__"
-                               , "__get__"
-                               , "__getattr__"
-                               , "__getattribute__"
-                               , "__getitem__"
-                               , "__getslice__"
-                               , "__gt__"
-                               , "__hash__"
-                               , "__hex__"
-                               , "__iadd__"
-                               , "__iand__"
-                               , "__idiv__"
-                               , "__ifloordiv__"
-                               , "__ilshift__"
-                               , "__imod__"
-                               , "__imul__"
-                               , "__index__"
-                               , "__init__"
-                               , "__int__"
-                               , "__invert__"
-                               , "__ior__"
-                               , "__ipow__"
-                               , "__irshift__"
-                               , "__isub__"
-                               , "__iter__"
-                               , "__itruediv__"
-                               , "__ixor__"
-                               , "__le__"
-                               , "__len__"
-                               , "__long__"
-                               , "__lshift__"
-                               , "__lt__"
-                               , "__mod__"
-                               , "__mul__"
-                               , "__ne__"
-                               , "__neg__"
-                               , "__new__"
-                               , "__next__"
-                               , "__nonzero__"
-                               , "__oct__"
-                               , "__or__"
-                               , "__pos__"
-                               , "__pow__"
-                               , "__radd__"
-                               , "__rand__"
-                               , "__rcmp__"
-                               , "__rdiv__"
-                               , "__rdivmod__"
-                               , "__repr__"
-                               , "__reversed__"
-                               , "__rfloordiv__"
-                               , "__rlshift__"
-                               , "__rmod__"
-                               , "__rmul__"
-                               , "__ror__"
-                               , "__rpow__"
-                               , "__rrshift__"
-                               , "__rshift__"
-                               , "__rsub__"
-                               , "__rtruediv__"
-                               , "__rxor__"
-                               , "__set__"
-                               , "__setattr__"
-                               , "__setitem__"
-                               , "__setslice__"
-                               , "__str__"
-                               , "__sub__"
-                               , "__truediv__"
-                               , "__unicode__"
-                               , "__xor__"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z_][a-zA-Z_0-9]{2,}"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z_][a-zA-Z_0-9]{2,}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  " ((([0-9]*\\.[0-9]+|[0-9]+\\.)|([0-9]+|([0-9]*\\.[0-9]+|[0-9]+\\.))[eE](\\+|-)?[0-9]+)|[0-9]+)[jJ]"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       " ((([0-9]*\\.[0-9]+|[0-9]+\\.)|([0-9]+|([0-9]*\\.[0-9]+|[0-9]+\\.))[eE](\\+|-)?[0-9]+)|[0-9]+)[jJ]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = StringDetect "L"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Dictionary" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "List" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Tuple" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "CommentVariants" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Hash comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "StringVariants" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@[_a-zA-Z][\\._a-zA-Z0-9]*"
-                              , reCompiled =
-                                  Just (compileRegex True "@[_a-zA-Z][\\._a-zA-Z0-9]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AttributeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "+*/%\\|=;\\!<>!^&~-@"
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Raw A-F-String"
-          , Context
-              { cName = "Raw A-F-String"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringinterpolation" )
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Python" , "#CheckForString" ) ]
-                      }
-                  ]
-              , cAttribute = VerbatimStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Raw A-string"
-          , Context
-              { cName = "Raw A-string"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringformat" )
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Python" , "#CheckForString" ) ]
-                      }
-                  ]
-              , cAttribute = VerbatimStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Raw Q-F-String"
-          , Context
-              { cName = "Raw Q-F-String"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringinterpolation" )
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Python" , "#CheckForString" ) ]
-                      }
-                  ]
-              , cAttribute = VerbatimStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Raw Q-string"
-          , Context
-              { cName = "Raw Q-string"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringformat" )
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Python" , "#CheckForString" ) ]
-                      }
-                  ]
-              , cAttribute = VerbatimStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Raw Triple A-F-String"
-          , Context
-              { cName = "Raw Triple A-F-String"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringinterpolation" )
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "'''"
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Python" , "#CheckForString" ) ]
-                      }
-                  ]
-              , cAttribute = VerbatimStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Raw Triple A-string"
-          , Context
-              { cName = "Raw Triple A-string"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringformat" )
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "'''"
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Python" , "#CheckForString" ) ]
-                      }
-                  ]
-              , cAttribute = VerbatimStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Raw Triple Q-F-String"
-          , Context
-              { cName = "Raw Triple Q-F-String"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringinterpolation" )
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\"\"\""
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Python" , "#CheckForString" ) ]
-                      }
-                  ]
-              , cAttribute = VerbatimStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Raw Triple Q-string"
-          , Context
-              { cName = "Raw Triple Q-string"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringformat" )
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\"\"\""
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Python" , "#CheckForString" ) ]
-                      }
-                  ]
-              , cAttribute = VerbatimStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Single A-F-String"
-          , Context
-              { cName = "Single A-F-String"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringescape" )
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringinterpolation" )
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Python" , "#CheckForString" ) ]
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Single A-comment"
-          , Context
-              { cName = "Single A-comment"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts_indent" , "" )
-                      , 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
-              }
-          )
-        , ( "Single A-string"
-          , Context
-              { cName = "Single A-string"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringescape" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringformat" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Python" , "#CheckForString" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Single Q-F-String"
-          , Context
-              { cName = "Single Q-F-String"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringescape" )
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringinterpolation" )
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Python" , "#CheckForString" ) ]
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Single Q-comment"
-          , Context
-              { cName = "Single Q-comment"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts_indent" , "" )
-                      , 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
-              }
-          )
-        , ( "Single Q-string"
-          , Context
-              { cName = "Single Q-string"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringescape" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringformat" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Python" , "#CheckForString" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String Interpolation"
-          , Context
-              { cName = "String Interpolation"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(![rs])?(:([^}]?[<>=^])?[ +-]?#?0?[0-9]*(\\.[0-9]+)?[bcdeEfFgGnosxX%]?)?\\}"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(![rs])?(:([^}]?[<>=^])?[ +-]?#?0?[0-9]*(\\.[0-9]+)?[bcdeEfFgGnosxX%]?)?\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "Normal" )
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = SpecialCharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "StringVariants"
-          , Context
-              { cName = "StringVariants"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "u?'''"
-                              , reCompiled = Just (compileRegex False "u?'''")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Triple A-string" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "u?\"\"\""
-                              , reCompiled = Just (compileRegex False "u?\"\"\"")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Triple Q-string" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "u?'"
-                              , reCompiled = Just (compileRegex False "u?'")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Single A-string" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "u?\""
-                              , reCompiled = Just (compileRegex False "u?\"")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Single Q-string" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(u?r|ru)'''"
-                              , reCompiled = Just (compileRegex False "(u?r|ru)'''")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Raw Triple A-string" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(u?r|ru)\"\"\""
-                              , reCompiled = Just (compileRegex False "(u?r|ru)\"\"\"")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Raw Triple Q-string" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(u?r|ru)'"
-                              , reCompiled = Just (compileRegex False "(u?r|ru)'")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Raw A-string" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(u?r|ru)\""
-                              , reCompiled = Just (compileRegex False "(u?r|ru)\"")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Raw Q-string" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "f'''"
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Triple A-F-String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "f\"\"\""
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Triple Q-F-String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "f'"
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Single A-F-String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "f\""
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Single Q-F-String" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(fr|rf)'''"
-                              , reCompiled = Just (compileRegex False "(fr|rf)'''")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Raw Triple A-F-String" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(fr|rf)\"\"\""
-                              , reCompiled = Just (compileRegex False "(fr|rf)\"\"\"")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Raw Triple Q-F-String" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(fr|rf)'"
-                              , reCompiled = Just (compileRegex False "(fr|rf)'")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Raw A-F-String" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(fr|rf)\""
-                              , reCompiled = Just (compileRegex False "(fr|rf)\"")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = VerbatimStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "Raw Q-F-String" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Triple A-F-String"
-          , Context
-              { cName = "Triple A-F-String"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringescape" )
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringinterpolation" )
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "'''"
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Python" , "#CheckForString" ) ]
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Triple A-comment"
-          , Context
-              { cName = "Triple A-comment"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "'''"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts_indent" , "" )
-                      , 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
-              }
-          )
-        , ( "Triple A-string"
-          , Context
-              { cName = "Triple A-string"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringescape" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringformat" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "'''"
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Python" , "#CheckForString" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Triple Q-F-String"
-          , Context
-              { cName = "Triple Q-F-String"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringescape" )
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringinterpolation" )
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\"\"\""
-                      , rAttribute = SpecialStringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Python" , "#CheckForString" ) ]
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Triple Q-comment"
-          , Context
-              { cName = "Triple Q-comment"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\"\"\""
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts_indent" , "" )
-                      , 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
-              }
-          )
-        , ( "Triple Q-string"
-          , Context
-              { cName = "Triple Q-string"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringescape" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "stringformat" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "\"\"\""
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Push ( "Python" , "#CheckForString" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Tuple"
-          , Context
-              { cName = "Tuple"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "StringVariants" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Python" , "Normal" )
-                      , 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
-              }
-          )
-        , ( "stringescape"
-          , Context
-              { cName = "stringescape"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[\\\\'\"abfnrtv]"
-                              , reCompiled = Just (compileRegex True "\\\\[\\\\'\"abfnrtv]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[0-7]{1,3}"
-                              , reCompiled = Just (compileRegex True "\\\\[0-7]{1,3}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\x[0-9A-Fa-f]{2}"
-                              , reCompiled = Just (compileRegex True "\\\\x[0-9A-Fa-f]{2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\u[0-9A-Fa-f]{4}"
-                              , reCompiled = Just (compileRegex True "\\\\u[0-9A-Fa-f]{4}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\U[0-9A-Fa-f]{8}"
-                              , reCompiled = Just (compileRegex True "\\\\U[0-9A-Fa-f]{8}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\N\\{[a-zA-Z0-9\\- ]+\\}"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\N\\{[a-zA-Z0-9\\- ]+\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "stringformat"
-          , Context
-              { cName = "stringformat"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "%((\\([a-zA-Z0-9_]+\\))?[#0\\- +]?([1-9][0-9]*|\\*)?(\\.([1-9][0-9]*|\\*))?[hlL]?[crsdiouxXeEfFgG%]|prog|default)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "%((\\([a-zA-Z0-9_]+\\))?[#0\\- +]?([1-9][0-9]*|\\*)?(\\.([1-9][0-9]*|\\*))?[hlL]?[crsdiouxXeEfFgG%]|prog|default)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\{(([a-zA-Z0-9_]+|[0-9]+)(\\.[a-zA-Z0-9_]+|\\[[^ \\]]+\\])*)?(![rs])?(:([^}]?[<>=^])?[ +-]?#?0?[0-9]*(\\.[0-9]+)?[bcdeEfFgGnosxX%]?)?\\}"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\{(([a-zA-Z0-9_]+|[0-9]+)(\\.[a-zA-Z0-9_]+|\\[[^ \\]]+\\])*)?(![rs])?(:([^}]?[<>=^])?[ +-]?#?0?[0-9]*(\\.[0-9]+)?[bcdeEfFgGnosxX%]?)?\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '{' '{'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '}' '}'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = SpecialCharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "stringinterpolation"
-          , Context
-              { cName = "stringinterpolation"
-              , cSyntax = "Python"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '{' '{'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Python" , "String Interpolation" ) ]
-                      }
-                  ]
-              , cAttribute = SpecialStringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Michael Bueker"
-  , sVersion = "4"
-  , sLicense = ""
-  , sExtensions = [ "*.py" , "*.pyw" , "SConstruct" , "SConscript" ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Python\", sFilename = \"python.xml\", sShortname = \"Python\", sContexts = fromList [(\"#CheckForString\",Context {cName = \"#CheckForString\", cSyntax = \"Python\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = LineContinue, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"CheckForStringNext\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"CheckForStringNext\",Context {cName = \"CheckForStringNext\", cSyntax = \"Python\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = LineContinue, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"CheckForStringNext\")]},Rule {rMatcher = IncludeRules (\"Python\",\"StringVariants\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"CommentVariants\",Context {cName = \"CommentVariants\", cSyntax = \"Python\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"u?'''\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Triple A-comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"u?\\\"\\\"\\\"\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Triple Q-comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"u?'\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Single A-comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"u?\\\"\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Single Q-comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"(u?r|ru)'''\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Triple A-comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"(u?r|ru)\\\"\\\"\\\"\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Triple Q-comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"(u?r|ru)'\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Single A-comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"(u?r|ru)\\\"\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Single Q-comment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Dictionary\",Context {cName = \"Dictionary\", cSyntax = \"Python\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Python\",\"StringVariants\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Python\",\"Normal\"), 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}),(\"Hash comment\",Context {cName = \"Hash comment\", cSyntax = \"Python\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Modelines\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"List\",Context {cName = \"List\", cSyntax = \"Python\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ']', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Python\",\"StringVariants\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Python\",\"Normal\"), 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}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Python\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !#%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"as\",\"from\",\"import\"])), rAttribute = ImportTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !#%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"class\",\"def\",\"del\",\"global\",\"lambda\",\"nonlocal\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !#%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"and\",\"in\",\"is\",\"not\",\"or\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !#%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"assert\",\"async\",\"await\",\"break\",\"continue\",\"elif\",\"else\",\"except\",\"finally\",\"for\",\"if\",\"pass\",\"raise\",\"return\",\"try\",\"while\",\"with\",\"yield\"])), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !#%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"__import__\",\"abs\",\"all\",\"any\",\"apply\",\"ascii\",\"basestring\",\"bin\",\"bool\",\"buffer\",\"bytearray\",\"bytes\",\"callable\",\"chr\",\"classmethod\",\"cmp\",\"coerce\",\"compile\",\"complex\",\"delattr\",\"dict\",\"dir\",\"divmod\",\"enumerate\",\"eval\",\"exec\",\"execfile\",\"file\",\"filter\",\"float\",\"format\",\"frozenset\",\"getattr\",\"globals\",\"hasattr\",\"hash\",\"help\",\"hex\",\"id\",\"input\",\"int\",\"intern\",\"isinstance\",\"issubclass\",\"iter\",\"len\",\"list\",\"locals\",\"long\",\"map\",\"max\",\"memoryview\",\"min\",\"next\",\"object\",\"oct\",\"open\",\"ord\",\"pow\",\"print\",\"property\",\"range\",\"raw_input\",\"reduce\",\"reload\",\"repr\",\"reversed\",\"round\",\"set\",\"setattr\",\"slice\",\"sorted\",\"staticmethod\",\"str\",\"sum\",\"super\",\"tuple\",\"type\",\"unichr\",\"unicode\",\"vars\",\"xrange\",\"zip\"])), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !#%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"Ellipsis\",\"False\",\"None\",\"NotImplemented\",\"True\",\"__debug__\",\"__file__\",\"__name__\",\"self\"])), rAttribute = VariableTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !#%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"SIGNAL\",\"SLOT\",\"connect\"])), rAttribute = ExtensionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !#%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"ArithmeticError\",\"AssertionError\",\"AttributeError\",\"BaseException\",\"BlockingIOError\",\"BrokenPipeError\",\"BufferError\",\"BytesWarning\",\"ChildProcessError\",\"ConnectionAbortedError\",\"ConnectionError\",\"ConnectionRefusedError\",\"ConnectionResetError\",\"DeprecationWarning\",\"EOFError\",\"EnvironmentError\",\"Exception\",\"FileExistsError\",\"FileNotFoundError\",\"FloatingPointError\",\"FutureWarning\",\"GeneratorExit\",\"IOError\",\"ImportError\",\"ImportWarning\",\"IndentationError\",\"IndexError\",\"InterruptedError\",\"IsADirectoryError\",\"KeyError\",\"KeyboardInterrupt\",\"LookupError\",\"MemoryError\",\"NameError\",\"NotADirectoryError\",\"NotImplementedError\",\"OSError\",\"OverflowError\",\"PendingDeprecationWarning\",\"PermissionError\",\"ProcessLookupError\",\"ReferenceError\",\"ResourceWarning\",\"RuntimeError\",\"RuntimeWarning\",\"StandardError\",\"StopIteration\",\"SyntaxError\",\"SyntaxWarning\",\"SystemError\",\"SystemExit\",\"TabError\",\"TimeoutError\",\"TypeError\",\"UnboundLocalError\",\"UnicodeDecodeError\",\"UnicodeEncodeError\",\"UnicodeError\",\"UnicodeTranslateError\",\"UnicodeWarning\",\"UserWarning\",\"ValueError\",\"Warning\",\"WindowsError\",\"ZeroDivisionError\"])), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !#%&'()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"__abs__\",\"__add__\",\"__aenter__\",\"__aexit__\",\"__aiter__\",\"__and__\",\"__anext__\",\"__await__\",\"__bytes__\",\"__call__\",\"__cmp__\",\"__coerce__\",\"__complex__\",\"__contains__\",\"__del__\",\"__delattr__\",\"__delete__\",\"__delitem__\",\"__delslice__\",\"__dir__\",\"__div__\",\"__divmod__\",\"__enter__\",\"__eq__\",\"__exit__\",\"__float__\",\"__floordiv__\",\"__format__\",\"__ge__\",\"__get__\",\"__getattr__\",\"__getattribute__\",\"__getitem__\",\"__getslice__\",\"__gt__\",\"__hash__\",\"__hex__\",\"__iadd__\",\"__iand__\",\"__idiv__\",\"__ifloordiv__\",\"__ilshift__\",\"__imod__\",\"__imul__\",\"__index__\",\"__init__\",\"__int__\",\"__invert__\",\"__ior__\",\"__ipow__\",\"__irshift__\",\"__isub__\",\"__iter__\",\"__itruediv__\",\"__ixor__\",\"__le__\",\"__len__\",\"__long__\",\"__lshift__\",\"__lt__\",\"__mod__\",\"__mul__\",\"__ne__\",\"__neg__\",\"__new__\",\"__next__\",\"__nonzero__\",\"__oct__\",\"__or__\",\"__pos__\",\"__pow__\",\"__radd__\",\"__rand__\",\"__rcmp__\",\"__rdiv__\",\"__rdivmod__\",\"__repr__\",\"__reversed__\",\"__rfloordiv__\",\"__rlshift__\",\"__rmod__\",\"__rmul__\",\"__ror__\",\"__rpow__\",\"__rrshift__\",\"__rshift__\",\"__rsub__\",\"__rtruediv__\",\"__rxor__\",\"__set__\",\"__setattr__\",\"__setitem__\",\"__setslice__\",\"__str__\",\"__sub__\",\"__truediv__\",\"__unicode__\",\"__xor__\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z_][a-zA-Z_0-9]{2,}\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \" ((([0-9]*\\\\.[0-9]+|[0-9]+\\\\.)|([0-9]+|([0-9]*\\\\.[0-9]+|[0-9]+\\\\.))[eE](\\\\+|-)?[0-9]+)|[0-9]+)[jJ]\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [Rule {rMatcher = StringDetect \"L\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Dictionary\")]},Rule {rMatcher = DetectChar '[', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"List\")]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Tuple\")]},Rule {rMatcher = IncludeRules (\"Python\",\"CommentVariants\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Hash comment\")]},Rule {rMatcher = IncludeRules (\"Python\",\"StringVariants\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"@[_a-zA-Z][\\\\._a-zA-Z0-9]*\", reCaseSensitive = True}), rAttribute = AttributeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"+*/%\\\\|=;\\\\!<>!^&~-@\", rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Raw A-F-String\",Context {cName = \"Raw A-F-String\", cSyntax = \"Python\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Python\",\"stringinterpolation\"), rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Python\",\"#CheckForString\")]}], cAttribute = VerbatimStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Raw A-string\",Context {cName = \"Raw A-string\", cSyntax = \"Python\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Python\",\"stringformat\"), rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Python\",\"#CheckForString\")]}], cAttribute = VerbatimStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Raw Q-F-String\",Context {cName = \"Raw Q-F-String\", cSyntax = \"Python\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Python\",\"stringinterpolation\"), rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Python\",\"#CheckForString\")]}], cAttribute = VerbatimStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Raw Q-string\",Context {cName = \"Raw Q-string\", cSyntax = \"Python\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Python\",\"stringformat\"), rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Python\",\"#CheckForString\")]}], cAttribute = VerbatimStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Raw Triple A-F-String\",Context {cName = \"Raw Triple A-F-String\", cSyntax = \"Python\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Python\",\"stringinterpolation\"), rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"'''\", rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Python\",\"#CheckForString\")]}], cAttribute = VerbatimStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Raw Triple A-string\",Context {cName = \"Raw Triple A-string\", cSyntax = \"Python\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Python\",\"stringformat\"), rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"'''\", rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Python\",\"#CheckForString\")]}], cAttribute = VerbatimStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Raw Triple Q-F-String\",Context {cName = \"Raw Triple Q-F-String\", cSyntax = \"Python\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Python\",\"stringinterpolation\"), rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"\\\"\\\"\\\"\", rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Python\",\"#CheckForString\")]}], cAttribute = VerbatimStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Raw Triple Q-string\",Context {cName = \"Raw Triple Q-string\", cSyntax = \"Python\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Python\",\"stringformat\"), rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"\\\"\\\"\\\"\", rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Python\",\"#CheckForString\")]}], cAttribute = VerbatimStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Single A-F-String\",Context {cName = \"Single A-F-String\", cSyntax = \"Python\", cRules = [Rule {rMatcher = IncludeRules (\"Python\",\"stringescape\"), rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Python\",\"stringinterpolation\"), rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Python\",\"#CheckForString\")]}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Single A-comment\",Context {cName = \"Single A-comment\", cSyntax = \"Python\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Alerts_indent\",\"\"), 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}),(\"Single A-string\",Context {cName = \"Single A-string\", cSyntax = \"Python\", cRules = [Rule {rMatcher = IncludeRules (\"Python\",\"stringescape\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Python\",\"stringformat\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Python\",\"#CheckForString\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Single Q-F-String\",Context {cName = \"Single Q-F-String\", cSyntax = \"Python\", cRules = [Rule {rMatcher = IncludeRules (\"Python\",\"stringescape\"), rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Python\",\"stringinterpolation\"), rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Python\",\"#CheckForString\")]}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Single Q-comment\",Context {cName = \"Single Q-comment\", cSyntax = \"Python\", cRules = [Rule {rMatcher = HlCStringChar, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Alerts_indent\",\"\"), 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}),(\"Single Q-string\",Context {cName = \"Single Q-string\", cSyntax = \"Python\", cRules = [Rule {rMatcher = IncludeRules (\"Python\",\"stringescape\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Python\",\"stringformat\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Python\",\"#CheckForString\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String Interpolation\",Context {cName = \"String Interpolation\", cSyntax = \"Python\", cRules = [Rule {rMatcher = DetectChar '\\\\', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(![rs])?(:([^}]?[<>=^])?[ +-]?#?0?[0-9]*(\\\\.[0-9]+)?[bcdeEfFgGnosxX%]?)?\\\\}\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Python\",\"Normal\"), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = SpecialCharTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"StringVariants\",Context {cName = \"StringVariants\", cSyntax = \"Python\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"u?'''\", reCaseSensitive = False}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Triple A-string\")]},Rule {rMatcher = RegExpr (RE {reString = \"u?\\\"\\\"\\\"\", reCaseSensitive = False}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Triple Q-string\")]},Rule {rMatcher = RegExpr (RE {reString = \"u?'\", reCaseSensitive = False}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Single A-string\")]},Rule {rMatcher = RegExpr (RE {reString = \"u?\\\"\", reCaseSensitive = False}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Single Q-string\")]},Rule {rMatcher = RegExpr (RE {reString = \"(u?r|ru)'''\", reCaseSensitive = False}), rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Raw Triple A-string\")]},Rule {rMatcher = RegExpr (RE {reString = \"(u?r|ru)\\\"\\\"\\\"\", reCaseSensitive = False}), rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Raw Triple Q-string\")]},Rule {rMatcher = RegExpr (RE {reString = \"(u?r|ru)'\", reCaseSensitive = False}), rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Raw A-string\")]},Rule {rMatcher = RegExpr (RE {reString = \"(u?r|ru)\\\"\", reCaseSensitive = False}), rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Raw Q-string\")]},Rule {rMatcher = StringDetect \"f'''\", rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Triple A-F-String\")]},Rule {rMatcher = StringDetect \"f\\\"\\\"\\\"\", rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Triple Q-F-String\")]},Rule {rMatcher = StringDetect \"f'\", rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Single A-F-String\")]},Rule {rMatcher = StringDetect \"f\\\"\", rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Single Q-F-String\")]},Rule {rMatcher = RegExpr (RE {reString = \"(fr|rf)'''\", reCaseSensitive = False}), rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Raw Triple A-F-String\")]},Rule {rMatcher = RegExpr (RE {reString = \"(fr|rf)\\\"\\\"\\\"\", reCaseSensitive = False}), rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Raw Triple Q-F-String\")]},Rule {rMatcher = RegExpr (RE {reString = \"(fr|rf)'\", reCaseSensitive = False}), rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Raw A-F-String\")]},Rule {rMatcher = RegExpr (RE {reString = \"(fr|rf)\\\"\", reCaseSensitive = False}), rAttribute = VerbatimStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"Raw Q-F-String\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Triple A-F-String\",Context {cName = \"Triple A-F-String\", cSyntax = \"Python\", cRules = [Rule {rMatcher = IncludeRules (\"Python\",\"stringescape\"), rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Python\",\"stringinterpolation\"), rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"'''\", rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Python\",\"#CheckForString\")]}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Triple A-comment\",Context {cName = \"Triple A-comment\", cSyntax = \"Python\", cRules = [Rule {rMatcher = StringDetect \"'''\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Alerts_indent\",\"\"), 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}),(\"Triple A-string\",Context {cName = \"Triple A-string\", cSyntax = \"Python\", cRules = [Rule {rMatcher = IncludeRules (\"Python\",\"stringescape\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Python\",\"stringformat\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"'''\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Python\",\"#CheckForString\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Triple Q-F-String\",Context {cName = \"Triple Q-F-String\", cSyntax = \"Python\", cRules = [Rule {rMatcher = IncludeRules (\"Python\",\"stringescape\"), rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Python\",\"stringinterpolation\"), rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"\\\"\\\"\\\"\", rAttribute = SpecialStringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Python\",\"#CheckForString\")]}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Triple Q-comment\",Context {cName = \"Triple Q-comment\", cSyntax = \"Python\", cRules = [Rule {rMatcher = HlCChar, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"\\\"\\\"\\\"\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Alerts_indent\",\"\"), 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}),(\"Triple Q-string\",Context {cName = \"Triple Q-string\", cSyntax = \"Python\", cRules = [Rule {rMatcher = IncludeRules (\"Python\",\"stringescape\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Python\",\"stringformat\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"\\\"\\\"\\\"\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"Python\",\"#CheckForString\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Tuple\",Context {cName = \"Tuple\", cSyntax = \"Python\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Python\",\"StringVariants\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Python\",\"Normal\"), 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}),(\"stringescape\",Context {cName = \"stringescape\", cSyntax = \"Python\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[\\\\\\\\'\\\"abfnrtv]\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[0-7]{1,3}\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\x[0-9A-Fa-f]{2}\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\u[0-9A-Fa-f]{4}\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\U[0-9A-Fa-f]{8}\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\N\\\\{[a-zA-Z0-9\\\\- ]+\\\\}\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CharTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"stringformat\",Context {cName = \"stringformat\", cSyntax = \"Python\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%((\\\\([a-zA-Z0-9_]+\\\\))?[#0\\\\- +]?([1-9][0-9]*|\\\\*)?(\\\\.([1-9][0-9]*|\\\\*))?[hlL]?[crsdiouxXeEfFgG%]|prog|default)\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\{(([a-zA-Z0-9_]+|[0-9]+)(\\\\.[a-zA-Z0-9_]+|\\\\[[^ \\\\]]+\\\\])*)?(![rs])?(:([^}]?[<>=^])?[ +-]?#?0?[0-9]*(\\\\.[0-9]+)?[bcdeEfFgGnosxX%]?)?\\\\}\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '{' '{', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '}' '}', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = SpecialCharTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"stringinterpolation\",Context {cName = \"stringinterpolation\", cSyntax = \"Python\", cRules = [Rule {rMatcher = Detect2Chars '{' '{', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Python\",\"String Interpolation\")]}], cAttribute = SpecialStringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Michael Bueker\", sVersion = \"4\", sLicense = \"\", sExtensions = [\"*.py\",\"*.pyw\",\"SConstruct\",\"SConscript\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/R.hs b/src/Skylighting/Syntax/R.hs
--- a/src/Skylighting/Syntax/R.hs
+++ b/src/Skylighting/Syntax/R.hs
@@ -2,798 +2,6 @@
 module Skylighting.Syntax.R (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "R Script"
-  , sFilename = "r.xml"
-  , sShortname = "R"
-  , sContexts =
-      fromList
-        [ ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "R Script"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CommonRules"
-          , Context
-              { cName = "CommonRules"
-              , cSyntax = "R Script"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "R Script" , "string" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "R Script" , "string2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "R Script" , "backquotedsymbol" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !$%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "break"
-                               , "else"
-                               , "for"
-                               , "function"
-                               , "if"
-                               , "in"
-                               , "next"
-                               , "repeat"
-                               , "switch"
-                               , "while"
-                               ])
-                      , rAttribute = ControlFlowTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !$%&()*+,-/:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "FALSE"
-                               , "Inf"
-                               , "NA"
-                               , "NA_character_"
-                               , "NA_complex_"
-                               , "NA_integer_"
-                               , "NA_real_"
-                               , "NULL"
-                               , "NaN"
-                               , "TRUE"
-                               ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z_]+[a-zA-Z_\\.0-9]*(?=[\\s]*[(])"
-                              , reCompiled =
-                                  Just (compileRegex True "[a-zA-Z_]+[a-zA-Z_\\.0-9]*(?=[\\s]*[(])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.[a-zA-Z_\\.]+[a-zA-Z_\\.0-9]*(?=[\\s]*[(])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\.[a-zA-Z_\\.]+[a-zA-Z_\\.0-9]*(?=[\\s]*[(])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\("
-                              , reCompiled = Just (compileRegex True "\\(")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "R Script" , "parenthesis" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "##"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "R Script" , "Headline" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "R Script" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[<]{1,2}\\-"
-                              , reCompiled = Just (compileRegex True "[<]{1,2}\\-")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "R Script" , "operator_rhs" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\-[>]{1,2}"
-                              , reCompiled = Just (compileRegex True "\\-[>]{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "R Script" , "operator_rhs" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "=(?!=)"
-                              , reCompiled = Just (compileRegex True "=(?!=)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "R Script" , "operator_rhs" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\+|\\-|\\*{1,2}|/|<=?|>=?|={1,2}|\\!=?|\\|{1,2}|&{1,2}|:{1,3}|\\^|@|\\$|~)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(\\+|\\-|\\*{1,2}|/|<=?|>=?|={1,2}|\\!=?|\\|{1,2}|&{1,2}|:{1,3}|\\^|@|\\$|~)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "R Script" , "operator_rhs" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%[^%]*%"
-                              , reCompiled = Just (compileRegex True "%[^%]*%")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "R Script" , "operator_rhs" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "R Script" , "ctx0" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , 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
-              }
-          )
-        , ( "Headline"
-          , Context
-              { cName = "Headline"
-              , cSyntax = "R Script"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "backquotedsymbol"
-          , Context
-              { cName = "backquotedsymbol"
-              , cSyntax = "R Script"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ctx0"
-          , Context
-              { cName = "ctx0"
-              , cSyntax = "R Script"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "R Script" , "CommonRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , 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
-              }
-          )
-        , ( "level0"
-          , Context
-              { cName = "level0"
-              , cSyntax = "R Script"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "R Script" , "CommonRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , 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
-              }
-          )
-        , ( "operator_rhs"
-          , Context
-              { cName = "operator_rhs"
-              , cSyntax = "R Script"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "##"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "R Script" , "Headline" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "R Script" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ' '
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "parenthesis"
-          , Context
-              { cName = "parenthesis"
-              , cSyntax = "R Script"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z_\\.][0-9a-zA-Z_\\.]*[\\s]*=(?=([^=]|$))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "[a-zA-Z_\\.][0-9a-zA-Z_\\.]*[\\s]*=(?=([^=]|$))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "R Script" , "CommonRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , 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
-              }
-          )
-        , ( "string"
-          , Context
-              { cName = "string"
-              , cSyntax = "R Script"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "string2"
-          , Context
-              { cName = "string2"
-              , cSyntax = "R Script"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = CharTok
-                      , 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 = ""
-  , sVersion = "6"
-  , sLicense = "GPLv2"
-  , sExtensions = [ "*.R" , "*.r" , "*.S" , "*.s" , "*.q" ]
-  , sStartingContext = "level0"
-  }
+syntax = read $! "Syntax {sName = \"R Script\", sFilename = \"r.xml\", sShortname = \"R\", sContexts = fromList [(\"Comment\",Context {cName = \"Comment\", cSyntax = \"R Script\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CommonRules\",Context {cName = \"CommonRules\", cSyntax = \"R Script\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"R Script\",\"string\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"R Script\",\"string2\")]},Rule {rMatcher = DetectChar '`', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"R Script\",\"backquotedsymbol\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !$%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"break\",\"else\",\"for\",\"function\",\"if\",\"in\",\"next\",\"repeat\",\"switch\",\"while\"])), rAttribute = ControlFlowTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !$%&()*+,-/:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"FALSE\",\"Inf\",\"NA\",\"NA_character_\",\"NA_complex_\",\"NA_integer_\",\"NA_real_\",\"NULL\",\"NaN\",\"TRUE\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z_]+[a-zA-Z_\\\\.0-9]*(?=[\\\\s]*[(])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.[a-zA-Z_\\\\.]+[a-zA-Z_\\\\.0-9]*(?=[\\\\s]*[(])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\(\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"R Script\",\"parenthesis\")]},Rule {rMatcher = StringDetect \"##\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"R Script\",\"Headline\")]},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"R Script\",\"Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"[<]{1,2}\\\\-\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"R Script\",\"operator_rhs\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\-[>]{1,2}\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"R Script\",\"operator_rhs\")]},Rule {rMatcher = RegExpr (RE {reString = \"=(?!=)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"R Script\",\"operator_rhs\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\+|\\\\-|\\\\*{1,2}|/|<=?|>=?|={1,2}|\\\\!=?|\\\\|{1,2}|&{1,2}|:{1,3}|\\\\^|@|\\\\$|~)\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"R Script\",\"operator_rhs\")]},Rule {rMatcher = RegExpr (RE {reString = \"%[^%]*%\", reCaseSensitive = True}), rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"R Script\",\"operator_rhs\")]},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"R Script\",\"ctx0\")]},Rule {rMatcher = DetectChar '[', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ']', 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}),(\"Headline\",Context {cName = \"Headline\", cSyntax = \"R Script\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"backquotedsymbol\",Context {cName = \"backquotedsymbol\", cSyntax = \"R Script\", cRules = [Rule {rMatcher = DetectChar '`', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = HlCStringChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ctx0\",Context {cName = \"ctx0\", cSyntax = \"R Script\", cRules = [Rule {rMatcher = IncludeRules (\"R Script\",\"CommonRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar ')', 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}),(\"level0\",Context {cName = \"level0\", cSyntax = \"R Script\", cRules = [Rule {rMatcher = IncludeRules (\"R Script\",\"CommonRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ')', 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}),(\"operator_rhs\",Context {cName = \"operator_rhs\", cSyntax = \"R Script\", cRules = [Rule {rMatcher = StringDetect \"##\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"R Script\",\"Headline\")]},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"R Script\",\"Comment\")]},Rule {rMatcher = DetectChar ' ', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\*|/|<|>|\\\\!=|=|\\\\||&|:|\\\\^|@|\\\\$|~)\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"parenthesis\",Context {cName = \"parenthesis\", cSyntax = \"R Script\", cRules = [Rule {rMatcher = LineContinue, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z_\\\\.][0-9a-zA-Z_\\\\.]*[\\\\s]*=(?=([^=]|$))\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"R Script\",\"CommonRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', 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}),(\"string\",Context {cName = \"string\", cSyntax = \"R Script\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = HlCStringChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"string2\",Context {cName = \"string2\", cSyntax = \"R Script\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = HlCStringChar, rAttribute = CharTok, 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 = \"\", sVersion = \"6\", sLicense = \"GPLv2\", sExtensions = [\"*.R\",\"*.r\",\"*.S\",\"*.s\",\"*.q\"], sStartingContext = \"level0\"}"
diff --git a/src/Skylighting/Syntax/Relaxng.hs b/src/Skylighting/Syntax/Relaxng.hs
--- a/src/Skylighting/Syntax/Relaxng.hs
+++ b/src/Skylighting/Syntax/Relaxng.hs
@@ -2,439 +2,6 @@
 module Skylighting.Syntax.Relaxng (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "RELAX NG"
-  , sFilename = "relaxng.xml"
-  , sShortname = "Relaxng"
-  , sContexts =
-      fromList
-        [ ( "attrValue"
-          , Context
-              { cName = "attrValue"
-              , cSyntax = "RELAX NG"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "RELAX NG" , "string" ) ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "attributes"
-          , Context
-              { cName = "attributes"
-              , cSyntax = "RELAX NG"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , 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 ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*=\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*=\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "RELAX NG" , "attrValue" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "comment"
-          , Context
-              { cName = "comment"
-              , cSyntax = "RELAX NG"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "-->"
-                      , rAttribute = CommentTok
-                      , 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 = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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
-              }
-          )
-        , ( "detectEntRef"
-          , Context
-              { cName = "detectEntRef"
-              , cSyntax = "RELAX NG"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\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
-              }
-          )
-        , ( "normalText"
-          , Context
-              { cName = "normalText"
-              , cSyntax = "RELAX NG"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "RELAX NG" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "RELAX NG" , "tagname" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\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
-              }
-          )
-        , ( "string"
-          , Context
-              { cName = "string"
-              , cSyntax = "RELAX NG"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "RELAX NG" , "detectEntRef" )
-                      , 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
-              }
-          )
-        , ( "tagname"
-          , Context
-              { cName = "tagname"
-              , cSyntax = "RELAX NG"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"%&()*+,./;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "anyName"
-                               , "attribute"
-                               , "choice"
-                               , "data"
-                               , "define"
-                               , "div"
-                               , "element"
-                               , "empty"
-                               , "except"
-                               , "externalRef"
-                               , "grammar"
-                               , "group"
-                               , "include"
-                               , "interleave"
-                               , "list"
-                               , "mixed"
-                               , "name"
-                               , "notAllowed"
-                               , "nsName"
-                               , "oneOrMore"
-                               , "optional"
-                               , "param"
-                               , "parentRef"
-                               , "ref"
-                               , "start"
-                               , "text"
-                               , "value"
-                               , "zeroOrMore"
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "RELAX NG" , "attributes" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "RELAX NG" , "attributes" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Thomas Schraitle (tom_schr AT web DOT de)"
-  , sVersion = "1"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.rng" , "*.RNG" ]
-  , sStartingContext = "normalText"
-  }
+syntax = read $! "Syntax {sName = \"RELAX NG\", sFilename = \"relaxng.xml\", sShortname = \"Relaxng\", sContexts = fromList [(\"attrValue\",Context {cName = \"attrValue\", cSyntax = \"RELAX NG\", cRules = [Rule {rMatcher = Detect2Chars '/' '>', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = DetectChar '>', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"RELAX NG\",\"string\")]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"attributes\",Context {cName = \"attributes\", cSyntax = \"RELAX NG\", cRules = [Rule {rMatcher = Detect2Chars '/' '>', 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]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*=\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"RELAX NG\",\"attrValue\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"comment\",Context {cName = \"comment\", cSyntax = \"RELAX NG\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"-->\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"-(-(?!->))+\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},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}),(\"detectEntRef\",Context {cName = \"detectEntRef\", cSyntax = \"RELAX NG\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\\\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}),(\"normalText\",Context {cName = \"normalText\", cSyntax = \"RELAX NG\", cRules = [Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"RELAX NG\",\"comment\")]},Rule {rMatcher = DetectChar '<', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"RELAX NG\",\"tagname\")]},Rule {rMatcher = RegExpr (RE {reString = \"&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\\\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}),(\"string\",Context {cName = \"string\", cSyntax = \"RELAX NG\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"RELAX NG\",\"detectEntRef\"), 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}),(\"tagname\",Context {cName = \"tagname\", cSyntax = \"RELAX NG\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !\\\"%&()*+,./;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"anyName\",\"attribute\",\"choice\",\"data\",\"define\",\"div\",\"element\",\"empty\",\"except\",\"externalRef\",\"grammar\",\"group\",\"include\",\"interleave\",\"list\",\"mixed\",\"name\",\"notAllowed\",\"nsName\",\"oneOrMore\",\"optional\",\"param\",\"parentRef\",\"ref\",\"start\",\"text\",\"value\",\"zeroOrMore\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"RELAX NG\",\"attributes\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"RELAX NG\",\"attributes\")]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Thomas Schraitle (tom_schr AT web DOT de)\", sVersion = \"1\", sLicense = \"LGPL\", sExtensions = [\"*.rng\",\"*.RNG\"], sStartingContext = \"normalText\"}"
diff --git a/src/Skylighting/Syntax/Relaxngcompact.hs b/src/Skylighting/Syntax/Relaxngcompact.hs
--- a/src/Skylighting/Syntax/Relaxngcompact.hs
+++ b/src/Skylighting/Syntax/Relaxngcompact.hs
@@ -2,292 +2,6 @@
 module Skylighting.Syntax.Relaxngcompact (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "RelaxNG-Compact"
-  , sFilename = "relaxngcompact.xml"
-  , sShortname = "Relaxngcompact"
-  , sContexts =
-      fromList
-        [ ( "Comments"
-          , Context
-              { cName = "Comments"
-              , cSyntax = "RelaxNG-Compact"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Definitions"
-          , Context
-              { cName = "Definitions"
-              , cSyntax = "RelaxNG-Compact"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Node Names"
-          , Context
-              { cName = "Node Names"
-              , cSyntax = "RelaxNG-Compact"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal Text"
-          , Context
-              { cName = "Normal Text"
-              , cSyntax = "RelaxNG-Compact"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "RelaxNG-Compact" , "Comments" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "RelaxNG-Compact" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,./;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "datatypes"
-                               , "default"
-                               , "div"
-                               , "empty"
-                               , "external"
-                               , "grammar"
-                               , "include"
-                               , "inherit"
-                               , "list"
-                               , "mixed"
-                               , "namespace"
-                               , "notAllowed"
-                               , "parent"
-                               , "start"
-                               , "token"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,./;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "attribute" , "element" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "RelaxNG-Compact" , "Node Names" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !%&()*+,./;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "string"
-                               , "text"
-                               , "xsd:ENTITIES"
-                               , "xsd:ENTITY"
-                               , "xsd:ID"
-                               , "xsd:IDREF"
-                               , "xsd:IDREFS"
-                               , "xsd:NCName"
-                               , "xsd:NMTOKEN"
-                               , "xsd:NMTOKENS"
-                               , "xsd:NOTATION"
-                               , "xsd:Name"
-                               , "xsd:QName"
-                               , "xsd:anyURI"
-                               , "xsd:base64Binary"
-                               , "xsd:boolean"
-                               , "xsd:byte"
-                               , "xsd:date"
-                               , "xsd:dateTime"
-                               , "xsd:decimal"
-                               , "xsd:double"
-                               , "xsd:duration"
-                               , "xsd:float"
-                               , "xsd:gDay"
-                               , "xsd:gMonth"
-                               , "xsd:gMonthDay"
-                               , "xsd:gYear"
-                               , "xsd:gYearMonth"
-                               , "xsd:hexBinary"
-                               , "xsd:int"
-                               , "xsd:integer"
-                               , "xsd:language"
-                               , "xsd:long"
-                               , "xsd:negativeInteger"
-                               , "xsd:nonNegativeInteger"
-                               , "xsd:nonPositiveInteger"
-                               , "xsd:normalizedString"
-                               , "xsd:positiveInteger"
-                               , "xsd:short"
-                               , "xsd:string"
-                               , "xsd:time"
-                               , "xsd:token"
-                               , "xsd:unsignedByte"
-                               , "xsd:unsignedInt"
-                               , "xsd:unsignedLong"
-                               , "xsd:unsignedShort"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\w\\.-]+[\\s]+="
-                              , reCompiled = Just (compileRegex True "[\\w\\.-]+[\\s]+=")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "RelaxNG-Compact" , "Definitions" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "RelaxNG-Compact"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Rintze Zelle"
-  , sVersion = "1"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.rnc" ]
-  , sStartingContext = "Normal Text"
-  }
+syntax = read $! "Syntax {sName = \"RelaxNG-Compact\", sFilename = \"relaxngcompact.xml\", sShortname = \"Relaxngcompact\", sContexts = fromList [(\"Comments\",Context {cName = \"Comments\", cSyntax = \"RelaxNG-Compact\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Definitions\",Context {cName = \"Definitions\", cSyntax = \"RelaxNG-Compact\", cRules = [Rule {rMatcher = DetectChar '=', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Node Names\",Context {cName = \"Node Names\", cSyntax = \"RelaxNG-Compact\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal Text\",Context {cName = \"Normal Text\", cSyntax = \"RelaxNG-Compact\", cRules = [Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"RelaxNG-Compact\",\"Comments\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"RelaxNG-Compact\",\"String\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,./;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"datatypes\",\"default\",\"div\",\"empty\",\"external\",\"grammar\",\"include\",\"inherit\",\"list\",\"mixed\",\"namespace\",\"notAllowed\",\"parent\",\"start\",\"token\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,./;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"attribute\",\"element\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"RelaxNG-Compact\",\"Node Names\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,./;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"string\",\"text\",\"xsd:ENTITIES\",\"xsd:ENTITY\",\"xsd:ID\",\"xsd:IDREF\",\"xsd:IDREFS\",\"xsd:NCName\",\"xsd:NMTOKEN\",\"xsd:NMTOKENS\",\"xsd:NOTATION\",\"xsd:Name\",\"xsd:QName\",\"xsd:anyURI\",\"xsd:base64Binary\",\"xsd:boolean\",\"xsd:byte\",\"xsd:date\",\"xsd:dateTime\",\"xsd:decimal\",\"xsd:double\",\"xsd:duration\",\"xsd:float\",\"xsd:gDay\",\"xsd:gMonth\",\"xsd:gMonthDay\",\"xsd:gYear\",\"xsd:gYearMonth\",\"xsd:hexBinary\",\"xsd:int\",\"xsd:integer\",\"xsd:language\",\"xsd:long\",\"xsd:negativeInteger\",\"xsd:nonNegativeInteger\",\"xsd:nonPositiveInteger\",\"xsd:normalizedString\",\"xsd:positiveInteger\",\"xsd:short\",\"xsd:string\",\"xsd:time\",\"xsd:token\",\"xsd:unsignedByte\",\"xsd:unsignedInt\",\"xsd:unsignedLong\",\"xsd:unsignedShort\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\w\\\\.-]+[\\\\s]+=\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"RelaxNG-Compact\",\"Definitions\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"RelaxNG-Compact\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Rintze Zelle\", sVersion = \"1\", sLicense = \"LGPL\", sExtensions = [\"*.rnc\"], sStartingContext = \"Normal Text\"}"
diff --git a/src/Skylighting/Syntax/Rest.hs b/src/Skylighting/Syntax/Rest.hs
--- a/src/Skylighting/Syntax/Rest.hs
+++ b/src/Skylighting/Syntax/Rest.hs
@@ -2,793 +2,6 @@
 module Skylighting.Syntax.Rest (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "reStructuredText"
-  , sFilename = "rest.xml"
-  , sShortname = "Rest"
-  , sContexts =
-      fromList
-        [ ( "Code"
-          , Context
-              { cName = "Code"
-              , cSyntax = "reStructuredText"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1" , reCompiled = Nothing , reCaseSensitive = True }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(.|$)"
-                              , reCompiled = Just (compileRegex True "(.|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "CodeBlock"
-          , Context
-              { cName = "CodeBlock"
-              , cSyntax = "reStructuredText"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\s+)(?=\\S)"
-                              , reCompiled = Just (compileRegex True "(\\s+)(?=\\S)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "reStructuredText" , "Code" ) ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "reStructuredText"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1   "
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(.|$)"
-                              , reCompiled = Just (compileRegex True "(.|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , 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 = True
-              }
-          )
-        , ( "Field"
-          , Context
-              { cName = "Field"
-              , cSyntax = "reStructuredText"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ':'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ':'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(^|[-\\s'\"\\(\\[{</:\226\128\152\226\128\156\226\128\153\194\171\194\161\194\191\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 ])\\*\\*[^\\s].*\\*\\*(?=[-\\s\226\128\153\226\128\157\194\187\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(^|[-\\s'\"\\(\\[{</:\226\128\152\226\128\156\226\128\153\194\171\194\161\194\191\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 ])\\*\\*[^\\s].*\\*\\*(?=[-\\s\226\128\153\226\128\157\194\187\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(^|[-\\s'\"\\(\\[{</:\226\128\152\226\128\156\226\128\153\194\171\194\161\194\191\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 ])\\*[^\\s].*\\*(?=[-\\s\226\128\153\226\128\157\194\187\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(^|[-\\s'\"\\(\\[{</:\226\128\152\226\128\156\226\128\153\194\171\194\161\194\191\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 ])\\*[^\\s].*\\*(?=[-\\s\226\128\153\226\128\157\194\187\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "reStructuredText" , "InlineMarkup" )
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "InlineMarkup"
-          , Context
-              { cName = "InlineMarkup"
-              , cSyntax = "reStructuredText"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(^|[-\\s'\"\\(\\[{</:\226\128\152\226\128\156\226\128\153\194\171\194\161\194\191\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 ])``[^\\s].*``(?=[-\\s\226\128\153\226\128\157\194\187\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(^|[-\\s'\"\\(\\[{</:\226\128\152\226\128\156\226\128\153\194\171\194\161\194\191\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 ])``[^\\s].*``(?=[-\\s\226\128\153\226\128\157\194\187\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(^|[-\\s'\"\\(\\[{</:\226\128\152\226\128\156\226\128\153\194\171\194\161\194\191\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 ])\\|[^\\s].*\\|(?=[-\\s\226\128\153\226\128\157\194\187\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(^|[-\\s'\"\\(\\[{</:\226\128\152\226\128\156\226\128\153\194\171\194\161\194\191\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 ])\\|[^\\s].*\\|(?=[-\\s\226\128\153\226\128\157\194\187\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(^|[-\\s'\"\\(\\[{</:\226\128\152\226\128\156\226\128\153\194\171\194\161\194\191\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 ])_`[^\\s].*`(?=[-\\s\226\128\153\226\128\157\194\187\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(^|[-\\s'\"\\(\\[{</:\226\128\152\226\128\156\226\128\153\194\171\194\161\194\191\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 ])_`[^\\s].*`(?=[-\\s\226\128\153\226\128\157\194\187\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(^|[-\\s'\"\\(\\[{</:\226\128\152\226\128\156\226\128\153\194\171\194\161\194\191\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 ])\\[[\\w_\\.:\\+\\-]+\\]_(?=[-\\s\226\128\153\226\128\157\194\187\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(^|[-\\s'\"\\(\\[{</:\226\128\152\226\128\156\226\128\153\194\171\194\161\194\191\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 ])\\[[\\w_\\.:\\+\\-]+\\]_(?=[-\\s\226\128\153\226\128\157\194\187\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(^|[-\\s'\"\\(\\[{</:\226\128\152\226\128\156\226\128\153\194\171\194\161\194\191\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 ])`[^\\s].*`_(?=[-\\s\226\128\153\226\128\157\194\187\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(^|[-\\s'\"\\(\\[{</:\226\128\152\226\128\156\226\128\153\194\171\194\161\194\191\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 ])`[^\\s].*`_(?=[-\\s\226\128\153\226\128\157\194\187\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(^|[-\\s'\"\\(\\[{</:\226\128\152\226\128\156\226\128\153\194\171\194\161\194\191\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 ])\\w+_(?=[-\\s\226\128\153\226\128\157\194\187\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(^|[-\\s'\"\\(\\[{</:\226\128\152\226\128\156\226\128\153\194\171\194\161\194\191\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 ])\\w+_(?=[-\\s\226\128\153\226\128\157\194\187\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(^|[-\\s'\"\\(\\[{</:\226\128\152\226\128\156\226\128\153\194\171\194\161\194\191\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 ])`[^\\s].*`(?=:[\\w-_\\.\\+]+:)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(^|[-\\s'\"\\(\\[{</:\226\128\152\226\128\156\226\128\153\194\171\194\161\194\191\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 ])`[^\\s].*`(?=:[\\w-_\\.\\+]+:)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "reStructuredText" , "TrailingRole" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ":[\\w-_\\.\\+]+:(?=`)"
-                              , reCompiled = Just (compileRegex True ":[\\w-_\\.\\+]+:(?=`)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "reStructuredText" , "Role" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "InterpretedText"
-          , Context
-              { cName = "InterpretedText"
-              , cSyntax = "reStructuredText"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = DecValTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "reStructuredText"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(^|[-\\s'\"\\(\\[{</:\226\128\152\226\128\156\226\128\153\194\171\194\161\194\191\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 ])\\*\\*[^\\s].*\\*\\*(?=[-\\s\226\128\153\226\128\157\194\187\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(^|[-\\s'\"\\(\\[{</:\226\128\152\226\128\156\226\128\153\194\171\194\161\194\191\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 ])\\*\\*[^\\s].*\\*\\*(?=[-\\s\226\128\153\226\128\157\194\187\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(^|[-\\s'\"\\(\\[{</:\226\128\152\226\128\156\226\128\153\194\171\194\161\194\191\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 ])\\*[^\\s].*\\*(?=[-\\s\226\128\153\226\128\157\194\187\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(^|[-\\s'\"\\(\\[{</:\226\128\152\226\128\156\226\128\153\194\171\194\161\194\191\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 ])\\*[^\\s].*\\*(?=[-\\s\226\128\153\226\128\157\194\187\226\128\144\226\128\145\226\128\146\226\128\147\226\128\148 '\"\\)\\]}>/:\\.,;!\\?\\\\]|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "reStructuredText" , "InlineMarkup" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\.\\. \\[(\\d+|#|\\*|#[\\w_\\.:\\+\\-]+)\\]\\s"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\s*\\.\\. \\[(\\d+|#|\\*|#[\\w_\\.:\\+\\-]+)\\]\\s")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\.\\. \\[[\\w_\\.:\\+\\-]+\\]\\s"
-                              , reCompiled =
-                                  Just (compileRegex True "\\s*\\.\\. \\[[\\w_\\.:\\+\\-]+\\]\\s")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*(\\.\\. (__:|_[\\w_\\.:\\+\\- ]+:(\\s|$))|__ )"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\s*(\\.\\. (__:|_[\\w_\\.:\\+\\- ]+:(\\s|$))|__ )")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\.\\. code-block::"
-                              , reCompiled = Just (compileRegex True "\\s*\\.\\. code-block::")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "reStructuredText" , "CodeBlock" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*\\.\\. [\\w-_\\.]+::(\\s|$)"
-                              , reCompiled =
-                                  Just (compileRegex True "\\s*\\.\\. [\\w-_\\.]+::(\\s|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "::$"
-                              , reCompiled = Just (compileRegex True "::$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "reStructuredText" , "CodeBlock" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\s*\\.\\. \\|[\\w_\\.:\\+\\- ]+\\|\\s+[\\w_\\.:\\+\\-]+::\\s"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\s*\\.\\. \\|[\\w_\\.:\\+\\- ]+\\|\\s+[\\w_\\.:\\+\\-]+::\\s")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ":(?=([^:]*\\\\:)*[^:]*:(\\s|$))"
-                              , reCompiled =
-                                  Just (compileRegex True ":(?=([^:]*\\\\:)*[^:]*:(\\s|$))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "reStructuredText" , "Field" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\s*)\\.\\.\\s(?![\\w-_\\.]+::(\\s|$))"
-                              , reCompiled =
-                                  Just (compileRegex True "(\\s*)\\.\\.\\s(?![\\w-_\\.]+::(\\s|$))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "reStructuredText" , "Comment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Role"
-          , Context
-              { cName = "Role"
-              , cSyntax = "reStructuredText"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Pop , Push ( "reStructuredText" , "InterpretedText" ) ]
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "TrailingRole"
-          , Context
-              { cName = "TrailingRole"
-              , cSyntax = "reStructuredText"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ":[\\w-_\\.\\+]+:"
-                              , reCompiled = Just (compileRegex True ":[\\w-_\\.\\+]+:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = ""
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.rst" ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"reStructuredText\", sFilename = \"rest.xml\", sShortname = \"Rest\", sContexts = fromList [(\"Code\",Context {cName = \"Code\", cSyntax = \"reStructuredText\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(.|$)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"CodeBlock\",Context {cName = \"CodeBlock\", cSyntax = \"reStructuredText\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(\\\\s+)(?=\\\\S)\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"reStructuredText\",\"Code\")]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment\",Context {cName = \"Comment\", cSyntax = \"reStructuredText\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1   \", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(.|$)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), 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 = True}),(\"Field\",Context {cName = \"Field\", cSyntax = \"reStructuredText\", cRules = [Rule {rMatcher = DetectChar ':', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '\\\\' ':', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(^|[-\\\\s'\\\"\\\\(\\\\[{</:\\226\\128\\152\\226\\128\\156\\226\\128\\153\\194\\171\\194\\161\\194\\191\\226\\128\\144\\226\\128\\145\\226\\128\\146\\226\\128\\147\\226\\128\\148 ])\\\\*\\\\*[^\\\\s].*\\\\*\\\\*(?=[-\\\\s\\226\\128\\153\\226\\128\\157\\194\\187\\226\\128\\144\\226\\128\\145\\226\\128\\146\\226\\128\\147\\226\\128\\148 '\\\"\\\\)\\\\]}>/:\\\\.,;!\\\\?\\\\\\\\]|$)\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(^|[-\\\\s'\\\"\\\\(\\\\[{</:\\226\\128\\152\\226\\128\\156\\226\\128\\153\\194\\171\\194\\161\\194\\191\\226\\128\\144\\226\\128\\145\\226\\128\\146\\226\\128\\147\\226\\128\\148 ])\\\\*[^\\\\s].*\\\\*(?=[-\\\\s\\226\\128\\153\\226\\128\\157\\194\\187\\226\\128\\144\\226\\128\\145\\226\\128\\146\\226\\128\\147\\226\\128\\148 '\\\"\\\\)\\\\]}>/:\\\\.,;!\\\\?\\\\\\\\]|$)\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"reStructuredText\",\"InlineMarkup\"), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"InlineMarkup\",Context {cName = \"InlineMarkup\", cSyntax = \"reStructuredText\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(^|[-\\\\s'\\\"\\\\(\\\\[{</:\\226\\128\\152\\226\\128\\156\\226\\128\\153\\194\\171\\194\\161\\194\\191\\226\\128\\144\\226\\128\\145\\226\\128\\146\\226\\128\\147\\226\\128\\148 ])``[^\\\\s].*``(?=[-\\\\s\\226\\128\\153\\226\\128\\157\\194\\187\\226\\128\\144\\226\\128\\145\\226\\128\\146\\226\\128\\147\\226\\128\\148 '\\\"\\\\)\\\\]}>/:\\\\.,;!\\\\?\\\\\\\\]|$)\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(^|[-\\\\s'\\\"\\\\(\\\\[{</:\\226\\128\\152\\226\\128\\156\\226\\128\\153\\194\\171\\194\\161\\194\\191\\226\\128\\144\\226\\128\\145\\226\\128\\146\\226\\128\\147\\226\\128\\148 ])\\\\|[^\\\\s].*\\\\|(?=[-\\\\s\\226\\128\\153\\226\\128\\157\\194\\187\\226\\128\\144\\226\\128\\145\\226\\128\\146\\226\\128\\147\\226\\128\\148 '\\\"\\\\)\\\\]}>/:\\\\.,;!\\\\?\\\\\\\\]|$)\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(^|[-\\\\s'\\\"\\\\(\\\\[{</:\\226\\128\\152\\226\\128\\156\\226\\128\\153\\194\\171\\194\\161\\194\\191\\226\\128\\144\\226\\128\\145\\226\\128\\146\\226\\128\\147\\226\\128\\148 ])_`[^\\\\s].*`(?=[-\\\\s\\226\\128\\153\\226\\128\\157\\194\\187\\226\\128\\144\\226\\128\\145\\226\\128\\146\\226\\128\\147\\226\\128\\148 '\\\"\\\\)\\\\]}>/:\\\\.,;!\\\\?\\\\\\\\]|$)\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(^|[-\\\\s'\\\"\\\\(\\\\[{</:\\226\\128\\152\\226\\128\\156\\226\\128\\153\\194\\171\\194\\161\\194\\191\\226\\128\\144\\226\\128\\145\\226\\128\\146\\226\\128\\147\\226\\128\\148 ])\\\\[[\\\\w_\\\\.:\\\\+\\\\-]+\\\\]_(?=[-\\\\s\\226\\128\\153\\226\\128\\157\\194\\187\\226\\128\\144\\226\\128\\145\\226\\128\\146\\226\\128\\147\\226\\128\\148 '\\\"\\\\)\\\\]}>/:\\\\.,;!\\\\?\\\\\\\\]|$)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(^|[-\\\\s'\\\"\\\\(\\\\[{</:\\226\\128\\152\\226\\128\\156\\226\\128\\153\\194\\171\\194\\161\\194\\191\\226\\128\\144\\226\\128\\145\\226\\128\\146\\226\\128\\147\\226\\128\\148 ])`[^\\\\s].*`_(?=[-\\\\s\\226\\128\\153\\226\\128\\157\\194\\187\\226\\128\\144\\226\\128\\145\\226\\128\\146\\226\\128\\147\\226\\128\\148 '\\\"\\\\)\\\\]}>/:\\\\.,;!\\\\?\\\\\\\\]|$)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(^|[-\\\\s'\\\"\\\\(\\\\[{</:\\226\\128\\152\\226\\128\\156\\226\\128\\153\\194\\171\\194\\161\\194\\191\\226\\128\\144\\226\\128\\145\\226\\128\\146\\226\\128\\147\\226\\128\\148 ])\\\\w+_(?=[-\\\\s\\226\\128\\153\\226\\128\\157\\194\\187\\226\\128\\144\\226\\128\\145\\226\\128\\146\\226\\128\\147\\226\\128\\148 '\\\"\\\\)\\\\]}>/:\\\\.,;!\\\\?\\\\\\\\]|$)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(^|[-\\\\s'\\\"\\\\(\\\\[{</:\\226\\128\\152\\226\\128\\156\\226\\128\\153\\194\\171\\194\\161\\194\\191\\226\\128\\144\\226\\128\\145\\226\\128\\146\\226\\128\\147\\226\\128\\148 ])`[^\\\\s].*`(?=:[\\\\w-_\\\\.\\\\+]+:)\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"reStructuredText\",\"TrailingRole\")]},Rule {rMatcher = RegExpr (RE {reString = \":[\\\\w-_\\\\.\\\\+]+:(?=`)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"reStructuredText\",\"Role\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"InterpretedText\",Context {cName = \"InterpretedText\", cSyntax = \"reStructuredText\", cRules = [Rule {rMatcher = DetectChar '`', rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = DecValTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"reStructuredText\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(^|[-\\\\s'\\\"\\\\(\\\\[{</:\\226\\128\\152\\226\\128\\156\\226\\128\\153\\194\\171\\194\\161\\194\\191\\226\\128\\144\\226\\128\\145\\226\\128\\146\\226\\128\\147\\226\\128\\148 ])\\\\*\\\\*[^\\\\s].*\\\\*\\\\*(?=[-\\\\s\\226\\128\\153\\226\\128\\157\\194\\187\\226\\128\\144\\226\\128\\145\\226\\128\\146\\226\\128\\147\\226\\128\\148 '\\\"\\\\)\\\\]}>/:\\\\.,;!\\\\?\\\\\\\\]|$)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(^|[-\\\\s'\\\"\\\\(\\\\[{</:\\226\\128\\152\\226\\128\\156\\226\\128\\153\\194\\171\\194\\161\\194\\191\\226\\128\\144\\226\\128\\145\\226\\128\\146\\226\\128\\147\\226\\128\\148 ])\\\\*[^\\\\s].*\\\\*(?=[-\\\\s\\226\\128\\153\\226\\128\\157\\194\\187\\226\\128\\144\\226\\128\\145\\226\\128\\146\\226\\128\\147\\226\\128\\148 '\\\"\\\\)\\\\]}>/:\\\\.,;!\\\\?\\\\\\\\]|$)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"reStructuredText\",\"InlineMarkup\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\.\\\\. \\\\[(\\\\d+|#|\\\\*|#[\\\\w_\\\\.:\\\\+\\\\-]+)\\\\]\\\\s\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\.\\\\. \\\\[[\\\\w_\\\\.:\\\\+\\\\-]+\\\\]\\\\s\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*(\\\\.\\\\. (__:|_[\\\\w_\\\\.:\\\\+\\\\- ]+:(\\\\s|$))|__ )\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\.\\\\. code-block::\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"reStructuredText\",\"CodeBlock\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\.\\\\. [\\\\w-_\\\\.]+::(\\\\s|$)\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"::$\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"reStructuredText\",\"CodeBlock\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\\\\.\\\\. \\\\|[\\\\w_\\\\.:\\\\+\\\\- ]+\\\\|\\\\s+[\\\\w_\\\\.:\\\\+\\\\-]+::\\\\s\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \":(?=([^:]*\\\\\\\\:)*[^:]*:(\\\\s|$))\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"reStructuredText\",\"Field\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\s*)\\\\.\\\\.\\\\s(?![\\\\w-_\\\\.]+::(\\\\s|$))\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"reStructuredText\",\"Comment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Role\",Context {cName = \"Role\", cSyntax = \"reStructuredText\", cRules = [Rule {rMatcher = DetectChar '`', rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Push (\"reStructuredText\",\"InterpretedText\")]}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"TrailingRole\",Context {cName = \"TrailingRole\", cSyntax = \"reStructuredText\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \":[\\\\w-_\\\\.\\\\+]+:\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.rst\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Rhtml.hs b/src/Skylighting/Syntax/Rhtml.hs
--- a/src/Skylighting/Syntax/Rhtml.hs
+++ b/src/Skylighting/Syntax/Rhtml.hs
@@ -2,7977 +2,6 @@
 module Skylighting.Syntax.Rhtml (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Ruby/Rails/RHTML"
-  , sFilename = "rhtml.xml"
-  , sShortname = "Rhtml"
-  , sContexts =
-      fromList
-        [ ( "Apostrophed String"
-          , Context
-              { cName = "Apostrophed String"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "\\\\"
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CDATA"
-          , Context
-              { cName = "CDATA"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "]]>"
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "]]&gt;"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CSS"
-          , Context
-              { cName = "CSS"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%=?"
-                              , reCompiled = Just (compileRegex True "<%=?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "rubysource" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "CSS content" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "FindAttributes" )
-                      , 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
-              }
-          )
-        , ( "CSS content"
-          , Context
-              { cName = "CSS content"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%=?"
-                              , reCompiled = Just (compileRegex True "<%=?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "rubysource" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</style\\b"
-                              , reCompiled = Just (compileRegex False "</style\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "El Close 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "CSS" , "" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = True
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Command String"
-          , Context
-              { cName = "Command String"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "\\\\"
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 =
-                          RegExpr
-                            RE
-                              { reString = "#@{1,2}"
-                              , reCompiled = Just (compileRegex True "#@{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "Short Subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "Subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "-->"
-                      , rAttribute = CommentTok
-                      , 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 = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment Line"
-          , Context
-              { cName = "Comment Line"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\w\\:\\:\\s"
-                              , reCompiled = Just (compileRegex True "\\w\\:\\:\\s")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "RDoc Label" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&()*+,-./:;<=>[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "FIXME" , "NOTE" , "TODO" ])
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-?%>"
-                              , reCompiled = Just (compileRegex True "-?%>")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "DATA"
-          , Context
-              { cName = "DATA"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules = []
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Doctype"
-          , Context
-              { cName = "Doctype"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "Doctype Internal Subset" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Doctype Internal Subset"
-          , Context
-              { cName = "Doctype Internal Subset"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "FindDTDRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\?[\\w:-]*"
-                              , reCompiled = Just (compileRegex True "<\\?[\\w:-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "PI" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "FindPEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "Doctype Markupdecl"
-          , Context
-              { cName = "Doctype Markupdecl"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "Doctype Markupdecl DQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "Doctype Markupdecl SQ" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Doctype Markupdecl DQ"
-          , Context
-              { cName = "Doctype Markupdecl DQ"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%=?"
-                              , reCompiled = Just (compileRegex True "<%=?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "rubysource" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "FindPEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "Doctype Markupdecl SQ"
-          , Context
-              { cName = "Doctype Markupdecl SQ"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%=?"
-                              , reCompiled = Just (compileRegex True "<%=?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "rubysource" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "FindPEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "El Close"
-          , Context
-              { cName = "El Close"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%=?"
-                              , reCompiled = Just (compileRegex True "<%=?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "rubysource" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , 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
-              }
-          )
-        , ( "El Close 2"
-          , Context
-              { cName = "El Close 2"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%=?"
-                              , reCompiled = Just (compileRegex True "<%=?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "rubysource" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , 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
-              }
-          )
-        , ( "El Close 3"
-          , Context
-              { cName = "El Close 3"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%=?"
-                              , reCompiled = Just (compileRegex True "<%=?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "rubysource" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop , Pop ]
-                      }
-                  , 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
-              }
-          )
-        , ( "El Open"
-          , Context
-              { cName = "El Open"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%=?"
-                              , reCompiled = Just (compileRegex True "<%=?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "rubysource" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "FindAttributes" )
-                      , 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
-              }
-          )
-        , ( "Embedded documentation"
-          , Context
-              { cName = "Embedded documentation"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "=end"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindAttributes"
-          , Context
-              { cName = "FindAttributes"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Za-z_:][\\w.:_-]*"
-                              , reCompiled = Just (compileRegex True "[A-Za-z_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s+[A-Za-z_:][\\w.:_-]*"
-                              , reCompiled = Just (compileRegex True "\\s+[A-Za-z_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "Value" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindDTDRules"
-          , Context
-              { cName = "FindDTDRules"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<!(ELEMENT|ENTITY|ATTLIST|NOTATION)\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "<!(ELEMENT|ENTITY|ATTLIST|NOTATION)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "Doctype Markupdecl" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindEntityRefs"
-          , Context
-              { cName = "FindEntityRefs"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "&<"
-                      , 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
-              }
-          )
-        , ( "FindHTML"
-          , Context
-              { cName = "FindHTML"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%=?"
-                              , reCompiled = Just (compileRegex True "<%=?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "rubysource" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "%"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "rubysourceline" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<![CDATA["
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "CDATA" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<!DOCTYPE\\s+"
-                              , reCompiled = Just (compileRegex True "<!DOCTYPE\\s+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "Doctype" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\?[\\w:-]*"
-                              , reCompiled = Just (compileRegex True "<\\?[\\w:-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "PI" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<style\\b"
-                              , reCompiled = Just (compileRegex False "<style\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "CSS" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<script\\b"
-                              , reCompiled = Just (compileRegex False "<script\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "JS" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<pre\\b"
-                              , reCompiled = Just (compileRegex False "<pre\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<div\\b"
-                              , reCompiled = Just (compileRegex False "<div\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<table\\b"
-                              , reCompiled = Just (compileRegex False "<table\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<[A-Za-z_:][\\w.:_-]*"
-                              , reCompiled = Just (compileRegex True "<[A-Za-z_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "El Open" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</pre\\b"
-                              , reCompiled = Just (compileRegex False "</pre\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</div\\b"
-                              , reCompiled = Just (compileRegex False "</div\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</table\\b"
-                              , reCompiled = Just (compileRegex False "</table\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</[A-Za-z_:][\\w.:_-]*"
-                              , reCompiled = Just (compileRegex True "</[A-Za-z_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "El Close" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "FindDTDRules" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "FindEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "FindPEntityRefs"
-          , Context
-              { cName = "FindPEntityRefs"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%[A-Za-z_:][\\w.:_-]*;"
-                              , reCompiled = Just (compileRegex True "%[A-Za-z_:][\\w.:_-]*;")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "&%"
-                      , 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
-              }
-          )
-        , ( "General Comment"
-          , Context
-              { cName = "General Comment"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&()*+,-./:;<=>[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "FIXME" , "NOTE" , "TODO" ])
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "JS"
-          , Context
-              { cName = "JS"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%=?"
-                              , reCompiled = Just (compileRegex True "<%=?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "rubysource" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "JS content" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "FindAttributes" )
-                      , 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
-              }
-          )
-        , ( "JS comment close"
-          , Context
-              { cName = "JS comment close"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</script\\b"
-                              , reCompiled = Just (compileRegex False "</script\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "El Close 3" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "JS content"
-          , Context
-              { cName = "JS content"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%=?"
-                              , reCompiled = Just (compileRegex True "<%=?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "rubysource" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</script\\b"
-                              , reCompiled = Just (compileRegex False "</script\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "El Close 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "//(?=.*</script\\b)"
-                              , reCompiled = Just (compileRegex False "//(?=.*</script\\b)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "JS comment close" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "JavaScript" , "Normal" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = True
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Line Continue"
-          , Context
-              { cName = "Line Continue"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(while|until)\\b(?!.*\\bdo\\b)"
-                              , reCompiled =
-                                  Just (compileRegex True "(while|until)\\b(?!.*\\bdo\\b)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(if|unless)\\b"
-                              , reCompiled = Just (compileRegex True "(if|unless)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "rubysource" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Member Access"
-          , Context
-              { cName = "Member Access"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.?[_a-z]\\w*(\\?|\\!)?(?=[^\\w\\d\\.\\:])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\.?[_a-z]\\w*(\\?|\\!)?(?=[^\\w\\d\\.\\:])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.?[_a-z]\\w*(\\?|\\!)?"
-                              , reCompiled = Just (compileRegex True "\\.?[_a-z]\\w*(\\?|\\!)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Z]+_*(\\d|[a-z])\\w*(?=[^\\w\\d\\.\\:])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "[A-Z]+_*(\\d|[a-z])\\w*(?=[^\\w\\d\\.\\:])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Z]+_*([0-9]|[a-z])\\w*"
-                              , reCompiled = Just (compileRegex True "[A-Z]+_*([0-9]|[a-z])\\w*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[_A-Z][_A-Z0-9]*(?=[^\\w\\d\\.\\:])"
-                              , reCompiled =
-                                  Just (compileRegex True "[_A-Z][_A-Z0-9]*(?=[^\\w\\d\\.\\:])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[_A-Z][_A-Z0-9]*"
-                              , reCompiled = Just (compileRegex True "[_A-Z][_A-Z0-9]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars ':' ':'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '.'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "=+-*/%|&[]{}~"
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "()\\"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , 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 = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "PI"
-          , Context
-              { cName = "PI"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '?' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Quoted String"
-          , Context
-              { cName = "Quoted String"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "\\\\"
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 =
-                          RegExpr
-                            RE
-                              { reString = "#@{1,2}"
-                              , reCompiled = Just (compileRegex True "#@{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "Short Subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "Subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "RDoc Label"
-          , Context
-              { cName = "RDoc Label"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules = []
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "RegEx 1"
-          , Context
-              { cName = "RegEx 1"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\\\/"
-                              , reCompiled = Just (compileRegex True "\\\\\\/")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^\\\\]$"
-                              , reCompiled = Just (compileRegex True "[^\\\\]$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#@{1,2}"
-                              , reCompiled = Just (compileRegex True "#@{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "Short Subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "Subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "/[uiomxn]*"
-                              , reCompiled = Just (compileRegex True "/[uiomxn]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Short Subst"
-          , Context
-              { cName = "Short Subst"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#@{1,2}"
-                              , reCompiled = Just (compileRegex True "#@{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\w(?!\\w)"
-                              , reCompiled = Just (compileRegex True "\\w(?!\\w)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Start"
-          , Context
-              { cName = "Start"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "FindHTML" )
-                      , 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
-              }
-          )
-        , ( "Subst"
-          , Context
-              { cName = "Subst"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "rubysource" )
-                      , 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
-              }
-          )
-        , ( "Value"
-          , Context
-              { cName = "Value"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%=?"
-                              , reCompiled = Just (compileRegex True "<%=?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "rubysource" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "Value DQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "Value SQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext =
-                  [ Push ( "Ruby/Rails/RHTML" , "Value NQ" ) ]
-              , cDynamic = False
-              }
-          )
-        , ( "Value DQ"
-          , Context
-              { cName = "Value DQ"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%=?"
-                              , reCompiled = Just (compileRegex True "<%=?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "rubysource" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "FindEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "Value NQ"
-          , Context
-              { cName = "Value NQ"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%=?"
-                              , reCompiled = Just (compileRegex True "<%=?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "rubysource" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "FindEntityRefs" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 =
-                          RegExpr
-                            RE
-                              { reString = "[^/><\"'\\s]"
-                              , reCompiled = Just (compileRegex True "[^/><\"'\\s]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop , Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "Value SQ"
-          , Context
-              { cName = "Value SQ"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<%=?"
-                              , reCompiled = Just (compileRegex True "<%=?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "rubysource" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "FindEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "apostrophed_indented_heredoc"
-          , Context
-              { cName = "apostrophed_indented_heredoc"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "apostrophed_normal_heredoc"
-          , Context
-              { cName = "apostrophed_normal_heredoc"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "apostrophed_rules"
-          , Context
-              { cName = "apostrophed_rules"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , 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
-              }
-          )
-        , ( "dq_string_rules"
-          , Context
-              { cName = "dq_string_rules"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#@{1,2}"
-                              , reCompiled = Just (compileRegex True "#@{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "Short Subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "Subst" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_gdl_input"
-          , Context
-              { cName = "find_gdl_input"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "w\\("
-                              , reCompiled = Just (compileRegex True "w\\(")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_token_array_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "w\\{"
-                              , reCompiled = Just (compileRegex True "w\\{")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_token_array_2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "w\\["
-                              , reCompiled = Just (compileRegex True "w\\[")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_token_array_3" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "w<"
-                              , reCompiled = Just (compileRegex True "w<")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_token_array_4" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "w([^\\s\\w])"
-                              , reCompiled = Just (compileRegex True "w([^\\s\\w])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_token_array_5" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "q\\("
-                              , reCompiled = Just (compileRegex True "q\\(")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_apostrophed_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "q\\{"
-                              , reCompiled = Just (compileRegex True "q\\{")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_apostrophed_2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "q\\["
-                              , reCompiled = Just (compileRegex True "q\\[")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_apostrophed_3" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "q<"
-                              , reCompiled = Just (compileRegex True "q<")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_apostrophed_4" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "q([^\\s\\w])"
-                              , reCompiled = Just (compileRegex True "q([^\\s\\w])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_apostrophed_5" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "x\\("
-                              , reCompiled = Just (compileRegex True "x\\(")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_shell_command_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "x\\{"
-                              , reCompiled = Just (compileRegex True "x\\{")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_shell_command_2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "x\\["
-                              , reCompiled = Just (compileRegex True "x\\[")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_shell_command_3" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "x<"
-                              , reCompiled = Just (compileRegex True "x<")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_shell_command_4" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "x([^\\s\\w])"
-                              , reCompiled = Just (compileRegex True "x([^\\s\\w])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_shell_command_5" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "r\\("
-                              , reCompiled = Just (compileRegex True "r\\(")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_regexpr_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "r\\{"
-                              , reCompiled = Just (compileRegex True "r\\{")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_regexpr_2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "r\\["
-                              , reCompiled = Just (compileRegex True "r\\[")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_regexpr_3" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "r<"
-                              , reCompiled = Just (compileRegex True "r<")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_regexpr_4" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "r([^\\s\\w])"
-                              , reCompiled = Just (compileRegex True "r([^\\s\\w])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_regexpr_5" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "Q?\\("
-                              , reCompiled = Just (compileRegex True "Q?\\(")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_dq_string_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "Q?\\{"
-                              , reCompiled = Just (compileRegex True "Q?\\{")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_dq_string_2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "Q?\\["
-                              , reCompiled = Just (compileRegex True "Q?\\[")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_dq_string_3" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "Q?<"
-                              , reCompiled = Just (compileRegex True "Q?<")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_dq_string_4" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "Q?([^\\s\\w])"
-                              , reCompiled = Just (compileRegex True "Q?([^\\s\\w])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_dq_string_5" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_heredoc"
-          , Context
-              { cName = "find_heredoc"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'(\\w+)'"
-                              , reCompiled = Just (compileRegex True "'(\\w+)'")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "apostrophed_normal_heredoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\"?(\\w+)\"?"
-                              , reCompiled = Just (compileRegex True "\"?(\\w+)\"?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "normal_heredoc" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_indented_heredoc"
-          , Context
-              { cName = "find_indented_heredoc"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'(\\w+)'"
-                              , reCompiled = Just (compileRegex True "'(\\w+)'")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "apostrophed_indented_heredoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\"?(\\w+)\"?"
-                              , reCompiled = Just (compileRegex True "\"?(\\w+)\"?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "indented_heredoc" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_apostrophed_1"
-          , Context
-              { cName = "gdl_apostrophed_1"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "apostrophed_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ')'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_apostrophed_1_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_apostrophed_1_nested"
-          , Context
-              { cName = "gdl_apostrophed_1_nested"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "apostrophed_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_apostrophed_1_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_apostrophed_2"
-          , Context
-              { cName = "gdl_apostrophed_2"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "apostrophed_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '}'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_apostrophed_2_nested" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_apostrophed_2_nested"
-          , Context
-              { cName = "gdl_apostrophed_2_nested"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "apostrophed_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_apostrophed_2_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_apostrophed_3"
-          , Context
-              { cName = "gdl_apostrophed_3"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "apostrophed_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ']'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_apostrophed_3_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_apostrophed_3_nested"
-          , Context
-              { cName = "gdl_apostrophed_3_nested"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "apostrophed_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_apostrophed_3_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_apostrophed_4"
-          , Context
-              { cName = "gdl_apostrophed_4"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "apostrophed_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '>'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_apostrophed_4_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_apostrophed_4_nested"
-          , Context
-              { cName = "gdl_apostrophed_4_nested"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "apostrophed_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_apostrophed_4_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_apostrophed_5"
-          , Context
-              { cName = "gdl_apostrophed_5"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "apostrophed_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "gdl_dq_string_1"
-          , Context
-              { cName = "gdl_dq_string_1"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "dq_string_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ')'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_dq_string_1_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_dq_string_1_nested"
-          , Context
-              { cName = "gdl_dq_string_1_nested"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "dq_string_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_dq_string_1_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_dq_string_2"
-          , Context
-              { cName = "gdl_dq_string_2"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "dq_string_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '}'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_dq_string_2_nested" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_dq_string_2_nested"
-          , Context
-              { cName = "gdl_dq_string_2_nested"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_dq_string_2_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "dq_string_rules" )
-                      , 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
-              }
-          )
-        , ( "gdl_dq_string_3"
-          , Context
-              { cName = "gdl_dq_string_3"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "dq_string_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ']'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_dq_string_3_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_dq_string_3_nested"
-          , Context
-              { cName = "gdl_dq_string_3_nested"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_dq_string_3_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "dq_string_rules" )
-                      , 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
-              }
-          )
-        , ( "gdl_dq_string_4"
-          , Context
-              { cName = "gdl_dq_string_4"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "dq_string_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '>'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_dq_string_4_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_dq_string_4_nested"
-          , Context
-              { cName = "gdl_dq_string_4_nested"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_dq_string_4_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "dq_string_rules" )
-                      , 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
-              }
-          )
-        , ( "gdl_dq_string_5"
-          , Context
-              { cName = "gdl_dq_string_5"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "dq_string_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "gdl_regexpr_1"
-          , Context
-              { cName = "gdl_regexpr_1"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "regexpr_rules" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ')'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_regexpr_1_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\)[uiomxn]*"
-                              , reCompiled = Just (compileRegex True "\\)[uiomxn]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_regexpr_1_nested"
-          , Context
-              { cName = "gdl_regexpr_1_nested"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "regexpr_rules" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_regexpr_1_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_regexpr_2"
-          , Context
-              { cName = "gdl_regexpr_2"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "regexpr_rules" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\}[uiomxn]*"
-                              , reCompiled = Just (compileRegex True "\\}[uiomxn]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_regexpr_2_nested" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_regexpr_2_nested"
-          , Context
-              { cName = "gdl_regexpr_2_nested"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "regexpr_rules" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_regexpr_2_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_regexpr_3"
-          , Context
-              { cName = "gdl_regexpr_3"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "regexpr_rules" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ']'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_regexpr_3_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\][uiomxn]*"
-                              , reCompiled = Just (compileRegex True "\\][uiomxn]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_regexpr_3_nested"
-          , Context
-              { cName = "gdl_regexpr_3_nested"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "regexpr_rules" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_regexpr_3_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_regexpr_4"
-          , Context
-              { cName = "gdl_regexpr_4"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "regexpr_rules" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '>'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_regexpr_4_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ">[uiomxn]*"
-                              , reCompiled = Just (compileRegex True ">[uiomxn]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_regexpr_4_nested"
-          , Context
-              { cName = "gdl_regexpr_4_nested"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "regexpr_rules" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_regexpr_4_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_regexpr_5"
-          , Context
-              { cName = "gdl_regexpr_5"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "regexpr_rules" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*%1[uiomxn]*"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "gdl_shell_command_1"
-          , Context
-              { cName = "gdl_shell_command_1"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "shell_command_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ')'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_shell_command_1_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_shell_command_1_nested"
-          , Context
-              { cName = "gdl_shell_command_1_nested"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "shell_command_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_shell_command_1_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_shell_command_2"
-          , Context
-              { cName = "gdl_shell_command_2"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "shell_command_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '}'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_shell_command_2_nested" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_shell_command_2_nested"
-          , Context
-              { cName = "gdl_shell_command_2_nested"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "shell_command_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_shell_command_2_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_shell_command_3"
-          , Context
-              { cName = "gdl_shell_command_3"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "shell_command_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ']'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_shell_command_3_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_shell_command_3_nested"
-          , Context
-              { cName = "gdl_shell_command_3_nested"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "shell_command_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_shell_command_3_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_shell_command_4"
-          , Context
-              { cName = "gdl_shell_command_4"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "shell_command_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '>'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_shell_command_4_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_shell_command_4_nested"
-          , Context
-              { cName = "gdl_shell_command_4_nested"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "shell_command_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_shell_command_4_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_shell_command_5"
-          , Context
-              { cName = "gdl_shell_command_5"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "shell_command_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "gdl_token_array_1"
-          , Context
-              { cName = "gdl_token_array_1"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "token_array_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ')'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_token_array_1_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_token_array_1_nested"
-          , Context
-              { cName = "gdl_token_array_1_nested"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "token_array_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_token_array_1_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_token_array_2"
-          , Context
-              { cName = "gdl_token_array_2"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "token_array_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '}'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_token_array_2_nested" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_token_array_2_nested"
-          , Context
-              { cName = "gdl_token_array_2_nested"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "token_array_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_token_array_2_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_token_array_3"
-          , Context
-              { cName = "gdl_token_array_3"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "token_array_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ']'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_token_array_3_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_token_array_3_nested"
-          , Context
-              { cName = "gdl_token_array_3_nested"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "token_array_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_token_array_3_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_token_array_4"
-          , Context
-              { cName = "gdl_token_array_4"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "token_array_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '>'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_token_array_4_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_token_array_4_nested"
-          , Context
-              { cName = "gdl_token_array_4_nested"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "token_array_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "gdl_token_array_4_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_token_array_5"
-          , Context
-              { cName = "gdl_token_array_5"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          IncludeRules ( "Ruby/Rails/RHTML" , "token_array_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "heredoc_rules"
-          , Context
-              { cName = "heredoc_rules"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#@{1,2}"
-                              , reCompiled = Just (compileRegex True "#@{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "Short Subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "Subst" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "indented_heredoc"
-          , Context
-              { cName = "indented_heredoc"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "heredoc_rules" )
-                      , 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 = True
-              }
-          )
-        , ( "normal_heredoc"
-          , Context
-              { cName = "normal_heredoc"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "heredoc_rules" )
-                      , 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 = True
-              }
-          )
-        , ( "regexpr_rules"
-          , Context
-              { cName = "regexpr_rules"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#@{1,2}"
-                              , reCompiled = Just (compileRegex True "#@{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "Short Subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "Subst" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "rubysource"
-          , Context
-              { cName = "rubysource"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "Line Continue" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-?%>"
-                              , reCompiled = Just (compileRegex True "-?%>")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "__END__$"
-                              , reCompiled = Just (compileRegex True "__END__$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "DATA" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#!\\/.*"
-                              , reCompiled = Just (compileRegex True "#!\\/.*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\=|\\(|\\[|\\{)\\s*(if|unless|while|until)\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(\\=|\\(|\\[|\\{)\\s*(if|unless|while|until)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(while|until)\\b(?!.*\\bdo\\b)"
-                              , reCompiled =
-                                  Just (compileRegex True "(while|until)\\b(?!.*\\bdo\\b)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\;\\s*(while|until)\\b(?!.*\\bdo\\b)"
-                              , reCompiled =
-                                  Just (compileRegex True "\\;\\s*(while|until)\\b(?!.*\\bdo\\b)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(if|unless)\\b"
-                              , reCompiled = Just (compileRegex True "(if|unless)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\;\\s*(if|unless)\\b"
-                              , reCompiled = Just (compileRegex True "\\;\\s*(if|unless)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bclass\\b"
-                              , reCompiled = Just (compileRegex True "\\bclass\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bmodule\\b"
-                              , reCompiled = Just (compileRegex True "\\bmodule\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bbegin\\b"
-                              , reCompiled = Just (compileRegex True "\\bbegin\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bfor\\b(?!.*\\bdo\\b)"
-                              , reCompiled = Just (compileRegex True "\\bfor\\b(?!.*\\bdo\\b)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bcase\\b"
-                              , reCompiled = Just (compileRegex True "\\bcase\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bdo\\b"
-                              , reCompiled = Just (compileRegex True "\\bdo\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bdef\\b"
-                              , reCompiled = Just (compileRegex True "\\bdef\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bend\\b"
-                              , reCompiled = Just (compileRegex True "\\bend\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b|^\\s*)(else|elsif|rescue|ensure)(\\s+|$)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(\\b|^\\s*)(else|elsif|rescue|ensure)(\\s+|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "..."
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '.' '.'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.[_a-z][_a-zA-Z0-9]*(\\?|\\!|\\b)"
-                              , reCompiled =
-                                  Just (compileRegex True "\\.[_a-z][_a-zA-Z0-9]*(\\?|\\!|\\b)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s\\?(\\\\M\\-)?(\\\\C\\-)?\\\\?\\S"
-                              , reCompiled =
-                                  Just (compileRegex True "\\s\\?(\\\\M\\-)?(\\\\C\\-)?\\\\?\\S")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&()*+,-./:;<=>[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "BEGIN"
-                               , "END"
-                               , "and"
-                               , "begin"
-                               , "break"
-                               , "case"
-                               , "defined?"
-                               , "do"
-                               , "else"
-                               , "elsif"
-                               , "end"
-                               , "ensure"
-                               , "for"
-                               , "if"
-                               , "in"
-                               , "include"
-                               , "next"
-                               , "not"
-                               , "or"
-                               , "redo"
-                               , "rescue"
-                               , "retry"
-                               , "return"
-                               , "then"
-                               , "unless"
-                               , "until"
-                               , "when"
-                               , "while"
-                               , "yield"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&()*+,-./:;<=>[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True [ "attr_accessor" , "attr_reader" , "attr_writer" ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&()*+,-./:;<=>[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "private"
-                               , "private_class_method"
-                               , "protected"
-                               , "public"
-                               , "public_class_method"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&()*+,-./:;<=>[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True [ "alias" , "class" , "def" , "module" , "undef" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&()*+,-./:;<=>[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "__FILE__"
-                               , "__LINE__"
-                               , "caller"
-                               , "false"
-                               , "nil"
-                               , "self"
-                               , "super"
-                               , "true"
-                               ])
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&()*+,-./:;<=>[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True [ "$deferr" , "$defout" , "$stderr" , "$stdin" , "$stdout" ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&()*+,-./:;<=>[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "abort"
-                               , "at_exit"
-                               , "auto_complete_field"
-                               , "auto_complete_result"
-                               , "auto_discovery_link_tag"
-                               , "auto_link"
-                               , "autoload"
-                               , "autoload?"
-                               , "benchmark"
-                               , "binding"
-                               , "block_given?"
-                               , "button_to"
-                               , "cache"
-                               , "callcc"
-                               , "caller"
-                               , "capture"
-                               , "catch"
-                               , "check_box"
-                               , "check_box_tag"
-                               , "chomp"
-                               , "chomp!"
-                               , "chop"
-                               , "chop!"
-                               , "collection_select"
-                               , "concat"
-                               , "content_for"
-                               , "content_tag"
-                               , "country_options_for_select"
-                               , "country_select"
-                               , "current_page?"
-                               , "date_select"
-                               , "datetime_select"
-                               , "debug"
-                               , "define_javascript_functions"
-                               , "distance_of_time_in_words"
-                               , "distance_of_time_in_words_to_now"
-                               , "draggable_element"
-                               , "drop_receiving_element"
-                               , "end_form_tag"
-                               , "error_message_on"
-                               , "error_messages_for"
-                               , "escape_javascript"
-                               , "eval"
-                               , "evaluate_remote_response"
-                               , "excerpt"
-                               , "exec"
-                               , "exit"
-                               , "exit!"
-                               , "fail"
-                               , "file_field"
-                               , "file_field_tag"
-                               , "finish_upload_status"
-                               , "fork"
-                               , "form"
-                               , "form_remote_tag"
-                               , "form_tag"
-                               , "form_tag_with_upload_progress"
-                               , "format"
-                               , "getc"
-                               , "gets"
-                               , "global_variables"
-                               , "gsub"
-                               , "gsub!"
-                               , "h"
-                               , "hidden_field"
-                               , "hidden_field_tag"
-                               , "highlight"
-                               , "human_size"
-                               , "image_path"
-                               , "image_submit_tag"
-                               , "image_tag"
-                               , "input"
-                               , "iterator?"
-                               , "javascript_include_tag"
-                               , "javascript_path"
-                               , "javascript_tag"
-                               , "lambda"
-                               , "link_image_to"
-                               , "link_to"
-                               , "link_to_function"
-                               , "link_to_if"
-                               , "link_to_image"
-                               , "link_to_remote"
-                               , "link_to_unless"
-                               , "link_to_unless_current"
-                               , "load"
-                               , "local_variables"
-                               , "loop"
-                               , "mail_to"
-                               , "markdown"
-                               , "method_missing"
-                               , "number_to_currency"
-                               , "number_to_human_size"
-                               , "number_to_percentage"
-                               , "number_to_phone"
-                               , "number_with_delimiter"
-                               , "number_with_precision"
-                               , "observe_field"
-                               , "observe_form"
-                               , "open"
-                               , "option_groups_from_collection_for_select"
-                               , "options_for_select"
-                               , "options_from_collection_for_select"
-                               , "p"
-                               , "pagination_links"
-                               , "password_field"
-                               , "password_field_tag"
-                               , "periodically_call_remote"
-                               , "pluralize"
-                               , "print"
-                               , "printf"
-                               , "proc"
-                               , "putc"
-                               , "puts"
-                               , "radio_button"
-                               , "radio_button_tag"
-                               , "raise"
-                               , "rand"
-                               , "readline"
-                               , "readlines"
-                               , "register_template_handler"
-                               , "render"
-                               , "render_file"
-                               , "render_template"
-                               , "require"
-                               , "sanitize"
-                               , "scan"
-                               , "select"
-                               , "select_date"
-                               , "select_datetime"
-                               , "select_day"
-                               , "select_hour"
-                               , "select_minute"
-                               , "select_month"
-                               , "select_second"
-                               , "select_tag"
-                               , "select_time"
-                               , "select_year"
-                               , "set_trace_func"
-                               , "simple_format"
-                               , "sleep"
-                               , "sortable_element"
-                               , "split"
-                               , "sprintf"
-                               , "srand"
-                               , "start_form_tag"
-                               , "strip_links"
-                               , "stylesheet_link_tag"
-                               , "stylesheet_path"
-                               , "sub"
-                               , "sub!"
-                               , "submit_tag"
-                               , "submit_to_remote"
-                               , "syscall"
-                               , "system"
-                               , "tag"
-                               , "test"
-                               , "text_area"
-                               , "text_area_tag"
-                               , "text_field"
-                               , "text_field_tag"
-                               , "text_field_with_auto_complete"
-                               , "textilize"
-                               , "textilize_without_paragraph"
-                               , "throw"
-                               , "time_ago_in_words"
-                               , "time_zone_options_for_select"
-                               , "time_zone_select"
-                               , "trace_var"
-                               , "trap"
-                               , "truncate"
-                               , "untrace_var"
-                               , "update_element_function"
-                               , "upload_progress_status"
-                               , "upload_progress_text"
-                               , "upload_progress_update_bar_js"
-                               , "upload_status_progress_bar_tag"
-                               , "upload_status_tag"
-                               , "upload_status_text_tag"
-                               , "url_for"
-                               , "visual_effect"
-                               , "warn"
-                               , "word_wrap"
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$[a-zA-Z_0-9]+"
-                              , reCompiled = Just (compileRegex True "\\$[a-zA-Z_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 = "\\$\\-[a-zA-z_]\\b"
-                              , reCompiled = Just (compileRegex True "\\$\\-[a-zA-z_]\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$[\\d_*`\\!:?'/\\\\\\-\\&]"
-                              , reCompiled =
-                                  Just (compileRegex True "\\$[\\d_*`\\!:?'/\\\\\\-\\&]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[_A-Z]+[A-Z_0-9]+\\b"
-                              , reCompiled = Just (compileRegex True "\\b[_A-Z]+[A-Z_0-9]+\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "\\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b\\-?0[xX][_0-9a-fA-F]+"
-                              , reCompiled = Just (compileRegex True "\\b\\-?0[xX][_0-9a-fA-F]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b\\-?0[bB][_01]+"
-                              , reCompiled = Just (compileRegex True "\\b\\-?0[bB][_01]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b\\-?0[1-7][_0-7]*"
-                              , reCompiled = Just (compileRegex True "\\b\\-?0[1-7][_0-7]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b\\-?[0-9][0-9_]*\\.[0-9][0-9_]*([eE]\\-?[1-9][0-9]*(\\.[0-9]*)?)?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\b\\-?[0-9][0-9_]*\\.[0-9][0-9_]*([eE]\\-?[1-9][0-9]*(\\.[0-9]*)?)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b\\-?[1-9][0-9_]*\\b"
-                              , reCompiled = Just (compileRegex True "\\b\\-?[1-9][0-9_]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "=begin"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "Embedded documentation" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*<<-(?=\\w+|[\"'])"
-                              , reCompiled = Just (compileRegex True "\\s*<<-(?=\\w+|[\"'])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "find_indented_heredoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*<<(?=\\w+|[\"'])"
-                              , reCompiled = Just (compileRegex True "\\s*<<(?=\\w+|[\"'])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "find_heredoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '.'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '&' '&'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '|' '|'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s[\\?\\:\\%/]\\s"
-                              , reCompiled = Just (compileRegex True "\\s[\\?\\:\\%/]\\s")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[|&<>\\^\\+*~\\-=]+"
-                              , reCompiled = Just (compileRegex True "[|&<>\\^\\+*~\\-=]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , 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 = CharTok
-                      , 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 = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "%="
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars ':' ':'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "Member Access" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ":[a-zA-Z_][a-zA-Z0-9_]*"
-                              , reCompiled = Just (compileRegex True ":[a-zA-Z_][a-zA-Z0-9_]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "Quoted String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "Apostrophed String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "Command String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "?#"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*BEGIN.*$"
-                              , reCompiled = Just (compileRegex True "#\\s*BEGIN.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*END.*$"
-                              , reCompiled = Just (compileRegex True "#\\s*END.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#"
-                              , reCompiled = Just (compileRegex True "#")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "Comment Line" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s#"
-                              , reCompiled = Just (compileRegex True "\\s#")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "General Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\[\\]]+"
-                              , reCompiled = Just (compileRegex True "[\\[\\]]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@[a-zA-Z_0-9]+"
-                              , reCompiled = Just (compileRegex True "@[a-zA-Z_0-9]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@@[a-zA-Z_0-9]+"
-                              , reCompiled = Just (compileRegex True "@@[a-zA-Z_0-9]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '/'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "RegEx 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*[%](?=[Qqxw]?[^\\s>])"
-                              , reCompiled = Just (compileRegex True "\\s*[%](?=[Qqxw]?[^\\s>])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby/Rails/RHTML" , "find_gdl_input" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "rubysourceline"
-          , Context
-              { cName = "rubysourceline"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby/Rails/RHTML" , "rubysource" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "shell_command_rules"
-          , Context
-              { cName = "shell_command_rules"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#@{1,2}"
-                              , reCompiled = Just (compileRegex True "#@{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "Short Subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby/Rails/RHTML" , "Subst" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "token_array_rules"
-          , Context
-              { cName = "token_array_rules"
-              , cSyntax = "Ruby/Rails/RHTML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "\\\\"
-                      , 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 = "Richard Dale rdale@foton.es"
-  , sVersion = "4"
-  , sLicense = "LGPLv2+"
-  , sExtensions = [ "*.rhtml" , "*.html.erb" ]
-  , sStartingContext = "Start"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Ruby/Rails/RHTML\", sFilename = \"rhtml.xml\", sShortname = \"Rhtml\", sContexts = fromList [(\"Apostrophed String\",Context {cName = \"Apostrophed String\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = StringDetect \"\\\\\\\\\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\\\\\'\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CDATA\",Context {cName = \"CDATA\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"]]>\", rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"]]&gt;\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CSS\",Context {cName = \"CSS\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<%=?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"rubysource\")]},Rule {rMatcher = Detect2Chars '/' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"CSS content\")]},Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"FindAttributes\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"CSS content\",Context {cName = \"CSS content\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<%=?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"rubysource\")]},Rule {rMatcher = RegExpr (RE {reString = \"</style\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"El Close 2\")]},Rule {rMatcher = IncludeRules (\"CSS\",\"\"), rAttribute = NormalTok, rIncludeAttribute = True, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Command String\",Context {cName = \"Command String\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = StringDetect \"\\\\\\\\\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\\\\\`\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#@{1,2}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Short Subst\")]},Rule {rMatcher = Detect2Chars '#' '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Subst\")]},Rule {rMatcher = HlCChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '`', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment\",Context {cName = \"Comment\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},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 = []},Rule {rMatcher = StringDetect \"-->\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"-(-(?!->))+\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment Line\",Context {cName = \"Comment Line\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\w\\\\:\\\\:\\\\s\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"RDoc Label\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&()*+,-./:;<=>[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"FIXME\",\"NOTE\",\"TODO\"])), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-?%>\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"DATA\",Context {cName = \"DATA\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Doctype\",Context {cName = \"Doctype\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '[', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Doctype Internal Subset\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Doctype Internal Subset\",Context {cName = \"Doctype Internal Subset\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = DetectChar ']', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"FindDTDRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\?[\\\\w:-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"PI\")]},Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"FindPEntityRefs\"), 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}),(\"Doctype Markupdecl\",Context {cName = \"Doctype Markupdecl\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Doctype Markupdecl DQ\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Doctype Markupdecl SQ\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Doctype Markupdecl DQ\",Context {cName = \"Doctype Markupdecl DQ\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<%=?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"rubysource\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"FindPEntityRefs\"), 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}),(\"Doctype Markupdecl SQ\",Context {cName = \"Doctype Markupdecl SQ\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<%=?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"rubysource\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"FindPEntityRefs\"), 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}),(\"El Close\",Context {cName = \"El Close\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<%=?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"rubysource\")]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"El Close 2\",Context {cName = \"El Close 2\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<%=?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"rubysource\")]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"El Close 3\",Context {cName = \"El Close 3\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<%=?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"rubysource\")]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"El Open\",Context {cName = \"El Open\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<%=?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"rubysource\")]},Rule {rMatcher = Detect2Chars '/' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"FindAttributes\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"Embedded documentation\",Context {cName = \"Embedded documentation\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = StringDetect \"=end\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindAttributes\",Context {cName = \"FindAttributes\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[A-Za-z_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+[A-Za-z_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '=', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Value\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindDTDRules\",Context {cName = \"FindDTDRules\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<!(ELEMENT|ENTITY|ATTLIST|NOTATION)\\\\b\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Doctype Markupdecl\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindEntityRefs\",Context {cName = \"FindEntityRefs\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\\\w.:_-]*);\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"&<\", 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}),(\"FindHTML\",Context {cName = \"FindHTML\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"<%=?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"rubysource\")]},Rule {rMatcher = StringDetect \"%\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"rubysourceline\")]},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Comment\")]},Rule {rMatcher = StringDetect \"<![CDATA[\", rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"CDATA\")]},Rule {rMatcher = RegExpr (RE {reString = \"<!DOCTYPE\\\\s+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Doctype\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\?[\\\\w:-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"PI\")]},Rule {rMatcher = RegExpr (RE {reString = \"<style\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"CSS\")]},Rule {rMatcher = RegExpr (RE {reString = \"<script\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"JS\")]},Rule {rMatcher = RegExpr (RE {reString = \"<pre\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"<div\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"<table\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"<[A-Za-z_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"El Open\")]},Rule {rMatcher = RegExpr (RE {reString = \"</pre\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"El Close\")]},Rule {rMatcher = RegExpr (RE {reString = \"</div\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"El Close\")]},Rule {rMatcher = RegExpr (RE {reString = \"</table\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"El Close\")]},Rule {rMatcher = RegExpr (RE {reString = \"</[A-Za-z_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"El Close\")]},Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"FindDTDRules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"FindEntityRefs\"), 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}),(\"FindPEntityRefs\",Context {cName = \"FindPEntityRefs\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\\\w.:_-]*);\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%[A-Za-z_:][\\\\w.:_-]*;\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"&%\", 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}),(\"General Comment\",Context {cName = \"General Comment\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&()*+,-./:;<=>[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"FIXME\",\"NOTE\",\"TODO\"])), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"JS\",Context {cName = \"JS\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<%=?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"rubysource\")]},Rule {rMatcher = Detect2Chars '/' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"JS content\")]},Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"FindAttributes\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"JS comment close\",Context {cName = \"JS comment close\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"</script\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"El Close 3\")]},Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"JS content\",Context {cName = \"JS content\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<%=?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"rubysource\")]},Rule {rMatcher = RegExpr (RE {reString = \"</script\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"El Close 2\")]},Rule {rMatcher = RegExpr (RE {reString = \"//(?=.*</script\\\\b)\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"JS comment close\")]},Rule {rMatcher = IncludeRules (\"JavaScript\",\"Normal\"), rAttribute = NormalTok, rIncludeAttribute = True, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Line Continue\",Context {cName = \"Line Continue\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(while|until)\\\\b(?!.*\\\\bdo\\\\b)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(if|unless)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"rubysource\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Member Access\",Context {cName = \"Member Access\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\.?[_a-z]\\\\w*(\\\\?|\\\\!)?(?=[^\\\\w\\\\d\\\\.\\\\:])\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.?[_a-z]\\\\w*(\\\\?|\\\\!)?\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[A-Z]+_*(\\\\d|[a-z])\\\\w*(?=[^\\\\w\\\\d\\\\.\\\\:])\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[A-Z]+_*([0-9]|[a-z])\\\\w*\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[_A-Z][_A-Z0-9]*(?=[^\\\\w\\\\d\\\\.\\\\:])\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[_A-Z][_A-Z0-9]*\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars ':' ':', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '.', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"=+-*/%|&[]{}~\", rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = AnyChar \"()\\\\\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\W\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"PI\",Context {cName = \"PI\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = Detect2Chars '?' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Quoted String\",Context {cName = \"Quoted String\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = StringDetect \"\\\\\\\\\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\\\\\\\\"\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#@{1,2}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Short Subst\")]},Rule {rMatcher = Detect2Chars '#' '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Subst\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"RDoc Label\",Context {cName = \"RDoc Label\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"RegEx 1\",Context {cName = \"RegEx 1\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\\\\\/\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[^\\\\\\\\]$\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"#@{1,2}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Short Subst\")]},Rule {rMatcher = Detect2Chars '#' '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Subst\")]},Rule {rMatcher = RegExpr (RE {reString = \"/[uiomxn]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Short Subst\",Context {cName = \"Short Subst\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"#@{1,2}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\w(?!\\\\w)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Start\",Context {cName = \"Start\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"FindHTML\"), 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}),(\"Subst\",Context {cName = \"Subst\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"rubysource\"), 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}),(\"Value\",Context {cName = \"Value\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<%=?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"rubysource\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Value DQ\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Value SQ\")]},Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Push (\"Ruby/Rails/RHTML\",\"Value NQ\")], cDynamic = False}),(\"Value DQ\",Context {cName = \"Value DQ\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<%=?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"rubysource\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"FindEntityRefs\"), 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}),(\"Value NQ\",Context {cName = \"Value NQ\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<%=?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"rubysource\")]},Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"FindEntityRefs\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"/(?!>)\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[^/><\\\"'\\\\s]\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop,Pop], cDynamic = False}),(\"Value SQ\",Context {cName = \"Value SQ\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<%=?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"rubysource\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"FindEntityRefs\"), 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}),(\"apostrophed_indented_heredoc\",Context {cName = \"apostrophed_indented_heredoc\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"apostrophed_normal_heredoc\",Context {cName = \"apostrophed_normal_heredoc\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"apostrophed_rules\",Context {cName = \"apostrophed_rules\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\\\\', 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}),(\"dq_string_rules\",Context {cName = \"dq_string_rules\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#@{1,2}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Short Subst\")]},Rule {rMatcher = Detect2Chars '#' '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Subst\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_gdl_input\",Context {cName = \"find_gdl_input\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"w\\\\(\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_token_array_1\")]},Rule {rMatcher = RegExpr (RE {reString = \"w\\\\{\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_token_array_2\")]},Rule {rMatcher = RegExpr (RE {reString = \"w\\\\[\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_token_array_3\")]},Rule {rMatcher = RegExpr (RE {reString = \"w<\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_token_array_4\")]},Rule {rMatcher = RegExpr (RE {reString = \"w([^\\\\s\\\\w])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_token_array_5\")]},Rule {rMatcher = RegExpr (RE {reString = \"q\\\\(\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_apostrophed_1\")]},Rule {rMatcher = RegExpr (RE {reString = \"q\\\\{\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_apostrophed_2\")]},Rule {rMatcher = RegExpr (RE {reString = \"q\\\\[\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_apostrophed_3\")]},Rule {rMatcher = RegExpr (RE {reString = \"q<\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_apostrophed_4\")]},Rule {rMatcher = RegExpr (RE {reString = \"q([^\\\\s\\\\w])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_apostrophed_5\")]},Rule {rMatcher = RegExpr (RE {reString = \"x\\\\(\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_shell_command_1\")]},Rule {rMatcher = RegExpr (RE {reString = \"x\\\\{\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_shell_command_2\")]},Rule {rMatcher = RegExpr (RE {reString = \"x\\\\[\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_shell_command_3\")]},Rule {rMatcher = RegExpr (RE {reString = \"x<\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_shell_command_4\")]},Rule {rMatcher = RegExpr (RE {reString = \"x([^\\\\s\\\\w])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_shell_command_5\")]},Rule {rMatcher = RegExpr (RE {reString = \"r\\\\(\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_regexpr_1\")]},Rule {rMatcher = RegExpr (RE {reString = \"r\\\\{\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_regexpr_2\")]},Rule {rMatcher = RegExpr (RE {reString = \"r\\\\[\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_regexpr_3\")]},Rule {rMatcher = RegExpr (RE {reString = \"r<\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_regexpr_4\")]},Rule {rMatcher = RegExpr (RE {reString = \"r([^\\\\s\\\\w])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_regexpr_5\")]},Rule {rMatcher = RegExpr (RE {reString = \"Q?\\\\(\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_dq_string_1\")]},Rule {rMatcher = RegExpr (RE {reString = \"Q?\\\\{\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_dq_string_2\")]},Rule {rMatcher = RegExpr (RE {reString = \"Q?\\\\[\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_dq_string_3\")]},Rule {rMatcher = RegExpr (RE {reString = \"Q?<\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_dq_string_4\")]},Rule {rMatcher = RegExpr (RE {reString = \"Q?([^\\\\s\\\\w])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_dq_string_5\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_heredoc\",Context {cName = \"find_heredoc\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"'(\\\\w+)'\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"apostrophed_normal_heredoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\"?(\\\\w+)\\\"?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"normal_heredoc\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_indented_heredoc\",Context {cName = \"find_indented_heredoc\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"'(\\\\w+)'\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"apostrophed_indented_heredoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\"?(\\\\w+)\\\"?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"indented_heredoc\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_apostrophed_1\",Context {cName = \"gdl_apostrophed_1\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"apostrophed_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ')', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_apostrophed_1_nested\")]},Rule {rMatcher = DetectChar ')', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_apostrophed_1_nested\",Context {cName = \"gdl_apostrophed_1_nested\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"apostrophed_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_apostrophed_1_nested\")]},Rule {rMatcher = DetectChar ')', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_apostrophed_2\",Context {cName = \"gdl_apostrophed_2\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"apostrophed_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '}', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar '{', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_apostrophed_2_nested\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_apostrophed_2_nested\",Context {cName = \"gdl_apostrophed_2_nested\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"apostrophed_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_apostrophed_2_nested\")]},Rule {rMatcher = DetectChar '}', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_apostrophed_3\",Context {cName = \"gdl_apostrophed_3\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"apostrophed_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ']', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_apostrophed_3_nested\")]},Rule {rMatcher = DetectChar ']', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_apostrophed_3_nested\",Context {cName = \"gdl_apostrophed_3_nested\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"apostrophed_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_apostrophed_3_nested\")]},Rule {rMatcher = DetectChar ']', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_apostrophed_4\",Context {cName = \"gdl_apostrophed_4\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"apostrophed_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '>', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '<', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_apostrophed_4_nested\")]},Rule {rMatcher = DetectChar '>', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_apostrophed_4_nested\",Context {cName = \"gdl_apostrophed_4_nested\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"apostrophed_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '<', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_apostrophed_4_nested\")]},Rule {rMatcher = DetectChar '>', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_apostrophed_5\",Context {cName = \"gdl_apostrophed_5\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"apostrophed_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\%1\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*%1\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"gdl_dq_string_1\",Context {cName = \"gdl_dq_string_1\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"dq_string_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ')', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_dq_string_1_nested\")]},Rule {rMatcher = DetectChar ')', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_dq_string_1_nested\",Context {cName = \"gdl_dq_string_1_nested\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"dq_string_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_dq_string_1_nested\")]},Rule {rMatcher = DetectChar ')', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_dq_string_2\",Context {cName = \"gdl_dq_string_2\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"dq_string_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '}', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar '{', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_dq_string_2_nested\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_dq_string_2_nested\",Context {cName = \"gdl_dq_string_2_nested\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_dq_string_2_nested\")]},Rule {rMatcher = DetectChar '}', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"dq_string_rules\"), 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}),(\"gdl_dq_string_3\",Context {cName = \"gdl_dq_string_3\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"dq_string_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ']', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_dq_string_3_nested\")]},Rule {rMatcher = DetectChar ']', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_dq_string_3_nested\",Context {cName = \"gdl_dq_string_3_nested\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = DetectChar '[', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_dq_string_3_nested\")]},Rule {rMatcher = DetectChar ']', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"dq_string_rules\"), 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}),(\"gdl_dq_string_4\",Context {cName = \"gdl_dq_string_4\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"dq_string_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '>', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '<', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_dq_string_4_nested\")]},Rule {rMatcher = DetectChar '>', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_dq_string_4_nested\",Context {cName = \"gdl_dq_string_4_nested\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = DetectChar '<', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_dq_string_4_nested\")]},Rule {rMatcher = DetectChar '>', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"dq_string_rules\"), 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}),(\"gdl_dq_string_5\",Context {cName = \"gdl_dq_string_5\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"dq_string_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\%1\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*%1\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"gdl_regexpr_1\",Context {cName = \"gdl_regexpr_1\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"regexpr_rules\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ')', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_regexpr_1_nested\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\)[uiomxn]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_regexpr_1_nested\",Context {cName = \"gdl_regexpr_1_nested\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"regexpr_rules\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_regexpr_1_nested\")]},Rule {rMatcher = DetectChar ')', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_regexpr_2\",Context {cName = \"gdl_regexpr_2\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"regexpr_rules\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\}[uiomxn]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_regexpr_2_nested\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_regexpr_2_nested\",Context {cName = \"gdl_regexpr_2_nested\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"regexpr_rules\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_regexpr_2_nested\")]},Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_regexpr_3\",Context {cName = \"gdl_regexpr_3\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"regexpr_rules\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ']', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_regexpr_3_nested\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\][uiomxn]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_regexpr_3_nested\",Context {cName = \"gdl_regexpr_3_nested\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"regexpr_rules\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_regexpr_3_nested\")]},Rule {rMatcher = DetectChar ']', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_regexpr_4\",Context {cName = \"gdl_regexpr_4\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"regexpr_rules\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '>', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '<', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_regexpr_4_nested\")]},Rule {rMatcher = RegExpr (RE {reString = \">[uiomxn]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_regexpr_4_nested\",Context {cName = \"gdl_regexpr_4_nested\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"regexpr_rules\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '<', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_regexpr_4_nested\")]},Rule {rMatcher = DetectChar '>', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_regexpr_5\",Context {cName = \"gdl_regexpr_5\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"regexpr_rules\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\%1\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*%1[uiomxn]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"gdl_shell_command_1\",Context {cName = \"gdl_shell_command_1\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"shell_command_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ')', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_shell_command_1_nested\")]},Rule {rMatcher = DetectChar ')', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_shell_command_1_nested\",Context {cName = \"gdl_shell_command_1_nested\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"shell_command_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_shell_command_1_nested\")]},Rule {rMatcher = DetectChar ')', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_shell_command_2\",Context {cName = \"gdl_shell_command_2\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"shell_command_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '}', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar '{', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_shell_command_2_nested\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_shell_command_2_nested\",Context {cName = \"gdl_shell_command_2_nested\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"shell_command_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_shell_command_2_nested\")]},Rule {rMatcher = DetectChar '}', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_shell_command_3\",Context {cName = \"gdl_shell_command_3\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"shell_command_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ']', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_shell_command_3_nested\")]},Rule {rMatcher = DetectChar ']', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_shell_command_3_nested\",Context {cName = \"gdl_shell_command_3_nested\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"shell_command_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_shell_command_3_nested\")]},Rule {rMatcher = DetectChar ']', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_shell_command_4\",Context {cName = \"gdl_shell_command_4\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"shell_command_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '>', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '<', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_shell_command_4_nested\")]},Rule {rMatcher = DetectChar '>', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_shell_command_4_nested\",Context {cName = \"gdl_shell_command_4_nested\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"shell_command_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '<', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_shell_command_4_nested\")]},Rule {rMatcher = DetectChar '>', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_shell_command_5\",Context {cName = \"gdl_shell_command_5\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"shell_command_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\%1\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*%1\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"gdl_token_array_1\",Context {cName = \"gdl_token_array_1\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"token_array_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ')', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_token_array_1_nested\")]},Rule {rMatcher = DetectChar ')', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_token_array_1_nested\",Context {cName = \"gdl_token_array_1_nested\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"token_array_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_token_array_1_nested\")]},Rule {rMatcher = DetectChar ')', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_token_array_2\",Context {cName = \"gdl_token_array_2\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"token_array_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '}', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar '{', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_token_array_2_nested\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_token_array_2_nested\",Context {cName = \"gdl_token_array_2_nested\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"token_array_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_token_array_2_nested\")]},Rule {rMatcher = DetectChar '}', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_token_array_3\",Context {cName = \"gdl_token_array_3\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"token_array_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ']', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_token_array_3_nested\")]},Rule {rMatcher = DetectChar ']', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_token_array_3_nested\",Context {cName = \"gdl_token_array_3_nested\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"token_array_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_token_array_3_nested\")]},Rule {rMatcher = DetectChar ']', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_token_array_4\",Context {cName = \"gdl_token_array_4\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"token_array_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '>', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '<', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_token_array_4_nested\")]},Rule {rMatcher = DetectChar '>', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_token_array_4_nested\",Context {cName = \"gdl_token_array_4_nested\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"token_array_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '<', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"gdl_token_array_4_nested\")]},Rule {rMatcher = DetectChar '>', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_token_array_5\",Context {cName = \"gdl_token_array_5\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"token_array_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\%1\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*%1\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"heredoc_rules\",Context {cName = \"heredoc_rules\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"#@{1,2}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Short Subst\")]},Rule {rMatcher = Detect2Chars '#' '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Subst\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"indented_heredoc\",Context {cName = \"indented_heredoc\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"heredoc_rules\"), 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 = True}),(\"normal_heredoc\",Context {cName = \"normal_heredoc\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"heredoc_rules\"), 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 = True}),(\"regexpr_rules\",Context {cName = \"regexpr_rules\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#@{1,2}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Short Subst\")]},Rule {rMatcher = Detect2Chars '#' '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Subst\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"rubysource\",Context {cName = \"rubysource\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = LineContinue, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Line Continue\")]},Rule {rMatcher = RegExpr (RE {reString = \"-?%>\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"__END__$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"DATA\")]},Rule {rMatcher = RegExpr (RE {reString = \"#!\\\\/.*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\=|\\\\(|\\\\[|\\\\{)\\\\s*(if|unless|while|until)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(while|until)\\\\b(?!.*\\\\bdo\\\\b)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\;\\\\s*(while|until)\\\\b(?!.*\\\\bdo\\\\b)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(if|unless)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\;\\\\s*(if|unless)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bclass\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bmodule\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bbegin\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bfor\\\\b(?!.*\\\\bdo\\\\b)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bcase\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bdo\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bdef\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bend\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b|^\\\\s*)(else|elsif|rescue|ensure)(\\\\s+|$)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"...\", rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '.' '.', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.[_a-z][_a-zA-Z0-9]*(\\\\?|\\\\!|\\\\b)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s\\\\?(\\\\\\\\M\\\\-)?(\\\\\\\\C\\\\-)?\\\\\\\\?\\\\S\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&()*+,-./:;<=>[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"BEGIN\",\"END\",\"and\",\"begin\",\"break\",\"case\",\"defined?\",\"do\",\"else\",\"elsif\",\"end\",\"ensure\",\"for\",\"if\",\"in\",\"include\",\"next\",\"not\",\"or\",\"redo\",\"rescue\",\"retry\",\"return\",\"then\",\"unless\",\"until\",\"when\",\"while\",\"yield\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&()*+,-./:;<=>[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"attr_accessor\",\"attr_reader\",\"attr_writer\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&()*+,-./:;<=>[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"private\",\"private_class_method\",\"protected\",\"public\",\"public_class_method\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&()*+,-./:;<=>[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"alias\",\"class\",\"def\",\"module\",\"undef\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&()*+,-./:;<=>[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"__FILE__\",\"__LINE__\",\"caller\",\"false\",\"nil\",\"self\",\"super\",\"true\"])), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&()*+,-./:;<=>[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"$deferr\",\"$defout\",\"$stderr\",\"$stdin\",\"$stdout\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&()*+,-./:;<=>[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"abort\",\"at_exit\",\"auto_complete_field\",\"auto_complete_result\",\"auto_discovery_link_tag\",\"auto_link\",\"autoload\",\"autoload?\",\"benchmark\",\"binding\",\"block_given?\",\"button_to\",\"cache\",\"callcc\",\"caller\",\"capture\",\"catch\",\"check_box\",\"check_box_tag\",\"chomp\",\"chomp!\",\"chop\",\"chop!\",\"collection_select\",\"concat\",\"content_for\",\"content_tag\",\"country_options_for_select\",\"country_select\",\"current_page?\",\"date_select\",\"datetime_select\",\"debug\",\"define_javascript_functions\",\"distance_of_time_in_words\",\"distance_of_time_in_words_to_now\",\"draggable_element\",\"drop_receiving_element\",\"end_form_tag\",\"error_message_on\",\"error_messages_for\",\"escape_javascript\",\"eval\",\"evaluate_remote_response\",\"excerpt\",\"exec\",\"exit\",\"exit!\",\"fail\",\"file_field\",\"file_field_tag\",\"finish_upload_status\",\"fork\",\"form\",\"form_remote_tag\",\"form_tag\",\"form_tag_with_upload_progress\",\"format\",\"getc\",\"gets\",\"global_variables\",\"gsub\",\"gsub!\",\"h\",\"hidden_field\",\"hidden_field_tag\",\"highlight\",\"human_size\",\"image_path\",\"image_submit_tag\",\"image_tag\",\"input\",\"iterator?\",\"javascript_include_tag\",\"javascript_path\",\"javascript_tag\",\"lambda\",\"link_image_to\",\"link_to\",\"link_to_function\",\"link_to_if\",\"link_to_image\",\"link_to_remote\",\"link_to_unless\",\"link_to_unless_current\",\"load\",\"local_variables\",\"loop\",\"mail_to\",\"markdown\",\"method_missing\",\"number_to_currency\",\"number_to_human_size\",\"number_to_percentage\",\"number_to_phone\",\"number_with_delimiter\",\"number_with_precision\",\"observe_field\",\"observe_form\",\"open\",\"option_groups_from_collection_for_select\",\"options_for_select\",\"options_from_collection_for_select\",\"p\",\"pagination_links\",\"password_field\",\"password_field_tag\",\"periodically_call_remote\",\"pluralize\",\"print\",\"printf\",\"proc\",\"putc\",\"puts\",\"radio_button\",\"radio_button_tag\",\"raise\",\"rand\",\"readline\",\"readlines\",\"register_template_handler\",\"render\",\"render_file\",\"render_template\",\"require\",\"sanitize\",\"scan\",\"select\",\"select_date\",\"select_datetime\",\"select_day\",\"select_hour\",\"select_minute\",\"select_month\",\"select_second\",\"select_tag\",\"select_time\",\"select_year\",\"set_trace_func\",\"simple_format\",\"sleep\",\"sortable_element\",\"split\",\"sprintf\",\"srand\",\"start_form_tag\",\"strip_links\",\"stylesheet_link_tag\",\"stylesheet_path\",\"sub\",\"sub!\",\"submit_tag\",\"submit_to_remote\",\"syscall\",\"system\",\"tag\",\"test\",\"text_area\",\"text_area_tag\",\"text_field\",\"text_field_tag\",\"text_field_with_auto_complete\",\"textilize\",\"textilize_without_paragraph\",\"throw\",\"time_ago_in_words\",\"time_zone_options_for_select\",\"time_zone_select\",\"trace_var\",\"trap\",\"truncate\",\"untrace_var\",\"update_element_function\",\"upload_progress_status\",\"upload_progress_text\",\"upload_progress_update_bar_js\",\"upload_status_progress_bar_tag\",\"upload_status_tag\",\"upload_status_text_tag\",\"url_for\",\"visual_effect\",\"warn\",\"word_wrap\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[a-zA-Z_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 = \"\\\\$\\\\-[a-zA-z_]\\\\b\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[\\\\d_*`\\\\!:?'/\\\\\\\\\\\\-\\\\&]\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[_A-Z]+[A-Z_0-9]+\\\\b\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\\\\b\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b\\\\-?0[xX][_0-9a-fA-F]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b\\\\-?0[bB][_01]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b\\\\-?0[1-7][_0-7]*\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b\\\\-?[0-9][0-9_]*\\\\.[0-9][0-9_]*([eE]\\\\-?[1-9][0-9]*(\\\\.[0-9]*)?)?\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b\\\\-?[1-9][0-9_]*\\\\b\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"=begin\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Embedded documentation\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*<<-(?=\\\\w+|[\\\"'])\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"find_indented_heredoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*<<(?=\\\\w+|[\\\"'])\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"find_heredoc\")]},Rule {rMatcher = DetectChar '.', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '&' '&', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '|' '|', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s[\\\\?\\\\:\\\\%/]\\\\s\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[|&<>\\\\^\\\\+*~\\\\-=]+\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s!\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"/=\\\\s\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"%=\", rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars ':' ':', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Member Access\")]},Rule {rMatcher = RegExpr (RE {reString = \":[a-zA-Z_][a-zA-Z0-9_]*\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Quoted String\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Apostrophed String\")]},Rule {rMatcher = DetectChar '`', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Command String\")]},Rule {rMatcher = StringDetect \"?#\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*BEGIN.*$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*END.*$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Comment Line\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s#\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"General Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\[\\\\]]+\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"@[a-zA-Z_0-9]+\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"@@[a-zA-Z_0-9]+\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '/', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"RegEx 1\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*[%](?=[Qqxw]?[^\\\\s>])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"find_gdl_input\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"rubysourceline\",Context {cName = \"rubysourceline\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby/Rails/RHTML\",\"rubysource\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"shell_command_rules\",Context {cName = \"shell_command_rules\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#@{1,2}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Short Subst\")]},Rule {rMatcher = Detect2Chars '#' '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby/Rails/RHTML\",\"Subst\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"token_array_rules\",Context {cName = \"token_array_rules\", cSyntax = \"Ruby/Rails/RHTML\", cRules = [Rule {rMatcher = StringDetect \"\\\\\\\\\", 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 = \"Richard Dale rdale@foton.es\", sVersion = \"4\", sLicense = \"LGPLv2+\", sExtensions = [\"*.rhtml\",\"*.html.erb\"], sStartingContext = \"Start\"}"
diff --git a/src/Skylighting/Syntax/Roff.hs b/src/Skylighting/Syntax/Roff.hs
--- a/src/Skylighting/Syntax/Roff.hs
+++ b/src/Skylighting/Syntax/Roff.hs
@@ -2,1333 +2,6 @@
 module Skylighting.Syntax.Roff (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Roff"
-  , sFilename = "roff.xml"
-  , sShortname = "Roff"
-  , sContexts =
-      fromList
-        [ ( "Argument"
-          , Context
-              { cName = "Argument"
-              , cSyntax = "Roff"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1" , reCompiled = Nothing , reCaseSensitive = True }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Roff" , "DetectOthers" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "Roff" , "Error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "Roff"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "DetectComments"
-          , Context
-              { cName = "DetectComments"
-              , cSyntax = "Roff"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.\\s*\\\\\""
-                              , reCompiled = Just (compileRegex True "\\.\\s*\\\\\"")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Roff" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '"'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Roff" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Roff" , "Comment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "DetectDirective"
-          , Context
-              { cName = "DetectDirective"
-              , cSyntax = "Roff"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "br" , "sp" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Roff" , "Directive" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Roff" , "Directive" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Roff" , "Directive" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*ds\\b"
-                              , reCompiled = Just (compileRegex True "\\s*ds\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 1
-                      , rContextSwitch = [ Push ( "Roff" , "dsDirective" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*de\\b"
-                              , reCompiled = Just (compileRegex True "\\s*de\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 1
-                      , rContextSwitch = [ Push ( "Roff" , "deDirective" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*da(?=\\s+[A-Za-z]+)"
-                              , reCompiled = Just (compileRegex True "\\s*da(?=\\s+[A-Za-z]+)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 1
-                      , rContextSwitch = [ Push ( "Roff" , "daDirective" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*di(?=\\s+[A-Za-z]+)"
-                              , reCompiled = Just (compileRegex True "\\s*di(?=\\s+[A-Za-z]+)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 1
-                      , rContextSwitch = [ Push ( "Roff" , "diDirective" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*[A-Za-z]+\\b"
-                              , reCompiled = Just (compileRegex True "\\s*[A-Za-z]+\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 1
-                      , rContextSwitch = [ Push ( "Roff" , "Directive" ) ]
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "DetectEscape"
-          , Context
-              { cName = "DetectEscape"
-              , cSyntax = "Roff"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\(\\*|n[+-]?)([^]\\s]|\\([^]\\s]{2}|\\[[^]\\s]+\\])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\(\\*|n[+-]?)([^]\\s]|\\([^]\\s]{2}|\\[[^]\\s]+\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[fF]([^]\\s]|\\([^]\\s]{2}|\\[[^]\\s]+\\])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\\\[fF]([^]\\s]|\\([^]\\s]{2}|\\[[^]\\s]+\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\f([0-9]|\\([0-9][0-9]|\\[[0-9]+\\])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\f([0-9]|\\([0-9][0-9]|\\[[0-9]+\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\s(\\[([1-3][0-9]|[04-9])\\]|[04-9]|[+-][0-9]|([+-]?\\(|\\([+-])[0-9][0-9])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\s(\\[([1-3][0-9]|[04-9])\\]|[04-9]|[+-][0-9]|([+-]?\\(|\\([+-])[0-9][0-9])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(\\$[0-9*@]|[.:% |^{}_!?@)/,&:~0acdeEprtu])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\\\(\\$[0-9*@]|[.:% |^{}_!?@)/,&:~0acdeEprtu])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\[ABDXZbow]([^\\\\]|\\\\[% |\\^{}'`\\-!?@)/,&:~0E_acdeprtu])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\[ABDXZbow]([^\\\\]|\\\\[% |\\^{}'`\\-!?@)/,&:~0E_acdeprtu])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Roff" , "Argument" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[gkmMVYz]([^]\\s]|\\([^]\\s]{2}|\\[[^]\\s]+\\])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\\\[gkmMVYz]([^]\\s]|\\([^]\\s]{2}|\\[[^]\\s]+\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\O([0-4]|\\[5[lrci][^]]\\])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\O([0-4]|\\[5[lrci][^]]\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\[hHSvx]([^\\\\]|\\\\[% |\\^{}'`\\-!?@)/,&:~0E_acdeprtu])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\[hHSvx]([^\\\\]|\\\\[% |\\^{}'`\\-!?@)/,&:~0E_acdeprtu])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Roff" , "Measurement" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\[lL]([^\\\\]|\\\\[% |\\^{}'`\\-!?@)/,&:~0E_acdeprtu])\\|?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\[lL]([^\\\\]|\\\\[% |\\^{}'`\\-!?@)/,&:~0E_acdeprtu])\\|?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Roff" , "Measurement" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\R([^\\\\]|\\\\[% |\\^{}'`\\-!?@)/,&:~0E_acdeprtu])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\R([^\\\\]|\\\\[% |\\^{}'`\\-!?@)/,&:~0E_acdeprtu])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Roff" , "Argument" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\\\C([^\\\\]|\\\\[% |\\^{}'`\\-!?@)/,&:~0E_acdeprtu])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\\\C([^\\\\]|\\\\[% |\\^{}'`\\-!?@)/,&:~0E_acdeprtu])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Roff" , "GlyphArgument" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\N([^\\\\0-9]|\\\\[%:{}'`\\-_!@/cep])[0-9]+\\1"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\\\N([^\\\\0-9]|\\\\[%:{}'`\\-_!@/cep])[0-9]+\\1")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\([^]\\s]|\\([^]\\s]{2}|\\[[^]\\s]+\\])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "\\\\([^]\\s]|\\([^]\\s]{2}|\\[[^]\\s]+\\])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , 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 = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "DetectOthers"
-          , Context
-              { cName = "DetectOthers"
-              , cSyntax = "Roff"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Roff" , "DetectComments" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Roff" , "DetectEscape" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Roff" , "String" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Directive"
-          , Context
-              { cName = "Directive"
-              , cSyntax = "Roff"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Float
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , 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 ( "Roff" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Roff" , "DetectOthers" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Error"
-          , Context
-              { cName = "Error"
-              , cSyntax = "Roff"
-              , cRules = []
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "GlyphArgument"
-          , Context
-              { cName = "GlyphArgument"
-              , cSyntax = "Roff"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1" , reCompiled = Nothing , reCaseSensitive = True }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "Roff" , "Error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "LiteralIL"
-          , Context
-              { cName = "LiteralIL"
-              , cSyntax = "Roff"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '?'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "Roff" , "Error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "LiteralSL"
-          , Context
-              { cName = "LiteralSL"
-              , cSyntax = "Roff"
-              , cRules = []
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Measurement"
-          , Context
-              { cName = "Measurement"
-              , cSyntax = "Roff"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1" , reCompiled = Nothing , reCaseSensitive = True }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "Roff" , "Error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Roff"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Roff" , "DetectComments" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '.'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Roff" , "DetectDirective" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Roff" , "DetectOthers" )
-                      , 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
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Roff"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '"'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Roff" , "DetectOthers" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "daBody"
-          , Context
-              { cName = "daBody"
-              , cSyntax = "Roff"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.\\s*da\\b"
-                              , reCompiled = Just (compileRegex True "\\.\\s*da\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '!'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Roff" , "LiteralSL" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '?'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Roff" , "LiteralIL" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Roff" , "Normal" )
-                      , 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
-              }
-          )
-        , ( "daDirective"
-          , Context
-              { cName = "daDirective"
-              , cSyntax = "Roff"
-              , cRules = []
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "Roff" , "daBody" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "deBody"
-          , Context
-              { cName = "deBody"
-              , cSyntax = "Roff"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '.' '.'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Roff" , "Normal" )
-                      , 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
-              }
-          )
-        , ( "deDirective"
-          , Context
-              { cName = "deDirective"
-              , cSyntax = "Roff"
-              , cRules = []
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "Roff" , "deBody" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "diBody"
-          , Context
-              { cName = "diBody"
-              , cSyntax = "Roff"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.\\s*di\\b"
-                              , reCompiled = Just (compileRegex True "\\.\\s*di\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '!'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Roff" , "LiteralSL" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '?'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Roff" , "LiteralIL" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Roff" , "Normal" )
-                      , 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
-              }
-          )
-        , ( "diDirective"
-          , Context
-              { cName = "diDirective"
-              , cSyntax = "Roff"
-              , cRules = []
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "Roff" , "diBody" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "dsDirective"
-          , Context
-              { cName = "dsDirective"
-              , cSyntax = "Roff"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = DecValTok
-                      , 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 ( "Roff" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Roff" , "dsString" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Roff" , "DetectOthers" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "dsString"
-          , Context
-              { cName = "dsString"
-              , cSyntax = "Roff"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Roff" , "DetectOthers" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Matthew Woehlke (mw_triad@users.sourceforge.net)"
-  , sVersion = "2"
-  , sLicense = "GPL"
-  , sExtensions = []
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Roff\", sFilename = \"roff.xml\", sShortname = \"Roff\", sContexts = fromList [(\"Argument\",Context {cName = \"Argument\", cSyntax = \"Roff\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Roff\",\"DetectOthers\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Push (\"Roff\",\"Error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"Comment\",Context {cName = \"Comment\", cSyntax = \"Roff\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"DetectComments\",Context {cName = \"DetectComments\", cSyntax = \"Roff\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\.\\\\s*\\\\\\\\\\\"\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Roff\",\"Comment\")]},Rule {rMatcher = Detect2Chars '\\\\' '\"', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Roff\",\"Comment\")]},Rule {rMatcher = Detect2Chars '\\\\' '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Roff\",\"Comment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"DetectDirective\",Context {cName = \"DetectDirective\", cSyntax = \"Roff\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"br\",\"sp\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Roff\",\"Directive\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Roff\",\"Directive\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Roff\",\"Directive\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*ds\\\\b\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 1, rContextSwitch = [Push (\"Roff\",\"dsDirective\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*de\\\\b\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 1, rContextSwitch = [Push (\"Roff\",\"deDirective\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*da(?=\\\\s+[A-Za-z]+)\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 1, rContextSwitch = [Push (\"Roff\",\"daDirective\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*di(?=\\\\s+[A-Za-z]+)\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 1, rContextSwitch = [Push (\"Roff\",\"diDirective\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*[A-Za-z]+\\\\b\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 1, rContextSwitch = [Push (\"Roff\",\"Directive\")]}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"DetectEscape\",Context {cName = \"DetectEscape\", cSyntax = \"Roff\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(\\\\*|n[+-]?)([^]\\\\s]|\\\\([^]\\\\s]{2}|\\\\[[^]\\\\s]+\\\\])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[fF]([^]\\\\s]|\\\\([^]\\\\s]{2}|\\\\[[^]\\\\s]+\\\\])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\f([0-9]|\\\\([0-9][0-9]|\\\\[[0-9]+\\\\])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\s(\\\\[([1-3][0-9]|[04-9])\\\\]|[04-9]|[+-][0-9]|([+-]?\\\\(|\\\\([+-])[0-9][0-9])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(\\\\$[0-9*@]|[.:% |^{}_!?@)/,&:~0acdeEprtu])\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[ABDXZbow]([^\\\\\\\\]|\\\\\\\\[% |\\\\^{}'`\\\\-!?@)/,&:~0E_acdeprtu])\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Roff\",\"Argument\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[gkmMVYz]([^]\\\\s]|\\\\([^]\\\\s]{2}|\\\\[[^]\\\\s]+\\\\])\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\O([0-4]|\\\\[5[lrci][^]]\\\\])\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[hHSvx]([^\\\\\\\\]|\\\\\\\\[% |\\\\^{}'`\\\\-!?@)/,&:~0E_acdeprtu])\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Roff\",\"Measurement\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[lL]([^\\\\\\\\]|\\\\\\\\[% |\\\\^{}'`\\\\-!?@)/,&:~0E_acdeprtu])\\\\|?\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Roff\",\"Measurement\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\R([^\\\\\\\\]|\\\\\\\\[% |\\\\^{}'`\\\\-!?@)/,&:~0E_acdeprtu])\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Roff\",\"Argument\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\C([^\\\\\\\\]|\\\\\\\\[% |\\\\^{}'`\\\\-!?@)/,&:~0E_acdeprtu])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Roff\",\"GlyphArgument\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\N([^\\\\\\\\0-9]|\\\\\\\\[%:{}'`\\\\-_!@/cep])[0-9]+\\\\1\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\([^]\\\\s]|\\\\([^]\\\\s]{2}|\\\\[[^]\\\\s]+\\\\])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\$\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\\\\', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"DetectOthers\",Context {cName = \"DetectOthers\", cSyntax = \"Roff\", cRules = [Rule {rMatcher = IncludeRules (\"Roff\",\"DetectComments\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\\\', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Roff\",\"DetectEscape\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Roff\",\"String\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Directive\",Context {cName = \"Directive\", cSyntax = \"Roff\", cRules = [Rule {rMatcher = Float, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, 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 (\"Roff\",\"Comment\")]},Rule {rMatcher = IncludeRules (\"Roff\",\"DetectOthers\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Error\",Context {cName = \"Error\", cSyntax = \"Roff\", cRules = [], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"GlyphArgument\",Context {cName = \"GlyphArgument\", cSyntax = \"Roff\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Push (\"Roff\",\"Error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"LiteralIL\",Context {cName = \"LiteralIL\", cSyntax = \"Roff\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '?', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Push (\"Roff\",\"Error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"LiteralSL\",Context {cName = \"LiteralSL\", cSyntax = \"Roff\", cRules = [], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Measurement\",Context {cName = \"Measurement\", cSyntax = \"Roff\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Push (\"Roff\",\"Error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Roff\", cRules = [Rule {rMatcher = IncludeRules (\"Roff\",\"DetectComments\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '.', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Roff\",\"DetectDirective\")]},Rule {rMatcher = IncludeRules (\"Roff\",\"DetectOthers\"), 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}),(\"String\",Context {cName = \"String\", cSyntax = \"Roff\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\"', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Roff\",\"DetectOthers\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"daBody\",Context {cName = \"daBody\", cSyntax = \"Roff\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\.\\\\s*da\\\\b\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]},Rule {rMatcher = Detect2Chars '\\\\' '!', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Roff\",\"LiteralSL\")]},Rule {rMatcher = Detect2Chars '\\\\' '?', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Roff\",\"LiteralIL\")]},Rule {rMatcher = IncludeRules (\"Roff\",\"Normal\"), 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}),(\"daDirective\",Context {cName = \"daDirective\", cSyntax = \"Roff\", cRules = [], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Push (\"Roff\",\"daBody\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"deBody\",Context {cName = \"deBody\", cSyntax = \"Roff\", cRules = [Rule {rMatcher = Detect2Chars '.' '.', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Roff\",\"Normal\"), 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}),(\"deDirective\",Context {cName = \"deDirective\", cSyntax = \"Roff\", cRules = [], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Push (\"Roff\",\"deBody\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"diBody\",Context {cName = \"diBody\", cSyntax = \"Roff\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\.\\\\s*di\\\\b\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]},Rule {rMatcher = Detect2Chars '\\\\' '!', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Roff\",\"LiteralSL\")]},Rule {rMatcher = Detect2Chars '\\\\' '?', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Roff\",\"LiteralIL\")]},Rule {rMatcher = IncludeRules (\"Roff\",\"Normal\"), 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}),(\"diDirective\",Context {cName = \"diDirective\", cSyntax = \"Roff\", cRules = [], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Push (\"Roff\",\"diBody\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"dsDirective\",Context {cName = \"dsDirective\", cSyntax = \"Roff\", cRules = [Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = DecValTok, 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 (\"Roff\",\"Comment\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Roff\",\"dsString\")]},Rule {rMatcher = IncludeRules (\"Roff\",\"DetectOthers\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"dsString\",Context {cName = \"dsString\", cSyntax = \"Roff\", cRules = [Rule {rMatcher = IncludeRules (\"Roff\",\"DetectOthers\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Matthew Woehlke (mw_triad@users.sourceforge.net)\", sVersion = \"2\", sLicense = \"GPL\", sExtensions = [], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Ruby.hs b/src/Skylighting/Syntax/Ruby.hs
--- a/src/Skylighting/Syntax/Ruby.hs
+++ b/src/Skylighting/Syntax/Ruby.hs
@@ -2,6224 +2,6 @@
 module Skylighting.Syntax.Ruby (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Ruby"
-  , sFilename = "ruby.xml"
-  , sShortname = "Ruby"
-  , sContexts =
-      fromList
-        [ ( "Apostrophed String"
-          , Context
-              { cName = "Apostrophed String"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "\\\\"
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1_pop" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Command String"
-          , Context
-              { cName = "Command String"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "\\\\"
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 =
-                          RegExpr
-                            RE
-                              { reString = "#@{1,2}"
-                              , reCompiled = Just (compileRegex True "#@{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "Short Subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "Subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1_pop" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment Line"
-          , Context
-              { cName = "Comment Line"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\w\\:\\:\\s"
-                              , reCompiled = Just (compileRegex True "\\w\\:\\:\\s")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "RDoc Label" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "DATA"
-          , Context
-              { cName = "DATA"
-              , cSyntax = "Ruby"
-              , cRules = []
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Embedded documentation"
-          , Context
-              { cName = "Embedded documentation"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "=end(?:\\s.*|$)"
-                              , reCompiled = Just (compileRegex True "=end(?:\\s.*|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , 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
-              }
-          )
-        , ( "Find closing block brace"
-          , Context
-              { cName = "Find closing block brace"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1_pop" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "Normal" )
-                      , 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
-              }
-          )
-        , ( "General Comment"
-          , Context
-              { cName = "General Comment"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Line Continue"
-          , Context
-              { cName = "Line Continue"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(while|until)\\b(?!.*\\bdo\\b)"
-                              , reCompiled =
-                                  Just (compileRegex True "(while|until)\\b(?!.*\\bdo\\b)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(if|unless)\\b"
-                              , reCompiled = Just (compileRegex True "(if|unless)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "Normal" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Member Access"
-          , Context
-              { cName = "Member Access"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.?[_a-z]\\w*(\\?|\\!)?(?=[^\\w\\d\\.\\:])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\.?[_a-z]\\w*(\\?|\\!)?(?=[^\\w\\d\\.\\:])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_2_pop" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.?[_a-z]\\w*(\\?|\\!)?"
-                              , reCompiled = Just (compileRegex True "\\.?[_a-z]\\w*(\\?|\\!)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Z]+_*(\\d|[a-z])\\w*(?=[^\\w\\d\\.\\:])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "[A-Z]+_*(\\d|[a-z])\\w*(?=[^\\w\\d\\.\\:])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_2_pop" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Z]+_*([0-9]|[a-z])\\w*"
-                              , reCompiled = Just (compileRegex True "[A-Z]+_*([0-9]|[a-z])\\w*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[_A-Z][_A-Z0-9]*(?=[^\\w\\d\\.\\:])"
-                              , reCompiled =
-                                  Just (compileRegex True "[_A-Z][_A-Z0-9]*(?=[^\\w\\d\\.\\:])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_2_pop" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[_A-Z][_A-Z0-9]*"
-                              , reCompiled = Just (compileRegex True "[_A-Z][_A-Z0-9]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars ':' ':'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '.'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "=+-*/%|&[]{}~"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "()\\"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , 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 = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "Line Continue" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "__END__$"
-                              , reCompiled = Just (compileRegex True "__END__$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Ruby" , "DATA" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#!\\/.*"
-                              , reCompiled = Just (compileRegex True "#!\\/.*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "Find closing block brace" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\=|\\(|\\[|\\{)\\s*(if|unless|while|until)\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(\\=|\\(|\\[|\\{)\\s*(if|unless|while|until)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(while|until)\\b(?!.*\\bdo\\b)"
-                              , reCompiled =
-                                  Just (compileRegex True "(while|until)\\b(?!.*\\bdo\\b)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\;\\s*(while|until)\\b(?!.*\\bdo\\b)"
-                              , reCompiled =
-                                  Just (compileRegex True "\\;\\s*(while|until)\\b(?!.*\\bdo\\b)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(if|unless)\\b"
-                              , reCompiled = Just (compileRegex True "(if|unless)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\;\\s*(if|unless)\\b"
-                              , reCompiled = Just (compileRegex True "\\;\\s*(if|unless)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bclass\\b"
-                              , reCompiled = Just (compileRegex True "\\bclass\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bmodule\\b"
-                              , reCompiled = Just (compileRegex True "\\bmodule\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bbegin\\b"
-                              , reCompiled = Just (compileRegex True "\\bbegin\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bfor\\b(?!.*\\bdo\\b)"
-                              , reCompiled = Just (compileRegex True "\\bfor\\b(?!.*\\bdo\\b)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bcase\\b"
-                              , reCompiled = Just (compileRegex True "\\bcase\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bdo\\b"
-                              , reCompiled = Just (compileRegex True "\\bdo\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bdef\\b"
-                              , reCompiled = Just (compileRegex True "\\bdef\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bend\\b"
-                              , reCompiled = Just (compileRegex True "\\bend\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b(else|elsif|rescue|ensure)\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b(else|elsif|rescue|ensure)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "..."
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '.' '.'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.[_a-z][_a-zA-Z0-9]*(\\?|\\!|\\b)"
-                              , reCompiled =
-                                  Just (compileRegex True "\\.[_a-z][_a-zA-Z0-9]*(\\?|\\!|\\b)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s\\?(\\\\M\\-)?(\\\\C\\-)?\\\\?\\S"
-                              , reCompiled =
-                                  Just (compileRegex True "\\s\\?(\\\\M\\-)?(\\\\C\\-)?\\\\?\\S")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&()*+,-./:;<=>[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "BEGIN"
-                               , "END"
-                               , "and"
-                               , "begin"
-                               , "break"
-                               , "case"
-                               , "defined?"
-                               , "do"
-                               , "else"
-                               , "elsif"
-                               , "end"
-                               , "ensure"
-                               , "for"
-                               , "if"
-                               , "in"
-                               , "next"
-                               , "not"
-                               , "or"
-                               , "redo"
-                               , "rescue"
-                               , "retry"
-                               , "return"
-                               , "then"
-                               , "unless"
-                               , "until"
-                               , "when"
-                               , "yield"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&()*+,-./:;<=>[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True [ "attr_accessor" , "attr_reader" , "attr_writer" ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&()*+,-./:;<=>[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "private"
-                               , "private_class_method"
-                               , "protected"
-                               , "public"
-                               , "public_class_method"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&()*+,-./:;<=>[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True [ "alias" , "class" , "def" , "module" , "undef" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&()*+,-./:;<=>[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "__FILE__"
-                               , "__LINE__"
-                               , "caller"
-                               , "false"
-                               , "nil"
-                               , "self"
-                               , "super"
-                               , "true"
-                               ])
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&()*+,-./:;<=>[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True [ "$deferr" , "$defout" , "$stderr" , "$stdin" , "$stdout" ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&()*+,-./:;<=>[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "abort"
-                               , "at_exit"
-                               , "autoload"
-                               , "autoload?"
-                               , "binding"
-                               , "block_given?"
-                               , "callcc"
-                               , "caller"
-                               , "catch"
-                               , "chomp"
-                               , "chomp!"
-                               , "chop"
-                               , "chop!"
-                               , "eval"
-                               , "exec"
-                               , "exit"
-                               , "exit!"
-                               , "fail"
-                               , "fork"
-                               , "format"
-                               , "getc"
-                               , "gets"
-                               , "global_variables"
-                               , "gsub"
-                               , "gsub!"
-                               , "iterator?"
-                               , "lambda"
-                               , "load"
-                               , "local_variables"
-                               , "loop"
-                               , "method_missing"
-                               , "open"
-                               , "p"
-                               , "print"
-                               , "printf"
-                               , "proc"
-                               , "putc"
-                               , "puts"
-                               , "raise"
-                               , "rand"
-                               , "readline"
-                               , "readlines"
-                               , "require"
-                               , "require_relative"
-                               , "scan"
-                               , "select"
-                               , "set_trace_func"
-                               , "sleep"
-                               , "split"
-                               , "sprintf"
-                               , "srand"
-                               , "sub"
-                               , "sub!"
-                               , "syscall"
-                               , "system"
-                               , "test"
-                               , "throw"
-                               , "trace_var"
-                               , "trap"
-                               , "untrace_var"
-                               , "warn"
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&()*+,-./:;<=>[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "extend" , "include" , "prepend" ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$[a-zA-Z_0-9]+"
-                              , reCompiled = Just (compileRegex True "\\$[a-zA-Z_0-9]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$\\-[a-zA-z_]\\b"
-                              , reCompiled = Just (compileRegex True "\\$\\-[a-zA-z_]\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$[\\d_*`+@;,.~=\\!\\$:?'/\\\\\\-\\&\"><]"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "\\$[\\d_*`+@;,.~=\\!\\$:?'/\\\\\\-\\&\"><]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[_A-Z]+[A-Z_0-9]+\\b"
-                              , reCompiled = Just (compileRegex True "\\b[_A-Z]+[A-Z_0-9]+\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "\\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b\\-?0[xX]([0-9a-fA-F]|_[0-9a-fA-F])+"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b\\-?0[xX]([0-9a-fA-F]|_[0-9a-fA-F])+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b\\-?0[bB]([01]|_[01])+"
-                              , reCompiled = Just (compileRegex True "\\b\\-?0[bB]([01]|_[01])+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b\\-?0[1-7]([0-7]|_[0-7])*"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b\\-?0[1-7]([0-7]|_[0-7])*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b\\-?[0-9]([0-9]|_[0-9])*\\.[0-9]([0-9]|_[0-9])*([eE]\\-?[1-9]([0-9]|_[0-9])*(\\.[0-9]*)?)?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\b\\-?[0-9]([0-9]|_[0-9])*\\.[0-9]([0-9]|_[0-9])*([eE]\\-?[1-9]([0-9]|_[0-9])*(\\.[0-9]*)?)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b\\-?[1-9]([0-9]|_[0-9])*\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b\\-?[1-9]([0-9]|_[0-9])*\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "=begin(?:\\s|$)"
-                              , reCompiled = Just (compileRegex True "=begin(?:\\s|$)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Ruby" , "Embedded documentation" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*<<-(?=\\w+|[\"'])"
-                              , reCompiled = Just (compileRegex True "\\s*<<-(?=\\w+|[\"'])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "find_indented_heredoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*<<(?=\\w+|[\"'])"
-                              , reCompiled = Just (compileRegex True "\\s*<<(?=\\w+|[\"'])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "find_heredoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '.'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '&' '&'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '|' '|'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s[\\?\\:\\%]\\s"
-                              , reCompiled = Just (compileRegex True "\\s[\\?\\:\\%]\\s")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[|&<>\\^\\+*~\\-=]+"
-                              , reCompiled = Just (compileRegex True "[|&<>\\^\\+*~\\-=]+")
-                              , reCaseSensitive = True
-                              }
-                      , 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 = 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 = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "%="
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars ':' ':'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "Member Access" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ":(@{1,2}|\\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True ":(@{1,2}|\\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1" ) ]
-                      }
-                  , 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 = [ Push ( "Ruby" , "check_div_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(@{1,2}|\\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?: "
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "(@{1,2}|\\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?: ")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1" ) ]
-                      }
-                  , 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 = [ Push ( "Ruby" , "check_div_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "Quoted String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "Apostrophed String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "Command String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "?#"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*BEGIN.*$"
-                              , reCompiled = Just (compileRegex True "#\\s*BEGIN.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*END.*$"
-                              , reCompiled = Just (compileRegex True "#\\s*END.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "General Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@[a-zA-Z_0-9]+"
-                              , reCompiled = Just (compileRegex True "@[a-zA-Z_0-9]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@@[a-zA-Z_0-9]+"
-                              , reCompiled = Just (compileRegex True "@@[a-zA-Z_0-9]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '/'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "RegEx 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*[%](?=[QqxwW]?[^\\s])"
-                              , reCompiled = Just (compileRegex True "\\s*[%](?=[QqxwW]?[^\\s])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "find_gdl_input" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_2" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Quoted String"
-          , Context
-              { cName = "Quoted String"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "\\\\"
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 =
-                          RegExpr
-                            RE
-                              { reString = "#@{1,2}"
-                              , reCompiled = Just (compileRegex True "#@{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "Short Subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "Subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1_pop" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "RDoc Label"
-          , Context
-              { cName = "RDoc Label"
-              , cSyntax = "Ruby"
-              , cRules = []
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "RegEx 1"
-          , Context
-              { cName = "RegEx 1"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\\\/"
-                              , reCompiled = Just (compileRegex True "\\\\\\/")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#@{1,2}"
-                              , reCompiled = Just (compileRegex True "#@{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "Short Subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "Subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "/[uiomxn]*"
-                              , reCompiled = Just (compileRegex True "/[uiomxn]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_1_pop" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Short Subst"
-          , Context
-              { cName = "Short Subst"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#@{1,2}"
-                              , reCompiled = Just (compileRegex True "#@{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\w(?!\\w)"
-                              , reCompiled = Just (compileRegex True "\\w(?!\\w)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Subst"
-          , Context
-              { cName = "Subst"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "Normal" )
-                      , 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
-              }
-          )
-        , ( "apostrophed_indented_heredoc"
-          , Context
-              { cName = "apostrophed_indented_heredoc"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "apostrophed_normal_heredoc"
-          , Context
-              { cName = "apostrophed_normal_heredoc"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "apostrophed_rules"
-          , Context
-              { cName = "apostrophed_rules"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , 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
-              }
-          )
-        , ( "check_div_1"
-          , Context
-              { cName = "check_div_1"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "/%"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "check_div_1_pop"
-          , Context
-              { cName = "check_div_1_pop"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "/%"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop , Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "check_div_2"
-          , Context
-              { cName = "check_div_2"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = AnyChar "/%"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s+"
-                              , reCompiled = Just (compileRegex True "\\s+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_2_internal" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "check_div_2_internal"
-          , Context
-              { cName = "check_div_2_internal"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[/%](?=\\s)"
-                              , reCompiled = Just (compileRegex True "[/%](?=\\s)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop , Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "check_div_2_pop"
-          , Context
-              { cName = "check_div_2_pop"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = AnyChar "/%"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s+"
-                              , reCompiled = Just (compileRegex True "\\s+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "check_div_2_pop_internal" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop , Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "check_div_2_pop_internal"
-          , Context
-              { cName = "check_div_2_pop_internal"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "/(?=\\s)"
-                              , reCompiled = Just (compileRegex True "/(?=\\s)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop , Pop , Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "dq_string_rules"
-          , Context
-              { cName = "dq_string_rules"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#@{1,2}"
-                              , reCompiled = Just (compileRegex True "#@{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "Short Subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "Subst" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_gdl_input"
-          , Context
-              { cName = "find_gdl_input"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "w\\("
-                              , reCompiled = Just (compileRegex True "w\\(")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_token_array_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "w\\{"
-                              , reCompiled = Just (compileRegex True "w\\{")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_token_array_2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "w\\["
-                              , reCompiled = Just (compileRegex True "w\\[")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_token_array_3" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "w<"
-                              , reCompiled = Just (compileRegex True "w<")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_token_array_4" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "w([^\\s\\w])"
-                              , reCompiled = Just (compileRegex True "w([^\\s\\w])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_token_array_5" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "W\\("
-                              , reCompiled = Just (compileRegex True "W\\(")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_token_array_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "W\\{"
-                              , reCompiled = Just (compileRegex True "W\\{")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_token_array_2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "W\\["
-                              , reCompiled = Just (compileRegex True "W\\[")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_token_array_3" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "W<"
-                              , reCompiled = Just (compileRegex True "W<")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_token_array_4" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "W([^\\s\\w])"
-                              , reCompiled = Just (compileRegex True "W([^\\s\\w])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_token_array_5" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "q\\("
-                              , reCompiled = Just (compileRegex True "q\\(")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_apostrophed_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "q\\{"
-                              , reCompiled = Just (compileRegex True "q\\{")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_apostrophed_2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "q\\["
-                              , reCompiled = Just (compileRegex True "q\\[")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_apostrophed_3" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "q<"
-                              , reCompiled = Just (compileRegex True "q<")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_apostrophed_4" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "q([^\\s\\w])"
-                              , reCompiled = Just (compileRegex True "q([^\\s\\w])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_apostrophed_5" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "x\\("
-                              , reCompiled = Just (compileRegex True "x\\(")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_shell_command_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "x\\{"
-                              , reCompiled = Just (compileRegex True "x\\{")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_shell_command_2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "x\\["
-                              , reCompiled = Just (compileRegex True "x\\[")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_shell_command_3" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "x<"
-                              , reCompiled = Just (compileRegex True "x<")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_shell_command_4" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "x([^\\s\\w])"
-                              , reCompiled = Just (compileRegex True "x([^\\s\\w])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_shell_command_5" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "r\\("
-                              , reCompiled = Just (compileRegex True "r\\(")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_regexpr_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "r\\{"
-                              , reCompiled = Just (compileRegex True "r\\{")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_regexpr_2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "r\\["
-                              , reCompiled = Just (compileRegex True "r\\[")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_regexpr_3" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "r<"
-                              , reCompiled = Just (compileRegex True "r<")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_regexpr_4" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "r([^\\s\\w])"
-                              , reCompiled = Just (compileRegex True "r([^\\s\\w])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_regexpr_5" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "Q?\\("
-                              , reCompiled = Just (compileRegex True "Q?\\(")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_dq_string_1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "Q?\\{"
-                              , reCompiled = Just (compileRegex True "Q?\\{")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_dq_string_2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "Q?\\["
-                              , reCompiled = Just (compileRegex True "Q?\\[")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_dq_string_3" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "Q?<"
-                              , reCompiled = Just (compileRegex True "Q?<")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_dq_string_4" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "Q?([^\\s\\w])"
-                              , reCompiled = Just (compileRegex True "Q?([^\\s\\w])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_dq_string_5" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_heredoc"
-          , Context
-              { cName = "find_heredoc"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'(\\w+)'"
-                              , reCompiled = Just (compileRegex True "'(\\w+)'")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby" , "apostrophed_normal_heredoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\"?(\\w+)\"?"
-                              , reCompiled = Just (compileRegex True "\"?(\\w+)\"?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "normal_heredoc" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "find_indented_heredoc"
-          , Context
-              { cName = "find_indented_heredoc"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'(\\w+)'"
-                              , reCompiled = Just (compileRegex True "'(\\w+)'")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby" , "apostrophed_indented_heredoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\"?(\\w+)\"?"
-                              , reCompiled = Just (compileRegex True "\"?(\\w+)\"?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "indented_heredoc" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_apostrophed_1"
-          , Context
-              { cName = "gdl_apostrophed_1"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "apostrophed_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ')'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_apostrophed_1_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_apostrophed_1_nested"
-          , Context
-              { cName = "gdl_apostrophed_1_nested"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "apostrophed_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_apostrophed_1_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_apostrophed_2"
-          , Context
-              { cName = "gdl_apostrophed_2"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "apostrophed_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '}'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_apostrophed_2_nested" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_apostrophed_2_nested"
-          , Context
-              { cName = "gdl_apostrophed_2_nested"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "apostrophed_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_apostrophed_2_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_apostrophed_3"
-          , Context
-              { cName = "gdl_apostrophed_3"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "apostrophed_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ']'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_apostrophed_3_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_apostrophed_3_nested"
-          , Context
-              { cName = "gdl_apostrophed_3_nested"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "apostrophed_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_apostrophed_3_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_apostrophed_4"
-          , Context
-              { cName = "gdl_apostrophed_4"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "apostrophed_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '>'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_apostrophed_4_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_apostrophed_4_nested"
-          , Context
-              { cName = "gdl_apostrophed_4_nested"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "apostrophed_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_apostrophed_4_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_apostrophed_5"
-          , Context
-              { cName = "gdl_apostrophed_5"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "apostrophed_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "gdl_dq_string_1"
-          , Context
-              { cName = "gdl_dq_string_1"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "dq_string_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ')'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_dq_string_1_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_dq_string_1_nested"
-          , Context
-              { cName = "gdl_dq_string_1_nested"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "dq_string_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_dq_string_1_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_dq_string_2"
-          , Context
-              { cName = "gdl_dq_string_2"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "dq_string_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '}'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_dq_string_2_nested" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_dq_string_2_nested"
-          , Context
-              { cName = "gdl_dq_string_2_nested"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_dq_string_2_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "dq_string_rules" )
-                      , 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
-              }
-          )
-        , ( "gdl_dq_string_3"
-          , Context
-              { cName = "gdl_dq_string_3"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "dq_string_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ']'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_dq_string_3_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_dq_string_3_nested"
-          , Context
-              { cName = "gdl_dq_string_3_nested"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_dq_string_3_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "dq_string_rules" )
-                      , 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
-              }
-          )
-        , ( "gdl_dq_string_4"
-          , Context
-              { cName = "gdl_dq_string_4"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "dq_string_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '>'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_dq_string_4_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_dq_string_4_nested"
-          , Context
-              { cName = "gdl_dq_string_4_nested"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_dq_string_4_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "dq_string_rules" )
-                      , 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
-              }
-          )
-        , ( "gdl_dq_string_5"
-          , Context
-              { cName = "gdl_dq_string_5"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "dq_string_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "gdl_regexpr_1"
-          , Context
-              { cName = "gdl_regexpr_1"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "regexpr_rules" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ')'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_regexpr_1_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\)[uiomxn]*"
-                              , reCompiled = Just (compileRegex True "\\)[uiomxn]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_regexpr_1_nested"
-          , Context
-              { cName = "gdl_regexpr_1_nested"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "regexpr_rules" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_regexpr_1_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_regexpr_2"
-          , Context
-              { cName = "gdl_regexpr_2"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "regexpr_rules" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\}[uiomxn]*"
-                              , reCompiled = Just (compileRegex True "\\}[uiomxn]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_regexpr_2_nested" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_regexpr_2_nested"
-          , Context
-              { cName = "gdl_regexpr_2_nested"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "regexpr_rules" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_regexpr_2_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_regexpr_3"
-          , Context
-              { cName = "gdl_regexpr_3"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "regexpr_rules" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ']'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_regexpr_3_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\][uiomxn]*"
-                              , reCompiled = Just (compileRegex True "\\][uiomxn]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_regexpr_3_nested"
-          , Context
-              { cName = "gdl_regexpr_3_nested"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "regexpr_rules" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_regexpr_3_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_regexpr_4"
-          , Context
-              { cName = "gdl_regexpr_4"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "regexpr_rules" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '>'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_regexpr_4_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ">[uiomxn]*"
-                              , reCompiled = Just (compileRegex True ">[uiomxn]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_regexpr_4_nested"
-          , Context
-              { cName = "gdl_regexpr_4_nested"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "regexpr_rules" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_regexpr_4_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_regexpr_5"
-          , Context
-              { cName = "gdl_regexpr_5"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "regexpr_rules" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*%1[uiomxn]*"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "gdl_shell_command_1"
-          , Context
-              { cName = "gdl_shell_command_1"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "shell_command_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ')'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby" , "gdl_shell_command_1_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_shell_command_1_nested"
-          , Context
-              { cName = "gdl_shell_command_1_nested"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "shell_command_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby" , "gdl_shell_command_1_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_shell_command_2"
-          , Context
-              { cName = "gdl_shell_command_2"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "shell_command_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '}'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby" , "gdl_shell_command_2_nested" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_shell_command_2_nested"
-          , Context
-              { cName = "gdl_shell_command_2_nested"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "shell_command_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby" , "gdl_shell_command_2_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_shell_command_3"
-          , Context
-              { cName = "gdl_shell_command_3"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "shell_command_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ']'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby" , "gdl_shell_command_3_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_shell_command_3_nested"
-          , Context
-              { cName = "gdl_shell_command_3_nested"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "shell_command_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby" , "gdl_shell_command_3_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_shell_command_4"
-          , Context
-              { cName = "gdl_shell_command_4"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "shell_command_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '>'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby" , "gdl_shell_command_4_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_shell_command_4_nested"
-          , Context
-              { cName = "gdl_shell_command_4_nested"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "shell_command_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Ruby" , "gdl_shell_command_4_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_shell_command_5"
-          , Context
-              { cName = "gdl_shell_command_5"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "shell_command_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "gdl_token_array_1"
-          , Context
-              { cName = "gdl_token_array_1"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "token_array_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ')'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_token_array_1_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_token_array_1_nested"
-          , Context
-              { cName = "gdl_token_array_1_nested"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "token_array_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_token_array_1_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_token_array_2"
-          , Context
-              { cName = "gdl_token_array_2"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "token_array_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '}'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_token_array_2_nested" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_token_array_2_nested"
-          , Context
-              { cName = "gdl_token_array_2_nested"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "token_array_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_token_array_2_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_token_array_3"
-          , Context
-              { cName = "gdl_token_array_3"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "token_array_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ']'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_token_array_3_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_token_array_3_nested"
-          , Context
-              { cName = "gdl_token_array_3_nested"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "token_array_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_token_array_3_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_token_array_4"
-          , Context
-              { cName = "gdl_token_array_4"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "token_array_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '>'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_token_array_4_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_token_array_4_nested"
-          , Context
-              { cName = "gdl_token_array_4_nested"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "token_array_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "gdl_token_array_4_nested" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "gdl_token_array_5"
-          , Context
-              { cName = "gdl_token_array_5"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "token_array_rules" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "heredoc_rules"
-          , Context
-              { cName = "heredoc_rules"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#@{1,2}"
-                              , reCompiled = Just (compileRegex True "#@{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "Short Subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "Subst" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "indented_heredoc"
-          , Context
-              { cName = "indented_heredoc"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "heredoc_rules" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "normal_heredoc"
-          , Context
-              { cName = "normal_heredoc"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Ruby" , "heredoc_rules" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "regexpr_rules"
-          , Context
-              { cName = "regexpr_rules"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#@{1,2}"
-                              , reCompiled = Just (compileRegex True "#@{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "Short Subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "Subst" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "shell_command_rules"
-          , Context
-              { cName = "shell_command_rules"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#@{1,2}"
-                              , reCompiled = Just (compileRegex True "#@{1,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "Short Subst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Ruby" , "Subst" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "token_array_rules"
-          , Context
-              { cName = "token_array_rules"
-              , cSyntax = "Ruby"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "\\\\"
-                      , 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 =
-      "Stefan Lang (langstefan@gmx.at), Sebastian Vuorinen (sebastian.vuorinen@helsinki.fi), Robin Pedersen (robinpeder@gmail.com), Miquel Sabat\233 (mikisabate@gmail.com)"
-  , sVersion = "3"
-  , sLicense = "LGPLv2+"
-  , sExtensions =
-      [ "*.rb"
-      , "*.rjs"
-      , "*.rxml"
-      , "*.xml.erb"
-      , "*.js.erb"
-      , "*.rake"
-      , "Rakefile"
-      , "Gemfile"
-      , "*.gemspec"
-      , "Vagrantfile"
-      ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Ruby\", sFilename = \"ruby.xml\", sShortname = \"Ruby\", sContexts = fromList [(\"Apostrophed String\",Context {cName = \"Apostrophed String\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = StringDetect \"\\\\\\\\\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\\\\\'\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1_pop\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Command String\",Context {cName = \"Command String\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = StringDetect \"\\\\\\\\\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\\\\\`\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#@{1,2}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"Short Subst\")]},Rule {rMatcher = Detect2Chars '#' '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"Subst\")]},Rule {rMatcher = DetectChar '`', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1_pop\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment Line\",Context {cName = \"Comment Line\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\w\\\\:\\\\:\\\\s\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"RDoc Label\")]},Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"DATA\",Context {cName = \"DATA\", cSyntax = \"Ruby\", cRules = [], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Embedded documentation\",Context {cName = \"Embedded documentation\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"=end(?:\\\\s.*|$)\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), 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}),(\"Find closing block brace\",Context {cName = \"Find closing block brace\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1_pop\")]},Rule {rMatcher = IncludeRules (\"Ruby\",\"Normal\"), 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}),(\"General Comment\",Context {cName = \"General Comment\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Line Continue\",Context {cName = \"Line Continue\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(while|until)\\\\b(?!.*\\\\bdo\\\\b)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(if|unless)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Ruby\",\"Normal\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Member Access\",Context {cName = \"Member Access\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\.?[_a-z]\\\\w*(\\\\?|\\\\!)?(?=[^\\\\w\\\\d\\\\.\\\\:])\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_2_pop\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.?[_a-z]\\\\w*(\\\\?|\\\\!)?\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[A-Z]+_*(\\\\d|[a-z])\\\\w*(?=[^\\\\w\\\\d\\\\.\\\\:])\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_2_pop\")]},Rule {rMatcher = RegExpr (RE {reString = \"[A-Z]+_*([0-9]|[a-z])\\\\w*\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[_A-Z][_A-Z0-9]*(?=[^\\\\w\\\\d\\\\.\\\\:])\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_2_pop\")]},Rule {rMatcher = RegExpr (RE {reString = \"[_A-Z][_A-Z0-9]*\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars ':' ':', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '.', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"=+-*/%|&[]{}~\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = AnyChar \"()\\\\\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\W\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = LineContinue, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"Line Continue\")]},Rule {rMatcher = RegExpr (RE {reString = \"__END__$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Ruby\",\"DATA\")]},Rule {rMatcher = RegExpr (RE {reString = \"#!\\\\/.*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"Find closing block brace\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\=|\\\\(|\\\\[|\\\\{)\\\\s*(if|unless|while|until)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(while|until)\\\\b(?!.*\\\\bdo\\\\b)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\;\\\\s*(while|until)\\\\b(?!.*\\\\bdo\\\\b)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(if|unless)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\;\\\\s*(if|unless)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bclass\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bmodule\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bbegin\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bfor\\\\b(?!.*\\\\bdo\\\\b)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bcase\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bdo\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bdef\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bend\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b(else|elsif|rescue|ensure)\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"...\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '.' '.', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.[_a-z][_a-zA-Z0-9]*(\\\\?|\\\\!|\\\\b)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_2\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s\\\\?(\\\\\\\\M\\\\-)?(\\\\\\\\C\\\\-)?\\\\\\\\?\\\\S\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&()*+,-./:;<=>[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"BEGIN\",\"END\",\"and\",\"begin\",\"break\",\"case\",\"defined?\",\"do\",\"else\",\"elsif\",\"end\",\"ensure\",\"for\",\"if\",\"in\",\"next\",\"not\",\"or\",\"redo\",\"rescue\",\"retry\",\"return\",\"then\",\"unless\",\"until\",\"when\",\"yield\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&()*+,-./:;<=>[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"attr_accessor\",\"attr_reader\",\"attr_writer\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_2\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&()*+,-./:;<=>[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"private\",\"private_class_method\",\"protected\",\"public\",\"public_class_method\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_2\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&()*+,-./:;<=>[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"alias\",\"class\",\"def\",\"module\",\"undef\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&()*+,-./:;<=>[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"__FILE__\",\"__LINE__\",\"caller\",\"false\",\"nil\",\"self\",\"super\",\"true\"])), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&()*+,-./:;<=>[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"$deferr\",\"$defout\",\"$stderr\",\"$stdin\",\"$stdout\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_2\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&()*+,-./:;<=>[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"abort\",\"at_exit\",\"autoload\",\"autoload?\",\"binding\",\"block_given?\",\"callcc\",\"caller\",\"catch\",\"chomp\",\"chomp!\",\"chop\",\"chop!\",\"eval\",\"exec\",\"exit\",\"exit!\",\"fail\",\"fork\",\"format\",\"getc\",\"gets\",\"global_variables\",\"gsub\",\"gsub!\",\"iterator?\",\"lambda\",\"load\",\"local_variables\",\"loop\",\"method_missing\",\"open\",\"p\",\"print\",\"printf\",\"proc\",\"putc\",\"puts\",\"raise\",\"rand\",\"readline\",\"readlines\",\"require\",\"require_relative\",\"scan\",\"select\",\"set_trace_func\",\"sleep\",\"split\",\"sprintf\",\"srand\",\"sub\",\"sub!\",\"syscall\",\"system\",\"test\",\"throw\",\"trace_var\",\"trap\",\"untrace_var\",\"warn\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_2\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&()*+,-./:;<=>[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"extend\",\"include\",\"prepend\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_2\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[a-zA-Z_0-9]+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\-[a-zA-z_]\\\\b\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[\\\\d_*`+@;,.~=\\\\!\\\\$:?'/\\\\\\\\\\\\-\\\\&\\\"><]\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[_A-Z]+[A-Z_0-9]+\\\\b\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_2\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\\\\b\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_2\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b\\\\-?0[xX]([0-9a-fA-F]|_[0-9a-fA-F])+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b\\\\-?0[bB]([01]|_[01])+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b\\\\-?0[1-7]([0-7]|_[0-7])*\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b\\\\-?[0-9]([0-9]|_[0-9])*\\\\.[0-9]([0-9]|_[0-9])*([eE]\\\\-?[1-9]([0-9]|_[0-9])*(\\\\.[0-9]*)?)?\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b\\\\-?[1-9]([0-9]|_[0-9])*\\\\b\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1\")]},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1\")]},Rule {rMatcher = HlCChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1\")]},Rule {rMatcher = RegExpr (RE {reString = \"=begin(?:\\\\s|$)\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Ruby\",\"Embedded documentation\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*<<-(?=\\\\w+|[\\\"'])\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"find_indented_heredoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*<<(?=\\\\w+|[\\\"'])\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"find_heredoc\")]},Rule {rMatcher = DetectChar '.', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '&' '&', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '|' '|', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s[\\\\?\\\\:\\\\%]\\\\s\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[|&<>\\\\^\\\\+*~\\\\-=]+\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s!\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"/=\\\\s\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"%=\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars ':' ':', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"Member Access\")]},Rule {rMatcher = RegExpr (RE {reString = \":(@{1,2}|\\\\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1\")]},Rule {rMatcher = RegExpr (RE {reString = \":\\\\[\\\\]=?\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1\")]},Rule {rMatcher = RegExpr (RE {reString = \"(@{1,2}|\\\\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?: \", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[\\\\]=?: \", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"Quoted String\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"Apostrophed String\")]},Rule {rMatcher = DetectChar '`', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"Command String\")]},Rule {rMatcher = StringDetect \"?#\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*BEGIN.*$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*END.*$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"General Comment\")]},Rule {rMatcher = DetectChar '[', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ']', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1\")]},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1\")]},Rule {rMatcher = RegExpr (RE {reString = \"@[a-zA-Z_0-9]+\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1\")]},Rule {rMatcher = RegExpr (RE {reString = \"@@[a-zA-Z_0-9]+\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1\")]},Rule {rMatcher = DetectChar '/', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"RegEx 1\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*[%](?=[QqxwW]?[^\\\\s])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"find_gdl_input\")]},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1\")]},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_2\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Quoted String\",Context {cName = \"Quoted String\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = StringDetect \"\\\\\\\\\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\\\\\\\\"\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#@{1,2}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"Short Subst\")]},Rule {rMatcher = Detect2Chars '#' '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"Subst\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1_pop\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"RDoc Label\",Context {cName = \"RDoc Label\", cSyntax = \"Ruby\", cRules = [], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"RegEx 1\",Context {cName = \"RegEx 1\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\\\\\/\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#@{1,2}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"Short Subst\")]},Rule {rMatcher = Detect2Chars '#' '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"Subst\")]},Rule {rMatcher = RegExpr (RE {reString = \"/[uiomxn]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_1_pop\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Short Subst\",Context {cName = \"Short Subst\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"#@{1,2}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\w(?!\\\\w)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Subst\",Context {cName = \"Subst\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Ruby\",\"Normal\"), 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}),(\"apostrophed_indented_heredoc\",Context {cName = \"apostrophed_indented_heredoc\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"apostrophed_normal_heredoc\",Context {cName = \"apostrophed_normal_heredoc\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"apostrophed_rules\",Context {cName = \"apostrophed_rules\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\\\\', 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}),(\"check_div_1\",Context {cName = \"check_div_1\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"/%\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"check_div_1_pop\",Context {cName = \"check_div_1_pop\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"/%\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop,Pop], cDynamic = False}),(\"check_div_2\",Context {cName = \"check_div_2\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = AnyChar \"/%\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_2_internal\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"check_div_2_internal\",Context {cName = \"check_div_2_internal\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[/%](?=\\\\s)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop,Pop], cDynamic = False}),(\"check_div_2_pop\",Context {cName = \"check_div_2_pop\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = AnyChar \"/%\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"check_div_2_pop_internal\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop,Pop], cDynamic = False}),(\"check_div_2_pop_internal\",Context {cName = \"check_div_2_pop_internal\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = DetectChar '%', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"/(?=\\\\s)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop,Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop,Pop,Pop], cDynamic = False}),(\"dq_string_rules\",Context {cName = \"dq_string_rules\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#@{1,2}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"Short Subst\")]},Rule {rMatcher = Detect2Chars '#' '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"Subst\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_gdl_input\",Context {cName = \"find_gdl_input\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"w\\\\(\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_token_array_1\")]},Rule {rMatcher = RegExpr (RE {reString = \"w\\\\{\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_token_array_2\")]},Rule {rMatcher = RegExpr (RE {reString = \"w\\\\[\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_token_array_3\")]},Rule {rMatcher = RegExpr (RE {reString = \"w<\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_token_array_4\")]},Rule {rMatcher = RegExpr (RE {reString = \"w([^\\\\s\\\\w])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_token_array_5\")]},Rule {rMatcher = RegExpr (RE {reString = \"W\\\\(\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_token_array_1\")]},Rule {rMatcher = RegExpr (RE {reString = \"W\\\\{\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_token_array_2\")]},Rule {rMatcher = RegExpr (RE {reString = \"W\\\\[\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_token_array_3\")]},Rule {rMatcher = RegExpr (RE {reString = \"W<\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_token_array_4\")]},Rule {rMatcher = RegExpr (RE {reString = \"W([^\\\\s\\\\w])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_token_array_5\")]},Rule {rMatcher = RegExpr (RE {reString = \"q\\\\(\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_apostrophed_1\")]},Rule {rMatcher = RegExpr (RE {reString = \"q\\\\{\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_apostrophed_2\")]},Rule {rMatcher = RegExpr (RE {reString = \"q\\\\[\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_apostrophed_3\")]},Rule {rMatcher = RegExpr (RE {reString = \"q<\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_apostrophed_4\")]},Rule {rMatcher = RegExpr (RE {reString = \"q([^\\\\s\\\\w])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_apostrophed_5\")]},Rule {rMatcher = RegExpr (RE {reString = \"x\\\\(\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_shell_command_1\")]},Rule {rMatcher = RegExpr (RE {reString = \"x\\\\{\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_shell_command_2\")]},Rule {rMatcher = RegExpr (RE {reString = \"x\\\\[\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_shell_command_3\")]},Rule {rMatcher = RegExpr (RE {reString = \"x<\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_shell_command_4\")]},Rule {rMatcher = RegExpr (RE {reString = \"x([^\\\\s\\\\w])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_shell_command_5\")]},Rule {rMatcher = RegExpr (RE {reString = \"r\\\\(\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_regexpr_1\")]},Rule {rMatcher = RegExpr (RE {reString = \"r\\\\{\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_regexpr_2\")]},Rule {rMatcher = RegExpr (RE {reString = \"r\\\\[\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_regexpr_3\")]},Rule {rMatcher = RegExpr (RE {reString = \"r<\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_regexpr_4\")]},Rule {rMatcher = RegExpr (RE {reString = \"r([^\\\\s\\\\w])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_regexpr_5\")]},Rule {rMatcher = RegExpr (RE {reString = \"Q?\\\\(\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_dq_string_1\")]},Rule {rMatcher = RegExpr (RE {reString = \"Q?\\\\{\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_dq_string_2\")]},Rule {rMatcher = RegExpr (RE {reString = \"Q?\\\\[\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_dq_string_3\")]},Rule {rMatcher = RegExpr (RE {reString = \"Q?<\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_dq_string_4\")]},Rule {rMatcher = RegExpr (RE {reString = \"Q?([^\\\\s\\\\w])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_dq_string_5\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_heredoc\",Context {cName = \"find_heredoc\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"'(\\\\w+)'\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"apostrophed_normal_heredoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\"?(\\\\w+)\\\"?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"normal_heredoc\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"find_indented_heredoc\",Context {cName = \"find_indented_heredoc\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"'(\\\\w+)'\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"apostrophed_indented_heredoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\"?(\\\\w+)\\\"?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"indented_heredoc\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_apostrophed_1\",Context {cName = \"gdl_apostrophed_1\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"apostrophed_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ')', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_apostrophed_1_nested\")]},Rule {rMatcher = DetectChar ')', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_apostrophed_1_nested\",Context {cName = \"gdl_apostrophed_1_nested\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"apostrophed_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_apostrophed_1_nested\")]},Rule {rMatcher = DetectChar ')', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_apostrophed_2\",Context {cName = \"gdl_apostrophed_2\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"apostrophed_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '}', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar '{', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_apostrophed_2_nested\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_apostrophed_2_nested\",Context {cName = \"gdl_apostrophed_2_nested\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"apostrophed_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_apostrophed_2_nested\")]},Rule {rMatcher = DetectChar '}', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_apostrophed_3\",Context {cName = \"gdl_apostrophed_3\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"apostrophed_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ']', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_apostrophed_3_nested\")]},Rule {rMatcher = DetectChar ']', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_apostrophed_3_nested\",Context {cName = \"gdl_apostrophed_3_nested\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"apostrophed_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_apostrophed_3_nested\")]},Rule {rMatcher = DetectChar ']', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_apostrophed_4\",Context {cName = \"gdl_apostrophed_4\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"apostrophed_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '>', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '<', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_apostrophed_4_nested\")]},Rule {rMatcher = DetectChar '>', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_apostrophed_4_nested\",Context {cName = \"gdl_apostrophed_4_nested\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"apostrophed_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '<', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_apostrophed_4_nested\")]},Rule {rMatcher = DetectChar '>', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_apostrophed_5\",Context {cName = \"gdl_apostrophed_5\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"apostrophed_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\%1\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*%1\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"gdl_dq_string_1\",Context {cName = \"gdl_dq_string_1\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"dq_string_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ')', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_dq_string_1_nested\")]},Rule {rMatcher = DetectChar ')', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_dq_string_1_nested\",Context {cName = \"gdl_dq_string_1_nested\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"dq_string_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_dq_string_1_nested\")]},Rule {rMatcher = DetectChar ')', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_dq_string_2\",Context {cName = \"gdl_dq_string_2\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"dq_string_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '}', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar '{', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_dq_string_2_nested\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_dq_string_2_nested\",Context {cName = \"gdl_dq_string_2_nested\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_dq_string_2_nested\")]},Rule {rMatcher = DetectChar '}', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Ruby\",\"dq_string_rules\"), 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}),(\"gdl_dq_string_3\",Context {cName = \"gdl_dq_string_3\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"dq_string_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ']', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_dq_string_3_nested\")]},Rule {rMatcher = DetectChar ']', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_dq_string_3_nested\",Context {cName = \"gdl_dq_string_3_nested\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = DetectChar '[', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_dq_string_3_nested\")]},Rule {rMatcher = DetectChar ']', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Ruby\",\"dq_string_rules\"), 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}),(\"gdl_dq_string_4\",Context {cName = \"gdl_dq_string_4\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"dq_string_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '>', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '<', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_dq_string_4_nested\")]},Rule {rMatcher = DetectChar '>', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_dq_string_4_nested\",Context {cName = \"gdl_dq_string_4_nested\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = DetectChar '<', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_dq_string_4_nested\")]},Rule {rMatcher = DetectChar '>', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Ruby\",\"dq_string_rules\"), 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}),(\"gdl_dq_string_5\",Context {cName = \"gdl_dq_string_5\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"dq_string_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\%1\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*%1\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"gdl_regexpr_1\",Context {cName = \"gdl_regexpr_1\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"regexpr_rules\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ')', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_regexpr_1_nested\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\)[uiomxn]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_regexpr_1_nested\",Context {cName = \"gdl_regexpr_1_nested\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"regexpr_rules\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_regexpr_1_nested\")]},Rule {rMatcher = DetectChar ')', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_regexpr_2\",Context {cName = \"gdl_regexpr_2\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"regexpr_rules\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\}[uiomxn]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_regexpr_2_nested\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_regexpr_2_nested\",Context {cName = \"gdl_regexpr_2_nested\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"regexpr_rules\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_regexpr_2_nested\")]},Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_regexpr_3\",Context {cName = \"gdl_regexpr_3\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"regexpr_rules\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ']', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_regexpr_3_nested\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\][uiomxn]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_regexpr_3_nested\",Context {cName = \"gdl_regexpr_3_nested\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"regexpr_rules\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_regexpr_3_nested\")]},Rule {rMatcher = DetectChar ']', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_regexpr_4\",Context {cName = \"gdl_regexpr_4\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"regexpr_rules\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '>', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '<', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_regexpr_4_nested\")]},Rule {rMatcher = RegExpr (RE {reString = \">[uiomxn]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_regexpr_4_nested\",Context {cName = \"gdl_regexpr_4_nested\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"regexpr_rules\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '<', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_regexpr_4_nested\")]},Rule {rMatcher = DetectChar '>', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_regexpr_5\",Context {cName = \"gdl_regexpr_5\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"regexpr_rules\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\%1\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*%1[uiomxn]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"gdl_shell_command_1\",Context {cName = \"gdl_shell_command_1\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"shell_command_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ')', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_shell_command_1_nested\")]},Rule {rMatcher = DetectChar ')', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_shell_command_1_nested\",Context {cName = \"gdl_shell_command_1_nested\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"shell_command_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_shell_command_1_nested\")]},Rule {rMatcher = DetectChar ')', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_shell_command_2\",Context {cName = \"gdl_shell_command_2\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"shell_command_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '}', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar '{', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_shell_command_2_nested\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_shell_command_2_nested\",Context {cName = \"gdl_shell_command_2_nested\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"shell_command_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_shell_command_2_nested\")]},Rule {rMatcher = DetectChar '}', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_shell_command_3\",Context {cName = \"gdl_shell_command_3\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"shell_command_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ']', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_shell_command_3_nested\")]},Rule {rMatcher = DetectChar ']', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_shell_command_3_nested\",Context {cName = \"gdl_shell_command_3_nested\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"shell_command_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_shell_command_3_nested\")]},Rule {rMatcher = DetectChar ']', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_shell_command_4\",Context {cName = \"gdl_shell_command_4\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"shell_command_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '>', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '<', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_shell_command_4_nested\")]},Rule {rMatcher = DetectChar '>', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_shell_command_4_nested\",Context {cName = \"gdl_shell_command_4_nested\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"shell_command_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '<', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_shell_command_4_nested\")]},Rule {rMatcher = DetectChar '>', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_shell_command_5\",Context {cName = \"gdl_shell_command_5\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"shell_command_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\%1\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*%1\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"gdl_token_array_1\",Context {cName = \"gdl_token_array_1\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"token_array_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ')', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_token_array_1_nested\")]},Rule {rMatcher = DetectChar ')', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_token_array_1_nested\",Context {cName = \"gdl_token_array_1_nested\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"token_array_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_token_array_1_nested\")]},Rule {rMatcher = DetectChar ')', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_token_array_2\",Context {cName = \"gdl_token_array_2\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"token_array_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '}', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar '{', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_token_array_2_nested\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_token_array_2_nested\",Context {cName = \"gdl_token_array_2_nested\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"token_array_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_token_array_2_nested\")]},Rule {rMatcher = DetectChar '}', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_token_array_3\",Context {cName = \"gdl_token_array_3\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"token_array_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ']', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_token_array_3_nested\")]},Rule {rMatcher = DetectChar ']', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_token_array_3_nested\",Context {cName = \"gdl_token_array_3_nested\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"token_array_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_token_array_3_nested\")]},Rule {rMatcher = DetectChar ']', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_token_array_4\",Context {cName = \"gdl_token_array_4\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"token_array_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '>', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '<', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_token_array_4_nested\")]},Rule {rMatcher = DetectChar '>', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_token_array_4_nested\",Context {cName = \"gdl_token_array_4_nested\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"token_array_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '<', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"gdl_token_array_4_nested\")]},Rule {rMatcher = DetectChar '>', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"gdl_token_array_5\",Context {cName = \"gdl_token_array_5\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = IncludeRules (\"Ruby\",\"token_array_rules\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\%1\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*%1\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"heredoc_rules\",Context {cName = \"heredoc_rules\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"#@{1,2}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"Short Subst\")]},Rule {rMatcher = Detect2Chars '#' '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"Subst\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"indented_heredoc\",Context {cName = \"indented_heredoc\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Ruby\",\"heredoc_rules\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"normal_heredoc\",Context {cName = \"normal_heredoc\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Ruby\",\"heredoc_rules\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"regexpr_rules\",Context {cName = \"regexpr_rules\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#@{1,2}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"Short Subst\")]},Rule {rMatcher = Detect2Chars '#' '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"Subst\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"shell_command_rules\",Context {cName = \"shell_command_rules\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#@{1,2}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"Short Subst\")]},Rule {rMatcher = Detect2Chars '#' '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Ruby\",\"Subst\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"token_array_rules\",Context {cName = \"token_array_rules\", cSyntax = \"Ruby\", cRules = [Rule {rMatcher = StringDetect \"\\\\\\\\\", 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 = \"Stefan Lang (langstefan@gmx.at), Sebastian Vuorinen (sebastian.vuorinen@helsinki.fi), Robin Pedersen (robinpeder@gmail.com), Miquel Sabat\\233 (mikisabate@gmail.com)\", sVersion = \"3\", sLicense = \"LGPLv2+\", sExtensions = [\"*.rb\",\"*.rjs\",\"*.rxml\",\"*.xml.erb\",\"*.js.erb\",\"*.rake\",\"Rakefile\",\"Gemfile\",\"*.gemspec\",\"Vagrantfile\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Rust.hs b/src/Skylighting/Syntax/Rust.hs
--- a/src/Skylighting/Syntax/Rust.hs
+++ b/src/Skylighting/Syntax/Rust.hs
@@ -2,1235 +2,6 @@
 module Skylighting.Syntax.Rust (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Rust"
-  , sFilename = "rust.xml"
-  , sShortname = "Rust"
-  , sContexts =
-      fromList
-        [ ( "Attribute"
-          , Context
-              { cName = "Attribute"
-              , cSyntax = "Rust"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = AttributeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Rust" , "Normal" )
-                      , 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
-              }
-          )
-        , ( "CharEscape"
-          , Context
-              { cName = "CharEscape"
-              , cSyntax = "Rust"
-              , cRules =
-                  [ Rule
-                      { rMatcher = AnyChar "nrt\\'\""
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "x[0-9a-fA-F]{2}"
-                              , reCompiled = Just (compileRegex True "x[0-9a-fA-F]{2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "u\\{[0-9a-fA-F]{1,6}\\}"
-                              , reCompiled = Just (compileRegex True "u\\{[0-9a-fA-F]{1,6}\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "u[0-9a-fA-F]{4}"
-                              , reCompiled = Just (compileRegex True "u[0-9a-fA-F]{4}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "U[0-9a-fA-F]{8}"
-                              , reCompiled = Just (compileRegex True "U[0-9a-fA-F]{8}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = SpecialCharTok
-                      , 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 = [ Pop ]
-                      }
-                  ]
-              , cAttribute = SpecialCharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Character"
-          , Context
-              { cName = "Character"
-              , cSyntax = "Rust"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Rust" , "CharEscape" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Commentar 1"
-          , Context
-              { cName = "Commentar 1"
-              , cSyntax = "Rust"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Commentar 2"
-          , Context
-              { cName = "Commentar 2"
-              , cSyntax = "Rust"
-              , 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 = [ Push ( "Rust" , "Commentar 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Function"
-          , Context
-              { cName = "Function"
-              , cSyntax = "Rust"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Rust"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "fn" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Rust" , "Function" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "type" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Rust" , "Type" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Self"
-                               , "abstract"
-                               , "alignof"
-                               , "as"
-                               , "become"
-                               , "box"
-                               , "break"
-                               , "const"
-                               , "continue"
-                               , "crate"
-                               , "do"
-                               , "else"
-                               , "enum"
-                               , "extern"
-                               , "final"
-                               , "for"
-                               , "if"
-                               , "impl"
-                               , "in"
-                               , "let"
-                               , "loop"
-                               , "macro"
-                               , "match"
-                               , "mod"
-                               , "move"
-                               , "mut"
-                               , "offsetof"
-                               , "override"
-                               , "priv"
-                               , "proc"
-                               , "pub"
-                               , "pure"
-                               , "ref"
-                               , "return"
-                               , "self"
-                               , "sizeof"
-                               , "static"
-                               , "struct"
-                               , "super"
-                               , "trait"
-                               , "type"
-                               , "typeof"
-                               , "unsafe"
-                               , "unsized"
-                               , "use"
-                               , "virtual"
-                               , "where"
-                               , "while"
-                               , "yield"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Box"
-                               , "Option"
-                               , "Result"
-                               , "Self"
-                               , "String"
-                               , "Vec"
-                               , "bool"
-                               , "char"
-                               , "f32"
-                               , "f64"
-                               , "float"
-                               , "i16"
-                               , "i32"
-                               , "i64"
-                               , "i8"
-                               , "int"
-                               , "isize"
-                               , "str"
-                               , "u16"
-                               , "u32"
-                               , "u64"
-                               , "u8"
-                               , "uint"
-                               , "usize"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "AsSlice"
-                               , "CharExt"
-                               , "Clone"
-                               , "Copy"
-                               , "Debug"
-                               , "Decodable"
-                               , "Default"
-                               , "Display"
-                               , "DoubleEndedIterator"
-                               , "Drop"
-                               , "Encodable"
-                               , "Eq"
-                               , "Extend"
-                               , "Fn"
-                               , "FnMut"
-                               , "FnOnce"
-                               , "FromPrimitive"
-                               , "Hash"
-                               , "Iterator"
-                               , "IteratorExt"
-                               , "MutPtrExt"
-                               , "Ord"
-                               , "PartialEq"
-                               , "PartialOrd"
-                               , "PtrExt"
-                               , "Rand"
-                               , "Send"
-                               , "Sized"
-                               , "SliceConcatExt"
-                               , "SliceExt"
-                               , "Str"
-                               , "StrExt"
-                               , "Sync"
-                               , "ToString"
-                               ])
-                      , rAttribute = BuiltInTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "DIR"
-                               , "FILE"
-                               , "c_char"
-                               , "c_double"
-                               , "c_float"
-                               , "c_int"
-                               , "c_long"
-                               , "c_longlong"
-                               , "c_schar"
-                               , "c_short"
-                               , "c_uchar"
-                               , "c_uint"
-                               , "c_ulong"
-                               , "c_ulonglong"
-                               , "c_ushort"
-                               , "c_void"
-                               , "clock_t"
-                               , "dev_t"
-                               , "dirent"
-                               , "fpos_t"
-                               , "ino_t"
-                               , "intptr_t"
-                               , "mode_t"
-                               , "off_t"
-                               , "pid_t"
-                               , "ptrdiff_t"
-                               , "size_t"
-                               , "ssize_t"
-                               , "time_t"
-                               , "uintptr_t"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "self" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Cons"
-                               , "Err"
-                               , "Failure"
-                               , "Nil"
-                               , "None"
-                               , "Ok"
-                               , "Some"
-                               , "Success"
-                               , "false"
-                               , "true"
-                               ])
-                      , rAttribute = ConstantTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "BUFSIZ"
-                               , "EOF"
-                               , "EXIT_FAILURE"
-                               , "EXIT_SUCCESS"
-                               , "FILENAME_MAX"
-                               , "FOPEN_MAX"
-                               , "F_OK"
-                               , "L_tmpnam"
-                               , "O_APPEND"
-                               , "O_CREAT"
-                               , "O_EXCL"
-                               , "O_RDONLY"
-                               , "O_RDWR"
-                               , "O_TRUNC"
-                               , "O_WRONLY"
-                               , "RAND_MAX"
-                               , "R_OK"
-                               , "SEEK_CUR"
-                               , "SEEK_END"
-                               , "SEEK_SET"
-                               , "STDERR_FILENO"
-                               , "STDIN_FILENO"
-                               , "STDOUT_FILENO"
-                               , "S_IEXEC"
-                               , "S_IFBLK"
-                               , "S_IFCHR"
-                               , "S_IFDIR"
-                               , "S_IFIFO"
-                               , "S_IFMT"
-                               , "S_IFREG"
-                               , "S_IREAD"
-                               , "S_IRUSR"
-                               , "S_IRWXU"
-                               , "S_IWRITE"
-                               , "S_IWUSR"
-                               , "S_IXUSR"
-                               , "TMP_MAX"
-                               , "W_OK"
-                               , "X_OK"
-                               , "_IOFBF"
-                               , "_IOLBF"
-                               , "_IONBF"
-                               ])
-                      , rAttribute = ConstantTok
-                      , 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 ( "Rust" , "Commentar 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Rust" , "Commentar 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "0x[0-9a-fA-F_]+([iu](8|16|32|64)?)?"
-                              , reCompiled =
-                                  Just (compileRegex True "0x[0-9a-fA-F_]+([iu](8|16|32|64)?)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "0o[0-7_]+([iu](8|16|32|64)?)?"
-                              , reCompiled =
-                                  Just (compileRegex True "0o[0-7_]+([iu](8|16|32|64)?)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "0b[0-1_]+([iu](8|16|32|64)?)?"
-                              , reCompiled =
-                                  Just (compileRegex True "0b[0-1_]+([iu](8|16|32|64)?)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "[0-9][0-9_]*\\.[0-9_]*([eE][+-]?[0-9_]+)?(f32|f64|f)?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "[0-9][0-9_]*\\.[0-9_]*([eE][+-]?[0-9_]+)?(f32|f64|f)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[0-9][0-9_]*([iu](8|16|32|64)?)?"
-                              , reCompiled =
-                                  Just (compileRegex True "[0-9][0-9_]*([iu](8|16|32|64)?)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '#' '['
-                      , rAttribute = AttributeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Rust" , "Attribute" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "#!["
-                      , rAttribute = AttributeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Rust" , "Attribute" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z_][a-zA-Z_0-9]*::"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z_][a-zA-Z_0-9]*::")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z_][a-zA-Z_0-9]*!"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z_][a-zA-Z_0-9]*!")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = PreprocessorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "'[a-zA-Z_][a-zA-Z_0-9]*(?!')"
-                              , reCompiled =
-                                  Just (compileRegex True "'[a-zA-Z_][a-zA-Z_0-9]*(?!')")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars 'r' '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Rust" , "RawString" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "r##\""
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Rust" , "RawHashed2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "r#\""
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Rust" , "RawHashed1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Rust" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Rust" , "Character" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = OperatorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , 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
-              }
-          )
-        , ( "RawHashed1"
-          , Context
-              { cName = "RawHashed1"
-              , cSyntax = "Rust"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '"' '#'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "RawHashed2"
-          , Context
-              { cName = "RawHashed2"
-              , cSyntax = "Rust"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "\"##"
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "RawString"
-          , Context
-              { cName = "RawString"
-              , cSyntax = "Rust"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Rust"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = SpecialCharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Rust" , "CharEscape" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Type"
-          , Context
-              { cName = "Type"
-              , cSyntax = "Rust"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ';'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "The Rust Project Developers"
-  , sVersion = "4"
-  , sLicense = "MIT"
-  , sExtensions = [ "*.rs" ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Rust\", sFilename = \"rust.xml\", sShortname = \"Rust\", sContexts = fromList [(\"Attribute\",Context {cName = \"Attribute\", cSyntax = \"Rust\", cRules = [Rule {rMatcher = DetectChar ']', rAttribute = AttributeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Rust\",\"Normal\"), 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}),(\"CharEscape\",Context {cName = \"CharEscape\", cSyntax = \"Rust\", cRules = [Rule {rMatcher = AnyChar \"nrt\\\\'\\\"\", rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"x[0-9a-fA-F]{2}\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"u\\\\{[0-9a-fA-F]{1,6}\\\\}\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"u[0-9a-fA-F]{4}\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"U[0-9a-fA-F]{8}\", reCaseSensitive = True}), rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = SpecialCharTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Character\",Context {cName = \"Character\", cSyntax = \"Rust\", cRules = [Rule {rMatcher = DetectChar '\\\\', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Rust\",\"CharEscape\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CharTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Commentar 1\",Context {cName = \"Commentar 1\", cSyntax = \"Rust\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Commentar 2\",Context {cName = \"Commentar 2\", cSyntax = \"Rust\", 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 = [Push (\"Rust\",\"Commentar 2\")]},Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Function\",Context {cName = \"Function\", cSyntax = \"Rust\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '<', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Rust\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"fn\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Rust\",\"Function\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"type\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Rust\",\"Type\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"Self\",\"abstract\",\"alignof\",\"as\",\"become\",\"box\",\"break\",\"const\",\"continue\",\"crate\",\"do\",\"else\",\"enum\",\"extern\",\"final\",\"for\",\"if\",\"impl\",\"in\",\"let\",\"loop\",\"macro\",\"match\",\"mod\",\"move\",\"mut\",\"offsetof\",\"override\",\"priv\",\"proc\",\"pub\",\"pure\",\"ref\",\"return\",\"self\",\"sizeof\",\"static\",\"struct\",\"super\",\"trait\",\"type\",\"typeof\",\"unsafe\",\"unsized\",\"use\",\"virtual\",\"where\",\"while\",\"yield\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"Box\",\"Option\",\"Result\",\"Self\",\"String\",\"Vec\",\"bool\",\"char\",\"f32\",\"f64\",\"float\",\"i16\",\"i32\",\"i64\",\"i8\",\"int\",\"isize\",\"str\",\"u16\",\"u32\",\"u64\",\"u8\",\"uint\",\"usize\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"AsSlice\",\"CharExt\",\"Clone\",\"Copy\",\"Debug\",\"Decodable\",\"Default\",\"Display\",\"DoubleEndedIterator\",\"Drop\",\"Encodable\",\"Eq\",\"Extend\",\"Fn\",\"FnMut\",\"FnOnce\",\"FromPrimitive\",\"Hash\",\"Iterator\",\"IteratorExt\",\"MutPtrExt\",\"Ord\",\"PartialEq\",\"PartialOrd\",\"PtrExt\",\"Rand\",\"Send\",\"Sized\",\"SliceConcatExt\",\"SliceExt\",\"Str\",\"StrExt\",\"Sync\",\"ToString\"])), rAttribute = BuiltInTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"DIR\",\"FILE\",\"c_char\",\"c_double\",\"c_float\",\"c_int\",\"c_long\",\"c_longlong\",\"c_schar\",\"c_short\",\"c_uchar\",\"c_uint\",\"c_ulong\",\"c_ulonglong\",\"c_ushort\",\"c_void\",\"clock_t\",\"dev_t\",\"dirent\",\"fpos_t\",\"ino_t\",\"intptr_t\",\"mode_t\",\"off_t\",\"pid_t\",\"ptrdiff_t\",\"size_t\",\"ssize_t\",\"time_t\",\"uintptr_t\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"self\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"Cons\",\"Err\",\"Failure\",\"Nil\",\"None\",\"Ok\",\"Some\",\"Success\",\"false\",\"true\"])), rAttribute = ConstantTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"BUFSIZ\",\"EOF\",\"EXIT_FAILURE\",\"EXIT_SUCCESS\",\"FILENAME_MAX\",\"FOPEN_MAX\",\"F_OK\",\"L_tmpnam\",\"O_APPEND\",\"O_CREAT\",\"O_EXCL\",\"O_RDONLY\",\"O_RDWR\",\"O_TRUNC\",\"O_WRONLY\",\"RAND_MAX\",\"R_OK\",\"SEEK_CUR\",\"SEEK_END\",\"SEEK_SET\",\"STDERR_FILENO\",\"STDIN_FILENO\",\"STDOUT_FILENO\",\"S_IEXEC\",\"S_IFBLK\",\"S_IFCHR\",\"S_IFDIR\",\"S_IFIFO\",\"S_IFMT\",\"S_IFREG\",\"S_IREAD\",\"S_IRUSR\",\"S_IRWXU\",\"S_IWRITE\",\"S_IWUSR\",\"S_IXUSR\",\"TMP_MAX\",\"W_OK\",\"X_OK\",\"_IOFBF\",\"_IOLBF\",\"_IONBF\"])), rAttribute = ConstantTok, 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 (\"Rust\",\"Commentar 1\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Rust\",\"Commentar 2\")]},Rule {rMatcher = RegExpr (RE {reString = \"0x[0-9a-fA-F_]+([iu](8|16|32|64)?)?\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"0o[0-7_]+([iu](8|16|32|64)?)?\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"0b[0-1_]+([iu](8|16|32|64)?)?\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[0-9][0-9_]*\\\\.[0-9_]*([eE][+-]?[0-9_]+)?(f32|f64|f)?\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[0-9][0-9_]*([iu](8|16|32|64)?)?\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '#' '[', rAttribute = AttributeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Rust\",\"Attribute\")]},Rule {rMatcher = StringDetect \"#![\", rAttribute = AttributeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Rust\",\"Attribute\")]},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z_][a-zA-Z_0-9]*::\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z_][a-zA-Z_0-9]*!\", reCaseSensitive = True}), rAttribute = PreprocessorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"'[a-zA-Z_][a-zA-Z_0-9]*(?!')\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '{', rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars 'r' '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Rust\",\"RawString\")]},Rule {rMatcher = StringDetect \"r##\\\"\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Rust\",\"RawHashed2\")]},Rule {rMatcher = StringDetect \"r#\\\"\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Rust\",\"RawHashed1\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Rust\",\"String\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Rust\",\"Character\")]},Rule {rMatcher = DetectChar '[', rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ']', rAttribute = OperatorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, 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}),(\"RawHashed1\",Context {cName = \"RawHashed1\", cSyntax = \"Rust\", cRules = [Rule {rMatcher = Detect2Chars '\"' '#', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"RawHashed2\",Context {cName = \"RawHashed2\", cSyntax = \"Rust\", cRules = [Rule {rMatcher = StringDetect \"\\\"##\", rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"RawString\",Context {cName = \"RawString\", cSyntax = \"Rust\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Rust\", cRules = [Rule {rMatcher = DetectChar '\\\\', rAttribute = SpecialCharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Rust\",\"CharEscape\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Type\",Context {cName = \"Type\", cSyntax = \"Rust\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '=', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '<', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar ';', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"The Rust Project Developers\", sVersion = \"4\", sLicense = \"MIT\", sExtensions = [\"*.rs\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Scala.hs b/src/Skylighting/Syntax/Scala.hs
--- a/src/Skylighting/Syntax/Scala.hs
+++ b/src/Skylighting/Syntax/Scala.hs
@@ -2,4036 +2,6 @@
 module Skylighting.Syntax.Scala (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Scala"
-  , sFilename = "scala.xml"
-  , sShortname = "Scala"
-  , sContexts =
-      fromList
-        [ ( "Commentar 1"
-          , Context
-              { cName = "Commentar 1"
-              , cSyntax = "Scala"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Commentar 2"
-          , Context
-              { cName = "Commentar 2"
-              , cSyntax = "Scala"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Member"
-          , Context
-              { cName = "Member"
-              , cSyntax = "Scala"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[_a-zA-Z]\\w*(?=[\\s]*)"
-                              , reCompiled =
-                                  Just (compileRegex True "\\b[_a-zA-Z]\\w*(?=[\\s]*)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Scala"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Javadoc" , "" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "abstract"
-                               , "case"
-                               , "catch"
-                               , "class"
-                               , "def"
-                               , "do"
-                               , "else"
-                               , "extends"
-                               , "false"
-                               , "final"
-                               , "finally"
-                               , "for"
-                               , "forSome"
-                               , "if"
-                               , "implicit"
-                               , "import"
-                               , "lazy"
-                               , "match"
-                               , "new"
-                               , "null"
-                               , "object"
-                               , "override"
-                               , "package"
-                               , "private"
-                               , "protected"
-                               , "requires"
-                               , "return"
-                               , "sealed"
-                               , "super"
-                               , "this"
-                               , "throw"
-                               , "trait"
-                               , "true"
-                               , "try"
-                               , "type"
-                               , "val"
-                               , "var"
-                               , "while"
-                               , "with"
-                               , "yield"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "boolean"
-                               , "byte"
-                               , "char"
-                               , "double"
-                               , "float"
-                               , "int"
-                               , "long"
-                               , "short"
-                               , "unit"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "ACTIVE"
-                               , "ACTIVITY_COMPLETED"
-                               , "ACTIVITY_REQUIRED"
-                               , "ARG_IN"
-                               , "ARG_INOUT"
-                               , "ARG_OUT"
-                               , "AWTError"
-                               , "AWTEvent"
-                               , "AWTEventListener"
-                               , "AWTEventListenerProxy"
-                               , "AWTEventMulticaster"
-                               , "AWTException"
-                               , "AWTKeyStroke"
-                               , "AWTPermission"
-                               , "AbstractAction"
-                               , "AbstractBorder"
-                               , "AbstractButton"
-                               , "AbstractCellEditor"
-                               , "AbstractCollection"
-                               , "AbstractColorChooserPanel"
-                               , "AbstractDocument"
-                               , "AbstractDocument.AttributeContext"
-                               , "AbstractDocument.Content"
-                               , "AbstractDocument.ElementEdit"
-                               , "AbstractExecutorService"
-                               , "AbstractInterruptibleChannel"
-                               , "AbstractLayoutCache"
-                               , "AbstractLayoutCache.NodeDimensions"
-                               , "AbstractList"
-                               , "AbstractListModel"
-                               , "AbstractMap"
-                               , "AbstractMethodError"
-                               , "AbstractPreferences"
-                               , "AbstractQueue"
-                               , "AbstractQueuedSynchronizer"
-                               , "AbstractSelectableChannel"
-                               , "AbstractSelectionKey"
-                               , "AbstractSelector"
-                               , "AbstractSequentialList"
-                               , "AbstractSet"
-                               , "AbstractSpinnerModel"
-                               , "AbstractTableModel"
-                               , "AbstractUndoableEdit"
-                               , "AbstractWriter"
-                               , "AccessControlContext"
-                               , "AccessControlException"
-                               , "AccessController"
-                               , "AccessException"
-                               , "Accessible"
-                               , "AccessibleAction"
-                               , "AccessibleAttributeSequence"
-                               , "AccessibleBundle"
-                               , "AccessibleComponent"
-                               , "AccessibleContext"
-                               , "AccessibleEditableText"
-                               , "AccessibleExtendedComponent"
-                               , "AccessibleExtendedTable"
-                               , "AccessibleExtendedText"
-                               , "AccessibleHyperlink"
-                               , "AccessibleHypertext"
-                               , "AccessibleIcon"
-                               , "AccessibleKeyBinding"
-                               , "AccessibleObject"
-                               , "AccessibleRelation"
-                               , "AccessibleRelationSet"
-                               , "AccessibleResourceBundle"
-                               , "AccessibleRole"
-                               , "AccessibleSelection"
-                               , "AccessibleState"
-                               , "AccessibleStateSet"
-                               , "AccessibleStreamable"
-                               , "AccessibleTable"
-                               , "AccessibleTableModelChange"
-                               , "AccessibleText"
-                               , "AccessibleTextSequence"
-                               , "AccessibleValue"
-                               , "AccountException"
-                               , "AccountExpiredException"
-                               , "AccountLockedException"
-                               , "AccountNotFoundException"
-                               , "Acl"
-                               , "AclEntry"
-                               , "AclNotFoundException"
-                               , "Action"
-                               , "ActionEvent"
-                               , "ActionListener"
-                               , "ActionMap"
-                               , "ActionMapUIResource"
-                               , "Activatable"
-                               , "ActivateFailedException"
-                               , "ActivationDesc"
-                               , "ActivationException"
-                               , "ActivationGroup"
-                               , "ActivationGroupDesc"
-                               , "ActivationGroupDesc.CommandEnvironment"
-                               , "ActivationGroupID"
-                               , "ActivationGroup_Stub"
-                               , "ActivationID"
-                               , "ActivationInstantiator"
-                               , "ActivationMonitor"
-                               , "ActivationSystem"
-                               , "Activator"
-                               , "ActiveEvent"
-                               , "ActivityCompletedException"
-                               , "ActivityRequiredException"
-                               , "AdapterActivator"
-                               , "AdapterActivatorOperations"
-                               , "AdapterAlreadyExists"
-                               , "AdapterAlreadyExistsHelper"
-                               , "AdapterInactive"
-                               , "AdapterInactiveHelper"
-                               , "AdapterManagerIdHelper"
-                               , "AdapterNameHelper"
-                               , "AdapterNonExistent"
-                               , "AdapterNonExistentHelper"
-                               , "AdapterStateHelper"
-                               , "AddressHelper"
-                               , "Adjustable"
-                               , "AdjustmentEvent"
-                               , "AdjustmentListener"
-                               , "Adler32"
-                               , "AffineTransform"
-                               , "AffineTransformOp"
-                               , "AlgorithmParameterGenerator"
-                               , "AlgorithmParameterGeneratorSpi"
-                               , "AlgorithmParameterSpec"
-                               , "AlgorithmParameters"
-                               , "AlgorithmParametersSpi"
-                               , "AllPermission"
-                               , "AlphaComposite"
-                               , "AlreadyBound"
-                               , "AlreadyBoundException"
-                               , "AlreadyBoundHelper"
-                               , "AlreadyBoundHolder"
-                               , "AlreadyConnectedException"
-                               , "AncestorEvent"
-                               , "AncestorListener"
-                               , "AnnotatedElement"
-                               , "Annotation"
-                               , "AnnotationFormatError"
-                               , "AnnotationTypeMismatchException"
-                               , "Any"
-                               , "AnyHolder"
-                               , "AnySeqHelper"
-                               , "AnySeqHolder"
-                               , "AppConfigurationEntry"
-                               , "AppConfigurationEntry.LoginModuleControlFlag"
-                               , "Appendable"
-                               , "Applet"
-                               , "AppletContext"
-                               , "AppletInitializer"
-                               , "AppletStub"
-                               , "ApplicationException"
-                               , "Arc2D"
-                               , "Arc2D.Double"
-                               , "Arc2D.Float"
-                               , "Area"
-                               , "AreaAveragingScaleFilter"
-                               , "ArithmeticException"
-                               , "Array"
-                               , "ArrayBlockingQueue"
-                               , "ArrayIndexOutOfBoundsException"
-                               , "ArrayList"
-                               , "ArrayStoreException"
-                               , "ArrayType"
-                               , "Arrays"
-                               , "AssertionError"
-                               , "AsyncBoxView"
-                               , "AsynchronousCloseException"
-                               , "AtomicBoolean"
-                               , "AtomicInteger"
-                               , "AtomicIntegerArray"
-                               , "AtomicIntegerFieldUpdater"
-                               , "AtomicLong"
-                               , "AtomicLongArray"
-                               , "AtomicLongFieldUpdater"
-                               , "AtomicMarkableReference"
-                               , "AtomicReference"
-                               , "AtomicReferenceArray"
-                               , "AtomicReferenceFieldUpdater"
-                               , "AtomicStampedReference"
-                               , "Attr"
-                               , "Attribute"
-                               , "AttributeChangeNotification"
-                               , "AttributeChangeNotificationFilter"
-                               , "AttributeException"
-                               , "AttributeInUseException"
-                               , "AttributeList"
-                               , "AttributeListImpl"
-                               , "AttributeModificationException"
-                               , "AttributeNotFoundException"
-                               , "AttributeSet"
-                               , "AttributeSet.CharacterAttribute"
-                               , "AttributeSet.ColorAttribute"
-                               , "AttributeSet.FontAttribute"
-                               , "AttributeSet.ParagraphAttribute"
-                               , "AttributeSetUtilities"
-                               , "AttributeValueExp"
-                               , "AttributedCharacterIterator"
-                               , "AttributedCharacterIterator.Attribute"
-                               , "AttributedString"
-                               , "Attributes"
-                               , "Attributes.Name"
-                               , "Attributes2"
-                               , "Attributes2Impl"
-                               , "AttributesImpl"
-                               , "AudioClip"
-                               , "AudioFileFormat"
-                               , "AudioFileFormat.Type"
-                               , "AudioFileReader"
-                               , "AudioFileWriter"
-                               , "AudioFormat"
-                               , "AudioFormat.Encoding"
-                               , "AudioInputStream"
-                               , "AudioPermission"
-                               , "AudioSystem"
-                               , "AuthPermission"
-                               , "AuthProvider"
-                               , "AuthenticationException"
-                               , "AuthenticationNotSupportedException"
-                               , "Authenticator"
-                               , "Authenticator.RequestorType"
-                               , "AuthorizeCallback"
-                               , "Autoscroll"
-                               , "BAD_CONTEXT"
-                               , "BAD_INV_ORDER"
-                               , "BAD_OPERATION"
-                               , "BAD_PARAM"
-                               , "BAD_POLICY"
-                               , "BAD_POLICY_TYPE"
-                               , "BAD_POLICY_VALUE"
-                               , "BAD_QOS"
-                               , "BAD_TYPECODE"
-                               , "BMPImageWriteParam"
-                               , "BackingStoreException"
-                               , "BadAttributeValueExpException"
-                               , "BadBinaryOpValueExpException"
-                               , "BadKind"
-                               , "BadLocationException"
-                               , "BadPaddingException"
-                               , "BadStringOperationException"
-                               , "BandCombineOp"
-                               , "BandedSampleModel"
-                               , "BaseRowSet"
-                               , "BasicArrowButton"
-                               , "BasicAttribute"
-                               , "BasicAttributes"
-                               , "BasicBorders"
-                               , "BasicBorders.ButtonBorder"
-                               , "BasicBorders.FieldBorder"
-                               , "BasicBorders.MarginBorder"
-                               , "BasicBorders.MenuBarBorder"
-                               , "BasicBorders.RadioButtonBorder"
-                               , "BasicBorders.RolloverButtonBorder"
-                               , "BasicBorders.SplitPaneBorder"
-                               , "BasicBorders.ToggleButtonBorder"
-                               , "BasicButtonListener"
-                               , "BasicButtonUI"
-                               , "BasicCheckBoxMenuItemUI"
-                               , "BasicCheckBoxUI"
-                               , "BasicColorChooserUI"
-                               , "BasicComboBoxEditor"
-                               , "BasicComboBoxEditor.UIResource"
-                               , "BasicComboBoxRenderer"
-                               , "BasicComboBoxRenderer.UIResource"
-                               , "BasicComboBoxUI"
-                               , "BasicComboPopup"
-                               , "BasicControl"
-                               , "BasicDesktopIconUI"
-                               , "BasicDesktopPaneUI"
-                               , "BasicDirectoryModel"
-                               , "BasicEditorPaneUI"
-                               , "BasicFileChooserUI"
-                               , "BasicFormattedTextFieldUI"
-                               , "BasicGraphicsUtils"
-                               , "BasicHTML"
-                               , "BasicIconFactory"
-                               , "BasicInternalFrameTitlePane"
-                               , "BasicInternalFrameUI"
-                               , "BasicLabelUI"
-                               , "BasicListUI"
-                               , "BasicLookAndFeel"
-                               , "BasicMenuBarUI"
-                               , "BasicMenuItemUI"
-                               , "BasicMenuUI"
-                               , "BasicOptionPaneUI"
-                               , "BasicOptionPaneUI.ButtonAreaLayout"
-                               , "BasicPanelUI"
-                               , "BasicPasswordFieldUI"
-                               , "BasicPermission"
-                               , "BasicPopupMenuSeparatorUI"
-                               , "BasicPopupMenuUI"
-                               , "BasicProgressBarUI"
-                               , "BasicRadioButtonMenuItemUI"
-                               , "BasicRadioButtonUI"
-                               , "BasicRootPaneUI"
-                               , "BasicScrollBarUI"
-                               , "BasicScrollPaneUI"
-                               , "BasicSeparatorUI"
-                               , "BasicSliderUI"
-                               , "BasicSpinnerUI"
-                               , "BasicSplitPaneDivider"
-                               , "BasicSplitPaneUI"
-                               , "BasicStroke"
-                               , "BasicTabbedPaneUI"
-                               , "BasicTableHeaderUI"
-                               , "BasicTableUI"
-                               , "BasicTextAreaUI"
-                               , "BasicTextFieldUI"
-                               , "BasicTextPaneUI"
-                               , "BasicTextUI"
-                               , "BasicTextUI.BasicCaret"
-                               , "BasicTextUI.BasicHighlighter"
-                               , "BasicToggleButtonUI"
-                               , "BasicToolBarSeparatorUI"
-                               , "BasicToolBarUI"
-                               , "BasicToolTipUI"
-                               , "BasicTreeUI"
-                               , "BasicViewportUI"
-                               , "BatchUpdateException"
-                               , "BeanContext"
-                               , "BeanContextChild"
-                               , "BeanContextChildComponentProxy"
-                               , "BeanContextChildSupport"
-                               , "BeanContextContainerProxy"
-                               , "BeanContextEvent"
-                               , "BeanContextMembershipEvent"
-                               , "BeanContextMembershipListener"
-                               , "BeanContextProxy"
-                               , "BeanContextServiceAvailableEvent"
-                               , "BeanContextServiceProvider"
-                               , "BeanContextServiceProviderBeanInfo"
-                               , "BeanContextServiceRevokedEvent"
-                               , "BeanContextServiceRevokedListener"
-                               , "BeanContextServices"
-                               , "BeanContextServicesListener"
-                               , "BeanContextServicesSupport"
-                               , "BeanContextServicesSupport.BCSSServiceProvider"
-                               , "BeanContextSupport"
-                               , "BeanContextSupport.BCSIterator"
-                               , "BeanDescriptor"
-                               , "BeanInfo"
-                               , "Beans"
-                               , "BevelBorder"
-                               , "Bidi"
-                               , "BigDecimal"
-                               , "BigInteger"
-                               , "BinaryRefAddr"
-                               , "BindException"
-                               , "Binding"
-                               , "BindingHelper"
-                               , "BindingHolder"
-                               , "BindingIterator"
-                               , "BindingIteratorHelper"
-                               , "BindingIteratorHolder"
-                               , "BindingIteratorOperations"
-                               , "BindingIteratorPOA"
-                               , "BindingListHelper"
-                               , "BindingListHolder"
-                               , "BindingType"
-                               , "BindingTypeHelper"
-                               , "BindingTypeHolder"
-                               , "BitSet"
-                               , "Blob"
-                               , "BlockView"
-                               , "BlockingQueue"
-                               , "Book"
-                               , "Boolean"
-                               , "BooleanControl"
-                               , "BooleanControl.Type"
-                               , "BooleanHolder"
-                               , "BooleanSeqHelper"
-                               , "BooleanSeqHolder"
-                               , "Border"
-                               , "BorderFactory"
-                               , "BorderLayout"
-                               , "BorderUIResource"
-                               , "BorderUIResource.BevelBorderUIResource"
-                               , "BorderUIResource.CompoundBorderUIResource"
-                               , "BorderUIResource.EmptyBorderUIResource"
-                               , "BorderUIResource.EtchedBorderUIResource"
-                               , "BorderUIResource.LineBorderUIResource"
-                               , "BorderUIResource.MatteBorderUIResource"
-                               , "BorderUIResource.TitledBorderUIResource"
-                               , "BoundedRangeModel"
-                               , "Bounds"
-                               , "Box"
-                               , "Box.Filler"
-                               , "BoxLayout"
-                               , "BoxView"
-                               , "BoxedValueHelper"
-                               , "BreakIterator"
-                               , "BrokenBarrierException"
-                               , "Buffer"
-                               , "BufferCapabilities"
-                               , "BufferCapabilities.FlipContents"
-                               , "BufferOverflowException"
-                               , "BufferStrategy"
-                               , "BufferUnderflowException"
-                               , "BufferedImage"
-                               , "BufferedImageFilter"
-                               , "BufferedImageOp"
-                               , "BufferedInputStream"
-                               , "BufferedOutputStream"
-                               , "BufferedReader"
-                               , "BufferedWriter"
-                               , "Button"
-                               , "ButtonGroup"
-                               , "ButtonModel"
-                               , "ButtonUI"
-                               , "Byte"
-                               , "ByteArrayInputStream"
-                               , "ByteArrayOutputStream"
-                               , "ByteBuffer"
-                               , "ByteChannel"
-                               , "ByteHolder"
-                               , "ByteLookupTable"
-                               , "ByteOrder"
-                               , "CDATASection"
-                               , "CMMException"
-                               , "CODESET_INCOMPATIBLE"
-                               , "COMM_FAILURE"
-                               , "CRC32"
-                               , "CRL"
-                               , "CRLException"
-                               , "CRLSelector"
-                               , "CSS"
-                               , "CSS.Attribute"
-                               , "CTX_RESTRICT_SCOPE"
-                               , "CacheRequest"
-                               , "CacheResponse"
-                               , "CachedRowSet"
-                               , "Calendar"
-                               , "Callable"
-                               , "CallableStatement"
-                               , "Callback"
-                               , "CallbackHandler"
-                               , "CancelablePrintJob"
-                               , "CancellationException"
-                               , "CancelledKeyException"
-                               , "CannotProceed"
-                               , "CannotProceedException"
-                               , "CannotProceedHelper"
-                               , "CannotProceedHolder"
-                               , "CannotRedoException"
-                               , "CannotUndoException"
-                               , "Canvas"
-                               , "CardLayout"
-                               , "Caret"
-                               , "CaretEvent"
-                               , "CaretListener"
-                               , "CellEditor"
-                               , "CellEditorListener"
-                               , "CellRendererPane"
-                               , "CertPath"
-                               , "CertPath.CertPathRep"
-                               , "CertPathBuilder"
-                               , "CertPathBuilderException"
-                               , "CertPathBuilderResult"
-                               , "CertPathBuilderSpi"
-                               , "CertPathParameters"
-                               , "CertPathTrustManagerParameters"
-                               , "CertPathValidator"
-                               , "CertPathValidatorException"
-                               , "CertPathValidatorResult"
-                               , "CertPathValidatorSpi"
-                               , "CertSelector"
-                               , "CertStore"
-                               , "CertStoreException"
-                               , "CertStoreParameters"
-                               , "CertStoreSpi"
-                               , "Certificate"
-                               , "Certificate.CertificateRep"
-                               , "CertificateEncodingException"
-                               , "CertificateException"
-                               , "CertificateExpiredException"
-                               , "CertificateFactory"
-                               , "CertificateFactorySpi"
-                               , "CertificateNotYetValidException"
-                               , "CertificateParsingException"
-                               , "ChangeEvent"
-                               , "ChangeListener"
-                               , "ChangedCharSetException"
-                               , "Channel"
-                               , "ChannelBinding"
-                               , "Channels"
-                               , "CharArrayReader"
-                               , "CharArrayWriter"
-                               , "CharBuffer"
-                               , "CharConversionException"
-                               , "CharHolder"
-                               , "CharSeqHelper"
-                               , "CharSeqHolder"
-                               , "CharSequence"
-                               , "Character"
-                               , "Character.Subset"
-                               , "Character.UnicodeBlock"
-                               , "CharacterCodingException"
-                               , "CharacterData"
-                               , "CharacterIterator"
-                               , "Charset"
-                               , "CharsetDecoder"
-                               , "CharsetEncoder"
-                               , "CharsetProvider"
-                               , "Checkbox"
-                               , "CheckboxGroup"
-                               , "CheckboxMenuItem"
-                               , "CheckedInputStream"
-                               , "CheckedOutputStream"
-                               , "Checksum"
-                               , "Choice"
-                               , "ChoiceCallback"
-                               , "ChoiceFormat"
-                               , "Chromaticity"
-                               , "Cipher"
-                               , "CipherInputStream"
-                               , "CipherOutputStream"
-                               , "CipherSpi"
-                               , "Class"
-                               , "ClassCastException"
-                               , "ClassCircularityError"
-                               , "ClassDefinition"
-                               , "ClassDesc"
-                               , "ClassFileTransformer"
-                               , "ClassFormatError"
-                               , "ClassLoader"
-                               , "ClassLoaderRepository"
-                               , "ClassLoadingMXBean"
-                               , "ClassNotFoundException"
-                               , "ClientRequestInfo"
-                               , "ClientRequestInfoOperations"
-                               , "ClientRequestInterceptor"
-                               , "ClientRequestInterceptorOperations"
-                               , "Clip"
-                               , "Clipboard"
-                               , "ClipboardOwner"
-                               , "Clob"
-                               , "CloneNotSupportedException"
-                               , "Cloneable"
-                               , "Closeable"
-                               , "ClosedByInterruptException"
-                               , "ClosedChannelException"
-                               , "ClosedSelectorException"
-                               , "CodeSets"
-                               , "CodeSigner"
-                               , "CodeSource"
-                               , "Codec"
-                               , "CodecFactory"
-                               , "CodecFactoryHelper"
-                               , "CodecFactoryOperations"
-                               , "CodecOperations"
-                               , "CoderMalfunctionError"
-                               , "CoderResult"
-                               , "CodingErrorAction"
-                               , "CollationElementIterator"
-                               , "CollationKey"
-                               , "Collator"
-                               , "Collection"
-                               , "CollectionCertStoreParameters"
-                               , "Collections"
-                               , "Color"
-                               , "ColorChooserComponentFactory"
-                               , "ColorChooserUI"
-                               , "ColorConvertOp"
-                               , "ColorModel"
-                               , "ColorSelectionModel"
-                               , "ColorSpace"
-                               , "ColorSupported"
-                               , "ColorType"
-                               , "ColorUIResource"
-                               , "ComboBoxEditor"
-                               , "ComboBoxModel"
-                               , "ComboBoxUI"
-                               , "ComboPopup"
-                               , "Comment"
-                               , "CommunicationException"
-                               , "Comparable"
-                               , "Comparator"
-                               , "CompilationMXBean"
-                               , "Compiler"
-                               , "CompletionService"
-                               , "CompletionStatus"
-                               , "CompletionStatusHelper"
-                               , "Component"
-                               , "ComponentAdapter"
-                               , "ComponentColorModel"
-                               , "ComponentEvent"
-                               , "ComponentIdHelper"
-                               , "ComponentInputMap"
-                               , "ComponentInputMapUIResource"
-                               , "ComponentListener"
-                               , "ComponentOrientation"
-                               , "ComponentSampleModel"
-                               , "ComponentUI"
-                               , "ComponentView"
-                               , "Composite"
-                               , "CompositeContext"
-                               , "CompositeData"
-                               , "CompositeDataSupport"
-                               , "CompositeName"
-                               , "CompositeType"
-                               , "CompositeView"
-                               , "CompoundBorder"
-                               , "CompoundControl"
-                               , "CompoundControl.Type"
-                               , "CompoundEdit"
-                               , "CompoundName"
-                               , "Compression"
-                               , "ConcurrentHashMap"
-                               , "ConcurrentLinkedQueue"
-                               , "ConcurrentMap"
-                               , "ConcurrentModificationException"
-                               , "Condition"
-                               , "Configuration"
-                               , "ConfigurationException"
-                               , "ConfirmationCallback"
-                               , "ConnectException"
-                               , "ConnectIOException"
-                               , "Connection"
-                               , "ConnectionEvent"
-                               , "ConnectionEventListener"
-                               , "ConnectionPendingException"
-                               , "ConnectionPoolDataSource"
-                               , "ConsoleHandler"
-                               , "Constructor"
-                               , "Container"
-                               , "ContainerAdapter"
-                               , "ContainerEvent"
-                               , "ContainerListener"
-                               , "ContainerOrderFocusTraversalPolicy"
-                               , "ContentHandler"
-                               , "ContentHandlerFactory"
-                               , "ContentModel"
-                               , "Context"
-                               , "ContextList"
-                               , "ContextNotEmptyException"
-                               , "ContextualRenderedImageFactory"
-                               , "Control"
-                               , "Control.Type"
-                               , "ControlFactory"
-                               , "ControllerEventListener"
-                               , "ConvolveOp"
-                               , "CookieHandler"
-                               , "CookieHolder"
-                               , "Copies"
-                               , "CopiesSupported"
-                               , "CopyOnWriteArrayList"
-                               , "CopyOnWriteArraySet"
-                               , "CountDownLatch"
-                               , "CounterMonitor"
-                               , "CounterMonitorMBean"
-                               , "CredentialException"
-                               , "CredentialExpiredException"
-                               , "CredentialNotFoundException"
-                               , "CropImageFilter"
-                               , "CubicCurve2D"
-                               , "CubicCurve2D.Double"
-                               , "CubicCurve2D.Float"
-                               , "Currency"
-                               , "Current"
-                               , "CurrentHelper"
-                               , "CurrentHolder"
-                               , "CurrentOperations"
-                               , "Cursor"
-                               , "CustomMarshal"
-                               , "CustomValue"
-                               , "Customizer"
-                               , "CyclicBarrier"
-                               , "DATA_CONVERSION"
-                               , "DESKeySpec"
-                               , "DESedeKeySpec"
-                               , "DGC"
-                               , "DHGenParameterSpec"
-                               , "DHKey"
-                               , "DHParameterSpec"
-                               , "DHPrivateKey"
-                               , "DHPrivateKeySpec"
-                               , "DHPublicKey"
-                               , "DHPublicKeySpec"
-                               , "DISCARDING"
-                               , "DOMConfiguration"
-                               , "DOMError"
-                               , "DOMErrorHandler"
-                               , "DOMException"
-                               , "DOMImplementation"
-                               , "DOMImplementationLS"
-                               , "DOMImplementationList"
-                               , "DOMImplementationRegistry"
-                               , "DOMImplementationSource"
-                               , "DOMLocator"
-                               , "DOMResult"
-                               , "DOMSource"
-                               , "DOMStringList"
-                               , "DSAKey"
-                               , "DSAKeyPairGenerator"
-                               , "DSAParameterSpec"
-                               , "DSAParams"
-                               , "DSAPrivateKey"
-                               , "DSAPrivateKeySpec"
-                               , "DSAPublicKey"
-                               , "DSAPublicKeySpec"
-                               , "DTD"
-                               , "DTDConstants"
-                               , "DTDHandler"
-                               , "DataBuffer"
-                               , "DataBufferByte"
-                               , "DataBufferDouble"
-                               , "DataBufferFloat"
-                               , "DataBufferInt"
-                               , "DataBufferShort"
-                               , "DataBufferUShort"
-                               , "DataFlavor"
-                               , "DataFormatException"
-                               , "DataInput"
-                               , "DataInputStream"
-                               , "DataLine"
-                               , "DataLine.Info"
-                               , "DataOutput"
-                               , "DataOutputStream"
-                               , "DataSource"
-                               , "DataTruncation"
-                               , "DatabaseMetaData"
-                               , "DatagramChannel"
-                               , "DatagramPacket"
-                               , "DatagramSocket"
-                               , "DatagramSocketImpl"
-                               , "DatagramSocketImplFactory"
-                               , "DatatypeConfigurationException"
-                               , "DatatypeConstants"
-                               , "DatatypeConstants.Field"
-                               , "DatatypeFactory"
-                               , "Date"
-                               , "DateFormat"
-                               , "DateFormat.Field"
-                               , "DateFormatSymbols"
-                               , "DateFormatter"
-                               , "DateTimeAtCompleted"
-                               , "DateTimeAtCreation"
-                               , "DateTimeAtProcessing"
-                               , "DateTimeSyntax"
-                               , "DebugGraphics"
-                               , "DecimalFormat"
-                               , "DecimalFormatSymbols"
-                               , "DeclHandler"
-                               , "DefaultBoundedRangeModel"
-                               , "DefaultButtonModel"
-                               , "DefaultCaret"
-                               , "DefaultCellEditor"
-                               , "DefaultColorSelectionModel"
-                               , "DefaultComboBoxModel"
-                               , "DefaultDesktopManager"
-                               , "DefaultEditorKit"
-                               , "DefaultEditorKit.BeepAction"
-                               , "DefaultEditorKit.CopyAction"
-                               , "DefaultEditorKit.CutAction"
-                               , "DefaultEditorKit.DefaultKeyTypedAction"
-                               , "DefaultEditorKit.InsertBreakAction"
-                               , "DefaultEditorKit.InsertContentAction"
-                               , "DefaultEditorKit.InsertTabAction"
-                               , "DefaultEditorKit.PasteAction"
-                               , "DefaultFocusManager"
-                               , "DefaultFocusTraversalPolicy"
-                               , "DefaultFormatter"
-                               , "DefaultFormatterFactory"
-                               , "DefaultHandler"
-                               , "DefaultHandler2"
-                               , "DefaultHighlighter"
-                               , "DefaultHighlighter.DefaultHighlightPainter"
-                               , "DefaultKeyboardFocusManager"
-                               , "DefaultListCellRenderer"
-                               , "DefaultListCellRenderer.UIResource"
-                               , "DefaultListModel"
-                               , "DefaultListSelectionModel"
-                               , "DefaultLoaderRepository"
-                               , "DefaultMenuLayout"
-                               , "DefaultMetalTheme"
-                               , "DefaultMutableTreeNode"
-                               , "DefaultPersistenceDelegate"
-                               , "DefaultSingleSelectionModel"
-                               , "DefaultStyledDocument"
-                               , "DefaultStyledDocument.AttributeUndoableEdit"
-                               , "DefaultStyledDocument.ElementSpec"
-                               , "DefaultTableCellRenderer"
-                               , "DefaultTableCellRenderer.UIResource"
-                               , "DefaultTableColumnModel"
-                               , "DefaultTableModel"
-                               , "DefaultTextUI"
-                               , "DefaultTreeCellEditor"
-                               , "DefaultTreeCellRenderer"
-                               , "DefaultTreeModel"
-                               , "DefaultTreeSelectionModel"
-                               , "DefinitionKind"
-                               , "DefinitionKindHelper"
-                               , "Deflater"
-                               , "DeflaterOutputStream"
-                               , "DelayQueue"
-                               , "Delayed"
-                               , "Delegate"
-                               , "DelegationPermission"
-                               , "Deprecated"
-                               , "Descriptor"
-                               , "DescriptorAccess"
-                               , "DescriptorSupport"
-                               , "DesignMode"
-                               , "DesktopIconUI"
-                               , "DesktopManager"
-                               , "DesktopPaneUI"
-                               , "Destination"
-                               , "DestroyFailedException"
-                               , "Destroyable"
-                               , "Dialog"
-                               , "Dictionary"
-                               , "DigestException"
-                               , "DigestInputStream"
-                               , "DigestOutputStream"
-                               , "Dimension"
-                               , "Dimension2D"
-                               , "DimensionUIResource"
-                               , "DirContext"
-                               , "DirObjectFactory"
-                               , "DirStateFactory"
-                               , "DirStateFactory.Result"
-                               , "DirectColorModel"
-                               , "DirectoryManager"
-                               , "DisplayMode"
-                               , "DnDConstants"
-                               , "Doc"
-                               , "DocAttribute"
-                               , "DocAttributeSet"
-                               , "DocFlavor"
-                               , "DocFlavor.BYTE_ARRAY"
-                               , "DocFlavor.CHAR_ARRAY"
-                               , "DocFlavor.INPUT_STREAM"
-                               , "DocFlavor.READER"
-                               , "DocFlavor.SERVICE_FORMATTED"
-                               , "DocFlavor.STRING"
-                               , "DocFlavor.URL"
-                               , "DocPrintJob"
-                               , "Document"
-                               , "DocumentBuilder"
-                               , "DocumentBuilderFactory"
-                               , "DocumentEvent"
-                               , "DocumentEvent.ElementChange"
-                               , "DocumentEvent.EventType"
-                               , "DocumentFilter"
-                               , "DocumentFilter.FilterBypass"
-                               , "DocumentFragment"
-                               , "DocumentHandler"
-                               , "DocumentListener"
-                               , "DocumentName"
-                               , "DocumentParser"
-                               , "DocumentType"
-                               , "Documented"
-                               , "DomainCombiner"
-                               , "DomainManager"
-                               , "DomainManagerOperations"
-                               , "Double"
-                               , "DoubleBuffer"
-                               , "DoubleHolder"
-                               , "DoubleSeqHelper"
-                               , "DoubleSeqHolder"
-                               , "DragGestureEvent"
-                               , "DragGestureListener"
-                               , "DragGestureRecognizer"
-                               , "DragSource"
-                               , "DragSourceAdapter"
-                               , "DragSourceContext"
-                               , "DragSourceDragEvent"
-                               , "DragSourceDropEvent"
-                               , "DragSourceEvent"
-                               , "DragSourceListener"
-                               , "DragSourceMotionListener"
-                               , "Driver"
-                               , "DriverManager"
-                               , "DriverPropertyInfo"
-                               , "DropTarget"
-                               , "DropTarget.DropTargetAutoScroller"
-                               , "DropTargetAdapter"
-                               , "DropTargetContext"
-                               , "DropTargetDragEvent"
-                               , "DropTargetDropEvent"
-                               , "DropTargetEvent"
-                               , "DropTargetListener"
-                               , "DuplicateFormatFlagsException"
-                               , "DuplicateName"
-                               , "DuplicateNameHelper"
-                               , "Duration"
-                               , "DynAny"
-                               , "DynAnyFactory"
-                               , "DynAnyFactoryHelper"
-                               , "DynAnyFactoryOperations"
-                               , "DynAnyHelper"
-                               , "DynAnyOperations"
-                               , "DynAnySeqHelper"
-                               , "DynArray"
-                               , "DynArrayHelper"
-                               , "DynArrayOperations"
-                               , "DynEnum"
-                               , "DynEnumHelper"
-                               , "DynEnumOperations"
-                               , "DynFixed"
-                               , "DynFixedHelper"
-                               , "DynFixedOperations"
-                               , "DynSequence"
-                               , "DynSequenceHelper"
-                               , "DynSequenceOperations"
-                               , "DynStruct"
-                               , "DynStructHelper"
-                               , "DynStructOperations"
-                               , "DynUnion"
-                               , "DynUnionHelper"
-                               , "DynUnionOperations"
-                               , "DynValue"
-                               , "DynValueBox"
-                               , "DynValueBoxOperations"
-                               , "DynValueCommon"
-                               , "DynValueCommonOperations"
-                               , "DynValueHelper"
-                               , "DynValueOperations"
-                               , "DynamicImplementation"
-                               , "DynamicMBean"
-                               , "ECField"
-                               , "ECFieldF2m"
-                               , "ECFieldFp"
-                               , "ECGenParameterSpec"
-                               , "ECKey"
-                               , "ECParameterSpec"
-                               , "ECPoint"
-                               , "ECPrivateKey"
-                               , "ECPrivateKeySpec"
-                               , "ECPublicKey"
-                               , "ECPublicKeySpec"
-                               , "ENCODING_CDR_ENCAPS"
-                               , "EOFException"
-                               , "EditorKit"
-                               , "Element"
-                               , "ElementIterator"
-                               , "ElementType"
-                               , "Ellipse2D"
-                               , "Ellipse2D.Double"
-                               , "Ellipse2D.Float"
-                               , "EllipticCurve"
-                               , "EmptyBorder"
-                               , "EmptyStackException"
-                               , "EncodedKeySpec"
-                               , "Encoder"
-                               , "Encoding"
-                               , "EncryptedPrivateKeyInfo"
-                               , "Entity"
-                               , "EntityReference"
-                               , "EntityResolver"
-                               , "EntityResolver2"
-                               , "Enum"
-                               , "EnumConstantNotPresentException"
-                               , "EnumControl"
-                               , "EnumControl.Type"
-                               , "EnumMap"
-                               , "EnumSet"
-                               , "EnumSyntax"
-                               , "Enumeration"
-                               , "Environment"
-                               , "Error"
-                               , "ErrorHandler"
-                               , "ErrorListener"
-                               , "ErrorManager"
-                               , "EtchedBorder"
-                               , "Event"
-                               , "EventContext"
-                               , "EventDirContext"
-                               , "EventHandler"
-                               , "EventListener"
-                               , "EventListenerList"
-                               , "EventListenerProxy"
-                               , "EventObject"
-                               , "EventQueue"
-                               , "EventSetDescriptor"
-                               , "Exception"
-                               , "ExceptionDetailMessage"
-                               , "ExceptionInInitializerError"
-                               , "ExceptionList"
-                               , "ExceptionListener"
-                               , "Exchanger"
-                               , "ExecutionException"
-                               , "Executor"
-                               , "ExecutorCompletionService"
-                               , "ExecutorService"
-                               , "Executors"
-                               , "ExemptionMechanism"
-                               , "ExemptionMechanismException"
-                               , "ExemptionMechanismSpi"
-                               , "ExpandVetoException"
-                               , "ExportException"
-                               , "Expression"
-                               , "ExtendedRequest"
-                               , "ExtendedResponse"
-                               , "Externalizable"
-                               , "FREE_MEM"
-                               , "FactoryConfigurationError"
-                               , "FailedLoginException"
-                               , "FeatureDescriptor"
-                               , "Fidelity"
-                               , "Field"
-                               , "FieldNameHelper"
-                               , "FieldPosition"
-                               , "FieldView"
-                               , "File"
-                               , "FileCacheImageInputStream"
-                               , "FileCacheImageOutputStream"
-                               , "FileChannel"
-                               , "FileChannel.MapMode"
-                               , "FileChooserUI"
-                               , "FileDescriptor"
-                               , "FileDialog"
-                               , "FileFilter"
-                               , "FileHandler"
-                               , "FileImageInputStream"
-                               , "FileImageOutputStream"
-                               , "FileInputStream"
-                               , "FileLock"
-                               , "FileLockInterruptionException"
-                               , "FileNameMap"
-                               , "FileNotFoundException"
-                               , "FileOutputStream"
-                               , "FilePermission"
-                               , "FileReader"
-                               , "FileSystemView"
-                               , "FileView"
-                               , "FileWriter"
-                               , "FilenameFilter"
-                               , "Filter"
-                               , "FilterInputStream"
-                               , "FilterOutputStream"
-                               , "FilterReader"
-                               , "FilterWriter"
-                               , "FilteredImageSource"
-                               , "FilteredRowSet"
-                               , "Finishings"
-                               , "FixedHeightLayoutCache"
-                               , "FixedHolder"
-                               , "FlatteningPathIterator"
-                               , "FlavorEvent"
-                               , "FlavorException"
-                               , "FlavorListener"
-                               , "FlavorMap"
-                               , "FlavorTable"
-                               , "Float"
-                               , "FloatBuffer"
-                               , "FloatControl"
-                               , "FloatControl.Type"
-                               , "FloatHolder"
-                               , "FloatSeqHelper"
-                               , "FloatSeqHolder"
-                               , "FlowLayout"
-                               , "FlowView"
-                               , "FlowView.FlowStrategy"
-                               , "Flushable"
-                               , "FocusAdapter"
-                               , "FocusEvent"
-                               , "FocusListener"
-                               , "FocusManager"
-                               , "FocusTraversalPolicy"
-                               , "Font"
-                               , "FontFormatException"
-                               , "FontMetrics"
-                               , "FontRenderContext"
-                               , "FontUIResource"
-                               , "FormSubmitEvent"
-                               , "FormSubmitEvent.MethodType"
-                               , "FormView"
-                               , "Format"
-                               , "Format.Field"
-                               , "FormatConversionProvider"
-                               , "FormatFlagsConversionMismatchException"
-                               , "FormatMismatch"
-                               , "FormatMismatchHelper"
-                               , "Formattable"
-                               , "FormattableFlags"
-                               , "Formatter"
-                               , "FormatterClosedException"
-                               , "ForwardRequest"
-                               , "ForwardRequestHelper"
-                               , "Frame"
-                               , "Future"
-                               , "FutureTask"
-                               , "GSSContext"
-                               , "GSSCredential"
-                               , "GSSException"
-                               , "GSSManager"
-                               , "GSSName"
-                               , "GZIPInputStream"
-                               , "GZIPOutputStream"
-                               , "GapContent"
-                               , "GarbageCollectorMXBean"
-                               , "GatheringByteChannel"
-                               , "GaugeMonitor"
-                               , "GaugeMonitorMBean"
-                               , "GeneralPath"
-                               , "GeneralSecurityException"
-                               , "GenericArrayType"
-                               , "GenericDeclaration"
-                               , "GenericSignatureFormatError"
-                               , "GlyphJustificationInfo"
-                               , "GlyphMetrics"
-                               , "GlyphVector"
-                               , "GlyphView"
-                               , "GlyphView.GlyphPainter"
-                               , "GradientPaint"
-                               , "GraphicAttribute"
-                               , "Graphics"
-                               , "Graphics2D"
-                               , "GraphicsConfigTemplate"
-                               , "GraphicsConfiguration"
-                               , "GraphicsDevice"
-                               , "GraphicsEnvironment"
-                               , "GrayFilter"
-                               , "GregorianCalendar"
-                               , "GridBagConstraints"
-                               , "GridBagLayout"
-                               , "GridLayout"
-                               , "Group"
-                               , "Guard"
-                               , "GuardedObject"
-                               , "HOLDING"
-                               , "HTML"
-                               , "HTML.Attribute"
-                               , "HTML.Tag"
-                               , "HTML.UnknownTag"
-                               , "HTMLDocument"
-                               , "HTMLDocument.Iterator"
-                               , "HTMLEditorKit"
-                               , "HTMLEditorKit.HTMLFactory"
-                               , "HTMLEditorKit.HTMLTextAction"
-                               , "HTMLEditorKit.InsertHTMLTextAction"
-                               , "HTMLEditorKit.LinkController"
-                               , "HTMLEditorKit.Parser"
-                               , "HTMLEditorKit.ParserCallback"
-                               , "HTMLFrameHyperlinkEvent"
-                               , "HTMLWriter"
-                               , "Handler"
-                               , "HandlerBase"
-                               , "HandshakeCompletedEvent"
-                               , "HandshakeCompletedListener"
-                               , "HasControls"
-                               , "HashAttributeSet"
-                               , "HashDocAttributeSet"
-                               , "HashMap"
-                               , "HashPrintJobAttributeSet"
-                               , "HashPrintRequestAttributeSet"
-                               , "HashPrintServiceAttributeSet"
-                               , "HashSet"
-                               , "Hashtable"
-                               , "HeadlessException"
-                               , "HierarchyBoundsAdapter"
-                               , "HierarchyBoundsListener"
-                               , "HierarchyEvent"
-                               , "HierarchyListener"
-                               , "Highlighter"
-                               , "Highlighter.Highlight"
-                               , "Highlighter.HighlightPainter"
-                               , "HostnameVerifier"
-                               , "HttpRetryException"
-                               , "HttpURLConnection"
-                               , "HttpsURLConnection"
-                               , "HyperlinkEvent"
-                               , "HyperlinkEvent.EventType"
-                               , "HyperlinkListener"
-                               , "ICC_ColorSpace"
-                               , "ICC_Profile"
-                               , "ICC_ProfileGray"
-                               , "ICC_ProfileRGB"
-                               , "IDLEntity"
-                               , "IDLType"
-                               , "IDLTypeHelper"
-                               , "IDLTypeOperations"
-                               , "ID_ASSIGNMENT_POLICY_ID"
-                               , "ID_UNIQUENESS_POLICY_ID"
-                               , "IIOByteBuffer"
-                               , "IIOException"
-                               , "IIOImage"
-                               , "IIOInvalidTreeException"
-                               , "IIOMetadata"
-                               , "IIOMetadataController"
-                               , "IIOMetadataFormat"
-                               , "IIOMetadataFormatImpl"
-                               , "IIOMetadataNode"
-                               , "IIOParam"
-                               , "IIOParamController"
-                               , "IIOReadProgressListener"
-                               , "IIOReadUpdateListener"
-                               , "IIOReadWarningListener"
-                               , "IIORegistry"
-                               , "IIOServiceProvider"
-                               , "IIOWriteProgressListener"
-                               , "IIOWriteWarningListener"
-                               , "IMPLICIT_ACTIVATION_POLICY_ID"
-                               , "IMP_LIMIT"
-                               , "INACTIVE"
-                               , "INITIALIZE"
-                               , "INTERNAL"
-                               , "INTF_REPOS"
-                               , "INVALID_ACTIVITY"
-                               , "INVALID_TRANSACTION"
-                               , "INV_FLAG"
-                               , "INV_IDENT"
-                               , "INV_OBJREF"
-                               , "INV_POLICY"
-                               , "IOException"
-                               , "IOR"
-                               , "IORHelper"
-                               , "IORHolder"
-                               , "IORInfo"
-                               , "IORInfoOperations"
-                               , "IORInterceptor"
-                               , "IORInterceptorOperations"
-                               , "IORInterceptor_3_0"
-                               , "IORInterceptor_3_0Helper"
-                               , "IORInterceptor_3_0Holder"
-                               , "IORInterceptor_3_0Operations"
-                               , "IRObject"
-                               , "IRObjectOperations"
-                               , "Icon"
-                               , "IconUIResource"
-                               , "IconView"
-                               , "IdAssignmentPolicy"
-                               , "IdAssignmentPolicyOperations"
-                               , "IdAssignmentPolicyValue"
-                               , "IdUniquenessPolicy"
-                               , "IdUniquenessPolicyOperations"
-                               , "IdUniquenessPolicyValue"
-                               , "IdentifierHelper"
-                               , "Identity"
-                               , "IdentityHashMap"
-                               , "IdentityScope"
-                               , "IllegalAccessError"
-                               , "IllegalAccessException"
-                               , "IllegalArgumentException"
-                               , "IllegalBlockSizeException"
-                               , "IllegalBlockingModeException"
-                               , "IllegalCharsetNameException"
-                               , "IllegalClassFormatException"
-                               , "IllegalComponentStateException"
-                               , "IllegalFormatCodePointException"
-                               , "IllegalFormatConversionException"
-                               , "IllegalFormatException"
-                               , "IllegalFormatFlagsException"
-                               , "IllegalFormatPrecisionException"
-                               , "IllegalFormatWidthException"
-                               , "IllegalMonitorStateException"
-                               , "IllegalPathStateException"
-                               , "IllegalSelectorException"
-                               , "IllegalStateException"
-                               , "IllegalThreadStateException"
-                               , "Image"
-                               , "ImageCapabilities"
-                               , "ImageConsumer"
-                               , "ImageFilter"
-                               , "ImageGraphicAttribute"
-                               , "ImageIO"
-                               , "ImageIcon"
-                               , "ImageInputStream"
-                               , "ImageInputStreamImpl"
-                               , "ImageInputStreamSpi"
-                               , "ImageObserver"
-                               , "ImageOutputStream"
-                               , "ImageOutputStreamImpl"
-                               , "ImageOutputStreamSpi"
-                               , "ImageProducer"
-                               , "ImageReadParam"
-                               , "ImageReader"
-                               , "ImageReaderSpi"
-                               , "ImageReaderWriterSpi"
-                               , "ImageTranscoder"
-                               , "ImageTranscoderSpi"
-                               , "ImageTypeSpecifier"
-                               , "ImageView"
-                               , "ImageWriteParam"
-                               , "ImageWriter"
-                               , "ImageWriterSpi"
-                               , "ImagingOpException"
-                               , "ImplicitActivationPolicy"
-                               , "ImplicitActivationPolicyOperations"
-                               , "ImplicitActivationPolicyValue"
-                               , "IncompatibleClassChangeError"
-                               , "IncompleteAnnotationException"
-                               , "InconsistentTypeCode"
-                               , "InconsistentTypeCodeHelper"
-                               , "IndexColorModel"
-                               , "IndexOutOfBoundsException"
-                               , "IndexedPropertyChangeEvent"
-                               , "IndexedPropertyDescriptor"
-                               , "IndirectionException"
-                               , "Inet4Address"
-                               , "Inet6Address"
-                               , "InetAddress"
-                               , "InetSocketAddress"
-                               , "Inflater"
-                               , "InflaterInputStream"
-                               , "InheritableThreadLocal"
-                               , "Inherited"
-                               , "InitialContext"
-                               , "InitialContextFactory"
-                               , "InitialContextFactoryBuilder"
-                               , "InitialDirContext"
-                               , "InitialLdapContext"
-                               , "InlineView"
-                               , "InputContext"
-                               , "InputEvent"
-                               , "InputMap"
-                               , "InputMapUIResource"
-                               , "InputMethod"
-                               , "InputMethodContext"
-                               , "InputMethodDescriptor"
-                               , "InputMethodEvent"
-                               , "InputMethodHighlight"
-                               , "InputMethodListener"
-                               , "InputMethodRequests"
-                               , "InputMismatchException"
-                               , "InputSource"
-                               , "InputStream"
-                               , "InputStreamReader"
-                               , "InputSubset"
-                               , "InputVerifier"
-                               , "Insets"
-                               , "InsetsUIResource"
-                               , "InstanceAlreadyExistsException"
-                               , "InstanceNotFoundException"
-                               , "InstantiationError"
-                               , "InstantiationException"
-                               , "Instrument"
-                               , "Instrumentation"
-                               , "InsufficientResourcesException"
-                               , "IntBuffer"
-                               , "IntHolder"
-                               , "Integer"
-                               , "IntegerSyntax"
-                               , "Interceptor"
-                               , "InterceptorOperations"
-                               , "InternalError"
-                               , "InternalFrameAdapter"
-                               , "InternalFrameEvent"
-                               , "InternalFrameFocusTraversalPolicy"
-                               , "InternalFrameListener"
-                               , "InternalFrameUI"
-                               , "InternationalFormatter"
-                               , "InterruptedException"
-                               , "InterruptedIOException"
-                               , "InterruptedNamingException"
-                               , "InterruptibleChannel"
-                               , "IntrospectionException"
-                               , "Introspector"
-                               , "Invalid"
-                               , "InvalidActivityException"
-                               , "InvalidAddress"
-                               , "InvalidAddressHelper"
-                               , "InvalidAddressHolder"
-                               , "InvalidAlgorithmParameterException"
-                               , "InvalidApplicationException"
-                               , "InvalidAttributeIdentifierException"
-                               , "InvalidAttributeValueException"
-                               , "InvalidAttributesException"
-                               , "InvalidClassException"
-                               , "InvalidDnDOperationException"
-                               , "InvalidKeyException"
-                               , "InvalidKeySpecException"
-                               , "InvalidMarkException"
-                               , "InvalidMidiDataException"
-                               , "InvalidName"
-                               , "InvalidNameException"
-                               , "InvalidNameHelper"
-                               , "InvalidNameHolder"
-                               , "InvalidObjectException"
-                               , "InvalidOpenTypeException"
-                               , "InvalidParameterException"
-                               , "InvalidParameterSpecException"
-                               , "InvalidPolicy"
-                               , "InvalidPolicyHelper"
-                               , "InvalidPreferencesFormatException"
-                               , "InvalidPropertiesFormatException"
-                               , "InvalidRelationIdException"
-                               , "InvalidRelationServiceException"
-                               , "InvalidRelationTypeException"
-                               , "InvalidRoleInfoException"
-                               , "InvalidRoleValueException"
-                               , "InvalidSearchControlsException"
-                               , "InvalidSearchFilterException"
-                               , "InvalidSeq"
-                               , "InvalidSlot"
-                               , "InvalidSlotHelper"
-                               , "InvalidTargetObjectTypeException"
-                               , "InvalidTransactionException"
-                               , "InvalidTypeForEncoding"
-                               , "InvalidTypeForEncodingHelper"
-                               , "InvalidValue"
-                               , "InvalidValueHelper"
-                               , "InvocationEvent"
-                               , "InvocationHandler"
-                               , "InvocationTargetException"
-                               , "InvokeHandler"
-                               , "IstringHelper"
-                               , "ItemEvent"
-                               , "ItemListener"
-                               , "ItemSelectable"
-                               , "Iterable"
-                               , "Iterator"
-                               , "IvParameterSpec"
-                               , "JApplet"
-                               , "JButton"
-                               , "JCheckBox"
-                               , "JCheckBoxMenuItem"
-                               , "JColorChooser"
-                               , "JComboBox"
-                               , "JComboBox.KeySelectionManager"
-                               , "JComponent"
-                               , "JDesktopPane"
-                               , "JDialog"
-                               , "JEditorPane"
-                               , "JFileChooser"
-                               , "JFormattedTextField"
-                               , "JFormattedTextField.AbstractFormatter"
-                               , "JFormattedTextField.AbstractFormatterFactory"
-                               , "JFrame"
-                               , "JInternalFrame"
-                               , "JInternalFrame.JDesktopIcon"
-                               , "JLabel"
-                               , "JLayeredPane"
-                               , "JList"
-                               , "JMException"
-                               , "JMRuntimeException"
-                               , "JMXAuthenticator"
-                               , "JMXConnectionNotification"
-                               , "JMXConnector"
-                               , "JMXConnectorFactory"
-                               , "JMXConnectorProvider"
-                               , "JMXConnectorServer"
-                               , "JMXConnectorServerFactory"
-                               , "JMXConnectorServerMBean"
-                               , "JMXConnectorServerProvider"
-                               , "JMXPrincipal"
-                               , "JMXProviderException"
-                               , "JMXServerErrorException"
-                               , "JMXServiceURL"
-                               , "JMenu"
-                               , "JMenuBar"
-                               , "JMenuItem"
-                               , "JOptionPane"
-                               , "JPEGHuffmanTable"
-                               , "JPEGImageReadParam"
-                               , "JPEGImageWriteParam"
-                               , "JPEGQTable"
-                               , "JPanel"
-                               , "JPasswordField"
-                               , "JPopupMenu"
-                               , "JPopupMenu.Separator"
-                               , "JProgressBar"
-                               , "JRadioButton"
-                               , "JRadioButtonMenuItem"
-                               , "JRootPane"
-                               , "JScrollBar"
-                               , "JScrollPane"
-                               , "JSeparator"
-                               , "JSlider"
-                               , "JSpinner"
-                               , "JSpinner.DateEditor"
-                               , "JSpinner.DefaultEditor"
-                               , "JSpinner.ListEditor"
-                               , "JSpinner.NumberEditor"
-                               , "JSplitPane"
-                               , "JTabbedPane"
-                               , "JTable"
-                               , "JTable.PrintMode"
-                               , "JTableHeader"
-                               , "JTextArea"
-                               , "JTextComponent"
-                               , "JTextComponent.KeyBinding"
-                               , "JTextField"
-                               , "JTextPane"
-                               , "JToggleButton"
-                               , "JToggleButton.ToggleButtonModel"
-                               , "JToolBar"
-                               , "JToolBar.Separator"
-                               , "JToolTip"
-                               , "JTree"
-                               , "JTree.DynamicUtilTreeNode"
-                               , "JTree.EmptySelectionModel"
-                               , "JViewport"
-                               , "JWindow"
-                               , "JarEntry"
-                               , "JarException"
-                               , "JarFile"
-                               , "JarInputStream"
-                               , "JarOutputStream"
-                               , "JarURLConnection"
-                               , "JdbcRowSet"
-                               , "JobAttributes"
-                               , "JobAttributes.DefaultSelectionType"
-                               , "JobAttributes.DestinationType"
-                               , "JobAttributes.DialogType"
-                               , "JobAttributes.MultipleDocumentHandlingType"
-                               , "JobAttributes.SidesType"
-                               , "JobHoldUntil"
-                               , "JobImpressions"
-                               , "JobImpressionsCompleted"
-                               , "JobImpressionsSupported"
-                               , "JobKOctets"
-                               , "JobKOctetsProcessed"
-                               , "JobKOctetsSupported"
-                               , "JobMediaSheets"
-                               , "JobMediaSheetsCompleted"
-                               , "JobMediaSheetsSupported"
-                               , "JobMessageFromOperator"
-                               , "JobName"
-                               , "JobOriginatingUserName"
-                               , "JobPriority"
-                               , "JobPrioritySupported"
-                               , "JobSheets"
-                               , "JobState"
-                               , "JobStateReason"
-                               , "JobStateReasons"
-                               , "JoinRowSet"
-                               , "Joinable"
-                               , "KerberosKey"
-                               , "KerberosPrincipal"
-                               , "KerberosTicket"
-                               , "Kernel"
-                               , "Key"
-                               , "KeyAdapter"
-                               , "KeyAgreement"
-                               , "KeyAgreementSpi"
-                               , "KeyAlreadyExistsException"
-                               , "KeyEvent"
-                               , "KeyEventDispatcher"
-                               , "KeyEventPostProcessor"
-                               , "KeyException"
-                               , "KeyFactory"
-                               , "KeyFactorySpi"
-                               , "KeyGenerator"
-                               , "KeyGeneratorSpi"
-                               , "KeyListener"
-                               , "KeyManagementException"
-                               , "KeyManager"
-                               , "KeyManagerFactory"
-                               , "KeyManagerFactorySpi"
-                               , "KeyPair"
-                               , "KeyPairGenerator"
-                               , "KeyPairGeneratorSpi"
-                               , "KeyRep"
-                               , "KeyRep.Type"
-                               , "KeySpec"
-                               , "KeyStore"
-                               , "KeyStore.Builder"
-                               , "KeyStore.CallbackHandlerProtection"
-                               , "KeyStore.Entry"
-                               , "KeyStore.LoadStoreParameter"
-                               , "KeyStore.PasswordProtection"
-                               , "KeyStore.PrivateKeyEntry"
-                               , "KeyStore.ProtectionParameter"
-                               , "KeyStore.SecretKeyEntry"
-                               , "KeyStore.TrustedCertificateEntry"
-                               , "KeyStoreBuilderParameters"
-                               , "KeyStoreException"
-                               , "KeyStoreSpi"
-                               , "KeyStroke"
-                               , "KeyboardFocusManager"
-                               , "Keymap"
-                               , "LDAPCertStoreParameters"
-                               , "LIFESPAN_POLICY_ID"
-                               , "LOCATION_FORWARD"
-                               , "LSException"
-                               , "LSInput"
-                               , "LSLoadEvent"
-                               , "LSOutput"
-                               , "LSParser"
-                               , "LSParserFilter"
-                               , "LSProgressEvent"
-                               , "LSResourceResolver"
-                               , "LSSerializer"
-                               , "LSSerializerFilter"
-                               , "Label"
-                               , "LabelUI"
-                               , "LabelView"
-                               , "LanguageCallback"
-                               , "LastOwnerException"
-                               , "LayeredHighlighter"
-                               , "LayeredHighlighter.LayerPainter"
-                               , "LayoutFocusTraversalPolicy"
-                               , "LayoutManager"
-                               , "LayoutManager2"
-                               , "LayoutQueue"
-                               , "LdapContext"
-                               , "LdapName"
-                               , "LdapReferralException"
-                               , "Lease"
-                               , "Level"
-                               , "LexicalHandler"
-                               , "LifespanPolicy"
-                               , "LifespanPolicyOperations"
-                               , "LifespanPolicyValue"
-                               , "LimitExceededException"
-                               , "Line"
-                               , "Line.Info"
-                               , "Line2D"
-                               , "Line2D.Double"
-                               , "Line2D.Float"
-                               , "LineBorder"
-                               , "LineBreakMeasurer"
-                               , "LineEvent"
-                               , "LineEvent.Type"
-                               , "LineListener"
-                               , "LineMetrics"
-                               , "LineNumberInputStream"
-                               , "LineNumberReader"
-                               , "LineUnavailableException"
-                               , "LinkException"
-                               , "LinkLoopException"
-                               , "LinkRef"
-                               , "LinkageError"
-                               , "LinkedBlockingQueue"
-                               , "LinkedHashMap"
-                               , "LinkedHashSet"
-                               , "LinkedList"
-                               , "List"
-                               , "ListCellRenderer"
-                               , "ListDataEvent"
-                               , "ListDataListener"
-                               , "ListIterator"
-                               , "ListModel"
-                               , "ListResourceBundle"
-                               , "ListSelectionEvent"
-                               , "ListSelectionListener"
-                               , "ListSelectionModel"
-                               , "ListUI"
-                               , "ListView"
-                               , "ListenerNotFoundException"
-                               , "LoaderHandler"
-                               , "LocalObject"
-                               , "Locale"
-                               , "LocateRegistry"
-                               , "Locator"
-                               , "Locator2"
-                               , "Locator2Impl"
-                               , "LocatorImpl"
-                               , "Lock"
-                               , "LockSupport"
-                               , "LogManager"
-                               , "LogRecord"
-                               , "LogStream"
-                               , "Logger"
-                               , "LoggingMXBean"
-                               , "LoggingPermission"
-                               , "LoginContext"
-                               , "LoginException"
-                               , "LoginModule"
-                               , "Long"
-                               , "LongBuffer"
-                               , "LongHolder"
-                               , "LongLongSeqHelper"
-                               , "LongLongSeqHolder"
-                               , "LongSeqHelper"
-                               , "LongSeqHolder"
-                               , "LookAndFeel"
-                               , "LookupOp"
-                               , "LookupTable"
-                               , "MARSHAL"
-                               , "MBeanAttributeInfo"
-                               , "MBeanConstructorInfo"
-                               , "MBeanException"
-                               , "MBeanFeatureInfo"
-                               , "MBeanInfo"
-                               , "MBeanNotificationInfo"
-                               , "MBeanOperationInfo"
-                               , "MBeanParameterInfo"
-                               , "MBeanPermission"
-                               , "MBeanRegistration"
-                               , "MBeanRegistrationException"
-                               , "MBeanServer"
-                               , "MBeanServerBuilder"
-                               , "MBeanServerConnection"
-                               , "MBeanServerDelegate"
-                               , "MBeanServerDelegateMBean"
-                               , "MBeanServerFactory"
-                               , "MBeanServerForwarder"
-                               , "MBeanServerInvocationHandler"
-                               , "MBeanServerNotification"
-                               , "MBeanServerNotificationFilter"
-                               , "MBeanServerPermission"
-                               , "MBeanTrustPermission"
-                               , "MGF1ParameterSpec"
-                               , "MLet"
-                               , "MLetMBean"
-                               , "Mac"
-                               , "MacSpi"
-                               , "MalformedInputException"
-                               , "MalformedLinkException"
-                               , "MalformedObjectNameException"
-                               , "MalformedParameterizedTypeException"
-                               , "MalformedURLException"
-                               , "ManageReferralControl"
-                               , "ManagementFactory"
-                               , "ManagementPermission"
-                               , "ManagerFactoryParameters"
-                               , "Manifest"
-                               , "Map"
-                               , "Map.Entry"
-                               , "MappedByteBuffer"
-                               , "MarshalException"
-                               , "MarshalledObject"
-                               , "MaskFormatter"
-                               , "MatchResult"
-                               , "Matcher"
-                               , "Math"
-                               , "MathContext"
-                               , "MatteBorder"
-                               , "Media"
-                               , "MediaName"
-                               , "MediaPrintableArea"
-                               , "MediaSize"
-                               , "MediaSize.Engineering"
-                               , "MediaSize.ISO"
-                               , "MediaSize.JIS"
-                               , "MediaSize.NA"
-                               , "MediaSize.Other"
-                               , "MediaSizeName"
-                               , "MediaTracker"
-                               , "MediaTray"
-                               , "Member"
-                               , "MemoryCacheImageInputStream"
-                               , "MemoryCacheImageOutputStream"
-                               , "MemoryHandler"
-                               , "MemoryImageSource"
-                               , "MemoryMXBean"
-                               , "MemoryManagerMXBean"
-                               , "MemoryNotificationInfo"
-                               , "MemoryPoolMXBean"
-                               , "MemoryType"
-                               , "MemoryUsage"
-                               , "Menu"
-                               , "MenuBar"
-                               , "MenuBarUI"
-                               , "MenuComponent"
-                               , "MenuContainer"
-                               , "MenuDragMouseEvent"
-                               , "MenuDragMouseListener"
-                               , "MenuElement"
-                               , "MenuEvent"
-                               , "MenuItem"
-                               , "MenuItemUI"
-                               , "MenuKeyEvent"
-                               , "MenuKeyListener"
-                               , "MenuListener"
-                               , "MenuSelectionManager"
-                               , "MenuShortcut"
-                               , "MessageDigest"
-                               , "MessageDigestSpi"
-                               , "MessageFormat"
-                               , "MessageFormat.Field"
-                               , "MessageProp"
-                               , "MetaEventListener"
-                               , "MetaMessage"
-                               , "MetalBorders"
-                               , "MetalBorders.ButtonBorder"
-                               , "MetalBorders.Flush3DBorder"
-                               , "MetalBorders.InternalFrameBorder"
-                               , "MetalBorders.MenuBarBorder"
-                               , "MetalBorders.MenuItemBorder"
-                               , "MetalBorders.OptionDialogBorder"
-                               , "MetalBorders.PaletteBorder"
-                               , "MetalBorders.PopupMenuBorder"
-                               , "MetalBorders.RolloverButtonBorder"
-                               , "MetalBorders.ScrollPaneBorder"
-                               , "MetalBorders.TableHeaderBorder"
-                               , "MetalBorders.TextFieldBorder"
-                               , "MetalBorders.ToggleButtonBorder"
-                               , "MetalBorders.ToolBarBorder"
-                               , "MetalButtonUI"
-                               , "MetalCheckBoxIcon"
-                               , "MetalCheckBoxUI"
-                               , "MetalComboBoxButton"
-                               , "MetalComboBoxEditor"
-                               , "MetalComboBoxEditor.UIResource"
-                               , "MetalComboBoxIcon"
-                               , "MetalComboBoxUI"
-                               , "MetalDesktopIconUI"
-                               , "MetalFileChooserUI"
-                               , "MetalIconFactory"
-                               , "MetalIconFactory.FileIcon16"
-                               , "MetalIconFactory.FolderIcon16"
-                               , "MetalIconFactory.PaletteCloseIcon"
-                               , "MetalIconFactory.TreeControlIcon"
-                               , "MetalIconFactory.TreeFolderIcon"
-                               , "MetalIconFactory.TreeLeafIcon"
-                               , "MetalInternalFrameTitlePane"
-                               , "MetalInternalFrameUI"
-                               , "MetalLabelUI"
-                               , "MetalLookAndFeel"
-                               , "MetalMenuBarUI"
-                               , "MetalPopupMenuSeparatorUI"
-                               , "MetalProgressBarUI"
-                               , "MetalRadioButtonUI"
-                               , "MetalRootPaneUI"
-                               , "MetalScrollBarUI"
-                               , "MetalScrollButton"
-                               , "MetalScrollPaneUI"
-                               , "MetalSeparatorUI"
-                               , "MetalSliderUI"
-                               , "MetalSplitPaneUI"
-                               , "MetalTabbedPaneUI"
-                               , "MetalTextFieldUI"
-                               , "MetalTheme"
-                               , "MetalToggleButtonUI"
-                               , "MetalToolBarUI"
-                               , "MetalToolTipUI"
-                               , "MetalTreeUI"
-                               , "Method"
-                               , "MethodDescriptor"
-                               , "MidiChannel"
-                               , "MidiDevice"
-                               , "MidiDevice.Info"
-                               , "MidiDeviceProvider"
-                               , "MidiEvent"
-                               , "MidiFileFormat"
-                               , "MidiFileReader"
-                               , "MidiFileWriter"
-                               , "MidiMessage"
-                               , "MidiSystem"
-                               , "MidiUnavailableException"
-                               , "MimeTypeParseException"
-                               , "MinimalHTMLWriter"
-                               , "MissingFormatArgumentException"
-                               , "MissingFormatWidthException"
-                               , "MissingResourceException"
-                               , "Mixer"
-                               , "Mixer.Info"
-                               , "MixerProvider"
-                               , "ModelMBean"
-                               , "ModelMBeanAttributeInfo"
-                               , "ModelMBeanConstructorInfo"
-                               , "ModelMBeanInfo"
-                               , "ModelMBeanInfoSupport"
-                               , "ModelMBeanNotificationBroadcaster"
-                               , "ModelMBeanNotificationInfo"
-                               , "ModelMBeanOperationInfo"
-                               , "ModificationItem"
-                               , "Modifier"
-                               , "Monitor"
-                               , "MonitorMBean"
-                               , "MonitorNotification"
-                               , "MonitorSettingException"
-                               , "MouseAdapter"
-                               , "MouseDragGestureRecognizer"
-                               , "MouseEvent"
-                               , "MouseInfo"
-                               , "MouseInputAdapter"
-                               , "MouseInputListener"
-                               , "MouseListener"
-                               , "MouseMotionAdapter"
-                               , "MouseMotionListener"
-                               , "MouseWheelEvent"
-                               , "MouseWheelListener"
-                               , "MultiButtonUI"
-                               , "MultiColorChooserUI"
-                               , "MultiComboBoxUI"
-                               , "MultiDesktopIconUI"
-                               , "MultiDesktopPaneUI"
-                               , "MultiDoc"
-                               , "MultiDocPrintJob"
-                               , "MultiDocPrintService"
-                               , "MultiFileChooserUI"
-                               , "MultiInternalFrameUI"
-                               , "MultiLabelUI"
-                               , "MultiListUI"
-                               , "MultiLookAndFeel"
-                               , "MultiMenuBarUI"
-                               , "MultiMenuItemUI"
-                               , "MultiOptionPaneUI"
-                               , "MultiPanelUI"
-                               , "MultiPixelPackedSampleModel"
-                               , "MultiPopupMenuUI"
-                               , "MultiProgressBarUI"
-                               , "MultiRootPaneUI"
-                               , "MultiScrollBarUI"
-                               , "MultiScrollPaneUI"
-                               , "MultiSeparatorUI"
-                               , "MultiSliderUI"
-                               , "MultiSpinnerUI"
-                               , "MultiSplitPaneUI"
-                               , "MultiTabbedPaneUI"
-                               , "MultiTableHeaderUI"
-                               , "MultiTableUI"
-                               , "MultiTextUI"
-                               , "MultiToolBarUI"
-                               , "MultiToolTipUI"
-                               , "MultiTreeUI"
-                               , "MultiViewportUI"
-                               , "MulticastSocket"
-                               , "MultipleComponentProfileHelper"
-                               , "MultipleComponentProfileHolder"
-                               , "MultipleDocumentHandling"
-                               , "MultipleMaster"
-                               , "MutableAttributeSet"
-                               , "MutableComboBoxModel"
-                               , "MutableTreeNode"
-                               , "NON_EXISTENT"
-                               , "NO_IMPLEMENT"
-                               , "NO_MEMORY"
-                               , "NO_PERMISSION"
-                               , "NO_RESOURCES"
-                               , "NO_RESPONSE"
-                               , "NVList"
-                               , "Name"
-                               , "NameAlreadyBoundException"
-                               , "NameCallback"
-                               , "NameClassPair"
-                               , "NameComponent"
-                               , "NameComponentHelper"
-                               , "NameComponentHolder"
-                               , "NameDynAnyPair"
-                               , "NameDynAnyPairHelper"
-                               , "NameDynAnyPairSeqHelper"
-                               , "NameHelper"
-                               , "NameHolder"
-                               , "NameList"
-                               , "NameNotFoundException"
-                               , "NameParser"
-                               , "NameValuePair"
-                               , "NameValuePairHelper"
-                               , "NameValuePairSeqHelper"
-                               , "NamedNodeMap"
-                               , "NamedValue"
-                               , "NamespaceChangeListener"
-                               , "NamespaceContext"
-                               , "NamespaceSupport"
-                               , "Naming"
-                               , "NamingContext"
-                               , "NamingContextExt"
-                               , "NamingContextExtHelper"
-                               , "NamingContextExtHolder"
-                               , "NamingContextExtOperations"
-                               , "NamingContextExtPOA"
-                               , "NamingContextHelper"
-                               , "NamingContextHolder"
-                               , "NamingContextOperations"
-                               , "NamingContextPOA"
-                               , "NamingEnumeration"
-                               , "NamingEvent"
-                               , "NamingException"
-                               , "NamingExceptionEvent"
-                               , "NamingListener"
-                               , "NamingManager"
-                               , "NamingSecurityException"
-                               , "NavigationFilter"
-                               , "NavigationFilter.FilterBypass"
-                               , "NegativeArraySizeException"
-                               , "NetPermission"
-                               , "NetworkInterface"
-                               , "NoClassDefFoundError"
-                               , "NoConnectionPendingException"
-                               , "NoContext"
-                               , "NoContextHelper"
-                               , "NoInitialContextException"
-                               , "NoPermissionException"
-                               , "NoRouteToHostException"
-                               , "NoServant"
-                               , "NoServantHelper"
-                               , "NoSuchAlgorithmException"
-                               , "NoSuchAttributeException"
-                               , "NoSuchElementException"
-                               , "NoSuchFieldError"
-                               , "NoSuchFieldException"
-                               , "NoSuchMethodError"
-                               , "NoSuchMethodException"
-                               , "NoSuchObjectException"
-                               , "NoSuchPaddingException"
-                               , "NoSuchProviderException"
-                               , "Node"
-                               , "NodeChangeEvent"
-                               , "NodeChangeListener"
-                               , "NodeList"
-                               , "NonReadableChannelException"
-                               , "NonWritableChannelException"
-                               , "NoninvertibleTransformException"
-                               , "NotActiveException"
-                               , "NotBoundException"
-                               , "NotCompliantMBeanException"
-                               , "NotContextException"
-                               , "NotEmpty"
-                               , "NotEmptyHelper"
-                               , "NotEmptyHolder"
-                               , "NotFound"
-                               , "NotFoundHelper"
-                               , "NotFoundHolder"
-                               , "NotFoundReason"
-                               , "NotFoundReasonHelper"
-                               , "NotFoundReasonHolder"
-                               , "NotOwnerException"
-                               , "NotSerializableException"
-                               , "NotYetBoundException"
-                               , "NotYetConnectedException"
-                               , "Notation"
-                               , "Notification"
-                               , "NotificationBroadcaster"
-                               , "NotificationBroadcasterSupport"
-                               , "NotificationEmitter"
-                               , "NotificationFilter"
-                               , "NotificationFilterSupport"
-                               , "NotificationListener"
-                               , "NotificationResult"
-                               , "NullCipher"
-                               , "NullPointerException"
-                               , "Number"
-                               , "NumberFormat"
-                               , "NumberFormat.Field"
-                               , "NumberFormatException"
-                               , "NumberFormatter"
-                               , "NumberOfDocuments"
-                               , "NumberOfInterveningJobs"
-                               , "NumberUp"
-                               , "NumberUpSupported"
-                               , "NumericShaper"
-                               , "OAEPParameterSpec"
-                               , "OBJECT_NOT_EXIST"
-                               , "OBJ_ADAPTER"
-                               , "OMGVMCID"
-                               , "ORB"
-                               , "ORBIdHelper"
-                               , "ORBInitInfo"
-                               , "ORBInitInfoOperations"
-                               , "ORBInitializer"
-                               , "ORBInitializerOperations"
-                               , "ObjID"
-                               , "Object"
-                               , "ObjectAlreadyActive"
-                               , "ObjectAlreadyActiveHelper"
-                               , "ObjectChangeListener"
-                               , "ObjectFactory"
-                               , "ObjectFactoryBuilder"
-                               , "ObjectHelper"
-                               , "ObjectHolder"
-                               , "ObjectIdHelper"
-                               , "ObjectImpl"
-                               , "ObjectInput"
-                               , "ObjectInputStream"
-                               , "ObjectInputStream.GetField"
-                               , "ObjectInputValidation"
-                               , "ObjectInstance"
-                               , "ObjectName"
-                               , "ObjectNotActive"
-                               , "ObjectNotActiveHelper"
-                               , "ObjectOutput"
-                               , "ObjectOutputStream"
-                               , "ObjectOutputStream.PutField"
-                               , "ObjectReferenceFactory"
-                               , "ObjectReferenceFactoryHelper"
-                               , "ObjectReferenceFactoryHolder"
-                               , "ObjectReferenceTemplate"
-                               , "ObjectReferenceTemplateHelper"
-                               , "ObjectReferenceTemplateHolder"
-                               , "ObjectReferenceTemplateSeqHelper"
-                               , "ObjectReferenceTemplateSeqHolder"
-                               , "ObjectStreamClass"
-                               , "ObjectStreamConstants"
-                               , "ObjectStreamException"
-                               , "ObjectStreamField"
-                               , "ObjectView"
-                               , "Observable"
-                               , "Observer"
-                               , "OceanTheme"
-                               , "OctetSeqHelper"
-                               , "OctetSeqHolder"
-                               , "Oid"
-                               , "OpenDataException"
-                               , "OpenMBeanAttributeInfo"
-                               , "OpenMBeanAttributeInfoSupport"
-                               , "OpenMBeanConstructorInfo"
-                               , "OpenMBeanConstructorInfoSupport"
-                               , "OpenMBeanInfo"
-                               , "OpenMBeanInfoSupport"
-                               , "OpenMBeanOperationInfo"
-                               , "OpenMBeanOperationInfoSupport"
-                               , "OpenMBeanParameterInfo"
-                               , "OpenMBeanParameterInfoSupport"
-                               , "OpenType"
-                               , "OperatingSystemMXBean"
-                               , "Operation"
-                               , "OperationNotSupportedException"
-                               , "OperationsException"
-                               , "Option"
-                               , "OptionPaneUI"
-                               , "OptionalDataException"
-                               , "OrientationRequested"
-                               , "OutOfMemoryError"
-                               , "OutputDeviceAssigned"
-                               , "OutputKeys"
-                               , "OutputStream"
-                               , "OutputStreamWriter"
-                               , "OverlappingFileLockException"
-                               , "OverlayLayout"
-                               , "Override"
-                               , "Owner"
-                               , "PBEKey"
-                               , "PBEKeySpec"
-                               , "PBEParameterSpec"
-                               , "PDLOverrideSupported"
-                               , "PERSIST_STORE"
-                               , "PKCS8EncodedKeySpec"
-                               , "PKIXBuilderParameters"
-                               , "PKIXCertPathBuilderResult"
-                               , "PKIXCertPathChecker"
-                               , "PKIXCertPathValidatorResult"
-                               , "PKIXParameters"
-                               , "POA"
-                               , "POAHelper"
-                               , "POAManager"
-                               , "POAManagerOperations"
-                               , "POAOperations"
-                               , "PRIVATE_MEMBER"
-                               , "PSSParameterSpec"
-                               , "PSource"
-                               , "PSource.PSpecified"
-                               , "PUBLIC_MEMBER"
-                               , "Pack200"
-                               , "Pack200.Packer"
-                               , "Pack200.Unpacker"
-                               , "Package"
-                               , "PackedColorModel"
-                               , "PageAttributes"
-                               , "PageAttributes.ColorType"
-                               , "PageAttributes.MediaType"
-                               , "PageAttributes.OrientationRequestedType"
-                               , "PageAttributes.OriginType"
-                               , "PageAttributes.PrintQualityType"
-                               , "PageFormat"
-                               , "PageRanges"
-                               , "Pageable"
-                               , "PagedResultsControl"
-                               , "PagedResultsResponseControl"
-                               , "PagesPerMinute"
-                               , "PagesPerMinuteColor"
-                               , "Paint"
-                               , "PaintContext"
-                               , "PaintEvent"
-                               , "Panel"
-                               , "PanelUI"
-                               , "Paper"
-                               , "ParagraphView"
-                               , "Parameter"
-                               , "ParameterBlock"
-                               , "ParameterDescriptor"
-                               , "ParameterMetaData"
-                               , "ParameterMode"
-                               , "ParameterModeHelper"
-                               , "ParameterModeHolder"
-                               , "ParameterizedType"
-                               , "ParseException"
-                               , "ParsePosition"
-                               , "Parser"
-                               , "ParserAdapter"
-                               , "ParserConfigurationException"
-                               , "ParserDelegator"
-                               , "ParserFactory"
-                               , "PartialResultException"
-                               , "PasswordAuthentication"
-                               , "PasswordCallback"
-                               , "PasswordView"
-                               , "Patch"
-                               , "PathIterator"
-                               , "Pattern"
-                               , "PatternSyntaxException"
-                               , "Permission"
-                               , "PermissionCollection"
-                               , "Permissions"
-                               , "PersistenceDelegate"
-                               , "PersistentMBean"
-                               , "PhantomReference"
-                               , "Pipe"
-                               , "Pipe.SinkChannel"
-                               , "Pipe.SourceChannel"
-                               , "PipedInputStream"
-                               , "PipedOutputStream"
-                               , "PipedReader"
-                               , "PipedWriter"
-                               , "PixelGrabber"
-                               , "PixelInterleavedSampleModel"
-                               , "PlainDocument"
-                               , "PlainView"
-                               , "Point"
-                               , "Point2D"
-                               , "Point2D.Double"
-                               , "Point2D.Float"
-                               , "PointerInfo"
-                               , "Policy"
-                               , "PolicyError"
-                               , "PolicyErrorCodeHelper"
-                               , "PolicyErrorHelper"
-                               , "PolicyErrorHolder"
-                               , "PolicyFactory"
-                               , "PolicyFactoryOperations"
-                               , "PolicyHelper"
-                               , "PolicyHolder"
-                               , "PolicyListHelper"
-                               , "PolicyListHolder"
-                               , "PolicyNode"
-                               , "PolicyOperations"
-                               , "PolicyQualifierInfo"
-                               , "PolicyTypeHelper"
-                               , "Polygon"
-                               , "PooledConnection"
-                               , "Popup"
-                               , "PopupFactory"
-                               , "PopupMenu"
-                               , "PopupMenuEvent"
-                               , "PopupMenuListener"
-                               , "PopupMenuUI"
-                               , "Port"
-                               , "Port.Info"
-                               , "PortUnreachableException"
-                               , "PortableRemoteObject"
-                               , "PortableRemoteObjectDelegate"
-                               , "Position"
-                               , "Position.Bias"
-                               , "Predicate"
-                               , "PreferenceChangeEvent"
-                               , "PreferenceChangeListener"
-                               , "Preferences"
-                               , "PreferencesFactory"
-                               , "PreparedStatement"
-                               , "PresentationDirection"
-                               , "Principal"
-                               , "PrincipalHolder"
-                               , "PrintEvent"
-                               , "PrintException"
-                               , "PrintGraphics"
-                               , "PrintJob"
-                               , "PrintJobAdapter"
-                               , "PrintJobAttribute"
-                               , "PrintJobAttributeEvent"
-                               , "PrintJobAttributeListener"
-                               , "PrintJobAttributeSet"
-                               , "PrintJobEvent"
-                               , "PrintJobListener"
-                               , "PrintQuality"
-                               , "PrintRequestAttribute"
-                               , "PrintRequestAttributeSet"
-                               , "PrintService"
-                               , "PrintServiceAttribute"
-                               , "PrintServiceAttributeEvent"
-                               , "PrintServiceAttributeListener"
-                               , "PrintServiceAttributeSet"
-                               , "PrintServiceLookup"
-                               , "PrintStream"
-                               , "PrintWriter"
-                               , "Printable"
-                               , "PrinterAbortException"
-                               , "PrinterException"
-                               , "PrinterGraphics"
-                               , "PrinterIOException"
-                               , "PrinterInfo"
-                               , "PrinterIsAcceptingJobs"
-                               , "PrinterJob"
-                               , "PrinterLocation"
-                               , "PrinterMakeAndModel"
-                               , "PrinterMessageFromOperator"
-                               , "PrinterMoreInfo"
-                               , "PrinterMoreInfoManufacturer"
-                               , "PrinterName"
-                               , "PrinterResolution"
-                               , "PrinterState"
-                               , "PrinterStateReason"
-                               , "PrinterStateReasons"
-                               , "PrinterURI"
-                               , "PriorityBlockingQueue"
-                               , "PriorityQueue"
-                               , "PrivateClassLoader"
-                               , "PrivateCredentialPermission"
-                               , "PrivateKey"
-                               , "PrivateMLet"
-                               , "PrivilegedAction"
-                               , "PrivilegedActionException"
-                               , "PrivilegedExceptionAction"
-                               , "Process"
-                               , "ProcessBuilder"
-                               , "ProcessingInstruction"
-                               , "ProfileDataException"
-                               , "ProfileIdHelper"
-                               , "ProgressBarUI"
-                               , "ProgressMonitor"
-                               , "ProgressMonitorInputStream"
-                               , "Properties"
-                               , "PropertyChangeEvent"
-                               , "PropertyChangeListener"
-                               , "PropertyChangeListenerProxy"
-                               , "PropertyChangeSupport"
-                               , "PropertyDescriptor"
-                               , "PropertyEditor"
-                               , "PropertyEditorManager"
-                               , "PropertyEditorSupport"
-                               , "PropertyPermission"
-                               , "PropertyResourceBundle"
-                               , "PropertyVetoException"
-                               , "ProtectionDomain"
-                               , "ProtocolException"
-                               , "Provider"
-                               , "Provider.Service"
-                               , "ProviderException"
-                               , "Proxy"
-                               , "Proxy.Type"
-                               , "ProxySelector"
-                               , "PublicKey"
-                               , "PushbackInputStream"
-                               , "PushbackReader"
-                               , "QName"
-                               , "QuadCurve2D"
-                               , "QuadCurve2D.Double"
-                               , "QuadCurve2D.Float"
-                               , "Query"
-                               , "QueryEval"
-                               , "QueryExp"
-                               , "Queue"
-                               , "QueuedJobCount"
-                               , "RC2ParameterSpec"
-                               , "RC5ParameterSpec"
-                               , "REBIND"
-                               , "REQUEST_PROCESSING_POLICY_ID"
-                               , "RGBImageFilter"
-                               , "RMIClassLoader"
-                               , "RMIClassLoaderSpi"
-                               , "RMIClientSocketFactory"
-                               , "RMIConnection"
-                               , "RMIConnectionImpl"
-                               , "RMIConnectionImpl_Stub"
-                               , "RMIConnector"
-                               , "RMIConnectorServer"
-                               , "RMICustomMaxStreamFormat"
-                               , "RMIFailureHandler"
-                               , "RMIIIOPServerImpl"
-                               , "RMIJRMPServerImpl"
-                               , "RMISecurityException"
-                               , "RMISecurityManager"
-                               , "RMIServer"
-                               , "RMIServerImpl"
-                               , "RMIServerImpl_Stub"
-                               , "RMIServerSocketFactory"
-                               , "RMISocketFactory"
-                               , "RSAKey"
-                               , "RSAKeyGenParameterSpec"
-                               , "RSAMultiPrimePrivateCrtKey"
-                               , "RSAMultiPrimePrivateCrtKeySpec"
-                               , "RSAOtherPrimeInfo"
-                               , "RSAPrivateCrtKey"
-                               , "RSAPrivateCrtKeySpec"
-                               , "RSAPrivateKey"
-                               , "RSAPrivateKeySpec"
-                               , "RSAPublicKey"
-                               , "RSAPublicKeySpec"
-                               , "RTFEditorKit"
-                               , "Random"
-                               , "RandomAccess"
-                               , "RandomAccessFile"
-                               , "Raster"
-                               , "RasterFormatException"
-                               , "RasterOp"
-                               , "Rdn"
-                               , "ReadOnlyBufferException"
-                               , "ReadWriteLock"
-                               , "Readable"
-                               , "ReadableByteChannel"
-                               , "Reader"
-                               , "RealmCallback"
-                               , "RealmChoiceCallback"
-                               , "Receiver"
-                               , "Rectangle"
-                               , "Rectangle2D"
-                               , "Rectangle2D.Double"
-                               , "Rectangle2D.Float"
-                               , "RectangularShape"
-                               , "ReentrantLock"
-                               , "ReentrantReadWriteLock"
-                               , "ReentrantReadWriteLock.ReadLock"
-                               , "ReentrantReadWriteLock.WriteLock"
-                               , "Ref"
-                               , "RefAddr"
-                               , "Reference"
-                               , "ReferenceQueue"
-                               , "ReferenceUriSchemesSupported"
-                               , "Referenceable"
-                               , "ReferralException"
-                               , "ReflectPermission"
-                               , "ReflectionException"
-                               , "RefreshFailedException"
-                               , "Refreshable"
-                               , "Region"
-                               , "RegisterableService"
-                               , "Registry"
-                               , "RegistryHandler"
-                               , "RejectedExecutionException"
-                               , "RejectedExecutionHandler"
-                               , "Relation"
-                               , "RelationException"
-                               , "RelationNotFoundException"
-                               , "RelationNotification"
-                               , "RelationService"
-                               , "RelationServiceMBean"
-                               , "RelationServiceNotRegisteredException"
-                               , "RelationSupport"
-                               , "RelationSupportMBean"
-                               , "RelationType"
-                               , "RelationTypeNotFoundException"
-                               , "RelationTypeSupport"
-                               , "RemarshalException"
-                               , "Remote"
-                               , "RemoteCall"
-                               , "RemoteException"
-                               , "RemoteObject"
-                               , "RemoteObjectInvocationHandler"
-                               , "RemoteRef"
-                               , "RemoteServer"
-                               , "RemoteStub"
-                               , "RenderContext"
-                               , "RenderableImage"
-                               , "RenderableImageOp"
-                               , "RenderableImageProducer"
-                               , "RenderedImage"
-                               , "RenderedImageFactory"
-                               , "Renderer"
-                               , "RenderingHints"
-                               , "RenderingHints.Key"
-                               , "RepaintManager"
-                               , "ReplicateScaleFilter"
-                               , "RepositoryIdHelper"
-                               , "Request"
-                               , "RequestInfo"
-                               , "RequestInfoOperations"
-                               , "RequestProcessingPolicy"
-                               , "RequestProcessingPolicyOperations"
-                               , "RequestProcessingPolicyValue"
-                               , "RequestingUserName"
-                               , "RequiredModelMBean"
-                               , "RescaleOp"
-                               , "ResolutionSyntax"
-                               , "ResolveResult"
-                               , "Resolver"
-                               , "ResourceBundle"
-                               , "ResponseCache"
-                               , "ResponseHandler"
-                               , "Result"
-                               , "ResultSet"
-                               , "ResultSetMetaData"
-                               , "Retention"
-                               , "RetentionPolicy"
-                               , "ReverbType"
-                               , "Robot"
-                               , "Role"
-                               , "RoleInfo"
-                               , "RoleInfoNotFoundException"
-                               , "RoleList"
-                               , "RoleNotFoundException"
-                               , "RoleResult"
-                               , "RoleStatus"
-                               , "RoleUnresolved"
-                               , "RoleUnresolvedList"
-                               , "RootPaneContainer"
-                               , "RootPaneUI"
-                               , "RoundRectangle2D"
-                               , "RoundRectangle2D.Double"
-                               , "RoundRectangle2D.Float"
-                               , "RoundingMode"
-                               , "RowMapper"
-                               , "RowSet"
-                               , "RowSetEvent"
-                               , "RowSetInternal"
-                               , "RowSetListener"
-                               , "RowSetMetaData"
-                               , "RowSetMetaDataImpl"
-                               , "RowSetReader"
-                               , "RowSetWarning"
-                               , "RowSetWriter"
-                               , "RuleBasedCollator"
-                               , "RunTime"
-                               , "RunTimeOperations"
-                               , "Runnable"
-                               , "Runtime"
-                               , "RuntimeErrorException"
-                               , "RuntimeException"
-                               , "RuntimeMBeanException"
-                               , "RuntimeMXBean"
-                               , "RuntimeOperationsException"
-                               , "RuntimePermission"
-                               , "SAXException"
-                               , "SAXNotRecognizedException"
-                               , "SAXNotSupportedException"
-                               , "SAXParseException"
-                               , "SAXParser"
-                               , "SAXParserFactory"
-                               , "SAXResult"
-                               , "SAXSource"
-                               , "SAXTransformerFactory"
-                               , "SERVANT_RETENTION_POLICY_ID"
-                               , "SQLData"
-                               , "SQLException"
-                               , "SQLInput"
-                               , "SQLInputImpl"
-                               , "SQLOutput"
-                               , "SQLOutputImpl"
-                               , "SQLPermission"
-                               , "SQLWarning"
-                               , "SSLContext"
-                               , "SSLContextSpi"
-                               , "SSLEngine"
-                               , "SSLEngineResult"
-                               , "SSLEngineResult.HandshakeStatus"
-                               , "SSLEngineResult.Status"
-                               , "SSLException"
-                               , "SSLHandshakeException"
-                               , "SSLKeyException"
-                               , "SSLPeerUnverifiedException"
-                               , "SSLPermission"
-                               , "SSLProtocolException"
-                               , "SSLServerSocket"
-                               , "SSLServerSocketFactory"
-                               , "SSLSession"
-                               , "SSLSessionBindingEvent"
-                               , "SSLSessionBindingListener"
-                               , "SSLSessionContext"
-                               , "SSLSocket"
-                               , "SSLSocketFactory"
-                               , "SUCCESSFUL"
-                               , "SYNC_WITH_TRANSPORT"
-                               , "SYSTEM_EXCEPTION"
-                               , "SampleModel"
-                               , "Sasl"
-                               , "SaslClient"
-                               , "SaslClientFactory"
-                               , "SaslException"
-                               , "SaslServer"
-                               , "SaslServerFactory"
-                               , "Savepoint"
-                               , "Scanner"
-                               , "ScatteringByteChannel"
-                               , "ScheduledExecutorService"
-                               , "ScheduledFuture"
-                               , "ScheduledThreadPoolExecutor"
-                               , "Schema"
-                               , "SchemaFactory"
-                               , "SchemaFactoryLoader"
-                               , "SchemaViolationException"
-                               , "ScrollBarUI"
-                               , "ScrollPane"
-                               , "ScrollPaneAdjustable"
-                               , "ScrollPaneConstants"
-                               , "ScrollPaneLayout"
-                               , "ScrollPaneLayout.UIResource"
-                               , "ScrollPaneUI"
-                               , "Scrollable"
-                               , "Scrollbar"
-                               , "SealedObject"
-                               , "SearchControls"
-                               , "SearchResult"
-                               , "SecretKey"
-                               , "SecretKeyFactory"
-                               , "SecretKeyFactorySpi"
-                               , "SecretKeySpec"
-                               , "SecureCacheResponse"
-                               , "SecureClassLoader"
-                               , "SecureRandom"
-                               , "SecureRandomSpi"
-                               , "Security"
-                               , "SecurityException"
-                               , "SecurityManager"
-                               , "SecurityPermission"
-                               , "Segment"
-                               , "SelectableChannel"
-                               , "SelectionKey"
-                               , "Selector"
-                               , "SelectorProvider"
-                               , "Semaphore"
-                               , "SeparatorUI"
-                               , "Sequence"
-                               , "SequenceInputStream"
-                               , "Sequencer"
-                               , "Sequencer.SyncMode"
-                               , "SerialArray"
-                               , "SerialBlob"
-                               , "SerialClob"
-                               , "SerialDatalink"
-                               , "SerialException"
-                               , "SerialJavaObject"
-                               , "SerialRef"
-                               , "SerialStruct"
-                               , "Serializable"
-                               , "SerializablePermission"
-                               , "Servant"
-                               , "ServantActivator"
-                               , "ServantActivatorHelper"
-                               , "ServantActivatorOperations"
-                               , "ServantActivatorPOA"
-                               , "ServantAlreadyActive"
-                               , "ServantAlreadyActiveHelper"
-                               , "ServantLocator"
-                               , "ServantLocatorHelper"
-                               , "ServantLocatorOperations"
-                               , "ServantLocatorPOA"
-                               , "ServantManager"
-                               , "ServantManagerOperations"
-                               , "ServantNotActive"
-                               , "ServantNotActiveHelper"
-                               , "ServantObject"
-                               , "ServantRetentionPolicy"
-                               , "ServantRetentionPolicyOperations"
-                               , "ServantRetentionPolicyValue"
-                               , "ServerCloneException"
-                               , "ServerError"
-                               , "ServerException"
-                               , "ServerIdHelper"
-                               , "ServerNotActiveException"
-                               , "ServerRef"
-                               , "ServerRequest"
-                               , "ServerRequestInfo"
-                               , "ServerRequestInfoOperations"
-                               , "ServerRequestInterceptor"
-                               , "ServerRequestInterceptorOperations"
-                               , "ServerRuntimeException"
-                               , "ServerSocket"
-                               , "ServerSocketChannel"
-                               , "ServerSocketFactory"
-                               , "ServiceContext"
-                               , "ServiceContextHelper"
-                               , "ServiceContextHolder"
-                               , "ServiceContextListHelper"
-                               , "ServiceContextListHolder"
-                               , "ServiceDetail"
-                               , "ServiceDetailHelper"
-                               , "ServiceIdHelper"
-                               , "ServiceInformation"
-                               , "ServiceInformationHelper"
-                               , "ServiceInformationHolder"
-                               , "ServiceNotFoundException"
-                               , "ServicePermission"
-                               , "ServiceRegistry"
-                               , "ServiceRegistry.Filter"
-                               , "ServiceUI"
-                               , "ServiceUIFactory"
-                               , "ServiceUnavailableException"
-                               , "Set"
-                               , "SetOfIntegerSyntax"
-                               , "SetOverrideType"
-                               , "SetOverrideTypeHelper"
-                               , "Severity"
-                               , "Shape"
-                               , "ShapeGraphicAttribute"
-                               , "SheetCollate"
-                               , "Short"
-                               , "ShortBuffer"
-                               , "ShortBufferException"
-                               , "ShortHolder"
-                               , "ShortLookupTable"
-                               , "ShortMessage"
-                               , "ShortSeqHelper"
-                               , "ShortSeqHolder"
-                               , "Sides"
-                               , "Signature"
-                               , "SignatureException"
-                               , "SignatureSpi"
-                               , "SignedObject"
-                               , "Signer"
-                               , "SimpleAttributeSet"
-                               , "SimpleBeanInfo"
-                               , "SimpleDateFormat"
-                               , "SimpleDoc"
-                               , "SimpleFormatter"
-                               , "SimpleTimeZone"
-                               , "SimpleType"
-                               , "SinglePixelPackedSampleModel"
-                               , "SingleSelectionModel"
-                               , "Size2DSyntax"
-                               , "SizeLimitExceededException"
-                               , "SizeRequirements"
-                               , "SizeSequence"
-                               , "Skeleton"
-                               , "SkeletonMismatchException"
-                               , "SkeletonNotFoundException"
-                               , "SliderUI"
-                               , "Socket"
-                               , "SocketAddress"
-                               , "SocketChannel"
-                               , "SocketException"
-                               , "SocketFactory"
-                               , "SocketHandler"
-                               , "SocketImpl"
-                               , "SocketImplFactory"
-                               , "SocketOptions"
-                               , "SocketPermission"
-                               , "SocketSecurityException"
-                               , "SocketTimeoutException"
-                               , "SoftBevelBorder"
-                               , "SoftReference"
-                               , "SortControl"
-                               , "SortKey"
-                               , "SortResponseControl"
-                               , "SortedMap"
-                               , "SortedSet"
-                               , "SortingFocusTraversalPolicy"
-                               , "Soundbank"
-                               , "SoundbankReader"
-                               , "SoundbankResource"
-                               , "Source"
-                               , "SourceDataLine"
-                               , "SourceLocator"
-                               , "SpinnerDateModel"
-                               , "SpinnerListModel"
-                               , "SpinnerModel"
-                               , "SpinnerNumberModel"
-                               , "SpinnerUI"
-                               , "SplitPaneUI"
-                               , "Spring"
-                               , "SpringLayout"
-                               , "SpringLayout.Constraints"
-                               , "SslRMIClientSocketFactory"
-                               , "SslRMIServerSocketFactory"
-                               , "Stack"
-                               , "StackOverflowError"
-                               , "StackTraceElement"
-                               , "StandardMBean"
-                               , "StartTlsRequest"
-                               , "StartTlsResponse"
-                               , "State"
-                               , "StateEdit"
-                               , "StateEditable"
-                               , "StateFactory"
-                               , "Statement"
-                               , "StreamCorruptedException"
-                               , "StreamHandler"
-                               , "StreamPrintService"
-                               , "StreamPrintServiceFactory"
-                               , "StreamResult"
-                               , "StreamSource"
-                               , "StreamTokenizer"
-                               , "Streamable"
-                               , "StreamableValue"
-                               , "StrictMath"
-                               , "String"
-                               , "StringBuffer"
-                               , "StringBufferInputStream"
-                               , "StringBuilder"
-                               , "StringCharacterIterator"
-                               , "StringContent"
-                               , "StringHolder"
-                               , "StringIndexOutOfBoundsException"
-                               , "StringMonitor"
-                               , "StringMonitorMBean"
-                               , "StringNameHelper"
-                               , "StringReader"
-                               , "StringRefAddr"
-                               , "StringSelection"
-                               , "StringSeqHelper"
-                               , "StringSeqHolder"
-                               , "StringTokenizer"
-                               , "StringValueExp"
-                               , "StringValueHelper"
-                               , "StringWriter"
-                               , "Stroke"
-                               , "Struct"
-                               , "StructMember"
-                               , "StructMemberHelper"
-                               , "Stub"
-                               , "StubDelegate"
-                               , "StubNotFoundException"
-                               , "Style"
-                               , "StyleConstants"
-                               , "StyleConstants.CharacterConstants"
-                               , "StyleConstants.ColorConstants"
-                               , "StyleConstants.FontConstants"
-                               , "StyleConstants.ParagraphConstants"
-                               , "StyleContext"
-                               , "StyleSheet"
-                               , "StyleSheet.BoxPainter"
-                               , "StyleSheet.ListPainter"
-                               , "StyledDocument"
-                               , "StyledEditorKit"
-                               , "StyledEditorKit.AlignmentAction"
-                               , "StyledEditorKit.BoldAction"
-                               , "StyledEditorKit.FontFamilyAction"
-                               , "StyledEditorKit.FontSizeAction"
-                               , "StyledEditorKit.ForegroundAction"
-                               , "StyledEditorKit.ItalicAction"
-                               , "StyledEditorKit.StyledTextAction"
-                               , "StyledEditorKit.UnderlineAction"
-                               , "Subject"
-                               , "SubjectDelegationPermission"
-                               , "SubjectDomainCombiner"
-                               , "SupportedValuesAttribute"
-                               , "SuppressWarnings"
-                               , "SwingConstants"
-                               , "SwingPropertyChangeSupport"
-                               , "SwingUtilities"
-                               , "SyncFactory"
-                               , "SyncFactoryException"
-                               , "SyncFailedException"
-                               , "SyncProvider"
-                               , "SyncProviderException"
-                               , "SyncResolver"
-                               , "SyncScopeHelper"
-                               , "SynchronousQueue"
-                               , "SynthConstants"
-                               , "SynthContext"
-                               , "SynthGraphicsUtils"
-                               , "SynthLookAndFeel"
-                               , "SynthPainter"
-                               , "SynthStyle"
-                               , "SynthStyleFactory"
-                               , "Synthesizer"
-                               , "SysexMessage"
-                               , "System"
-                               , "SystemColor"
-                               , "SystemException"
-                               , "SystemFlavorMap"
-                               , "TAG_ALTERNATE_IIOP_ADDRESS"
-                               , "TAG_CODE_SETS"
-                               , "TAG_INTERNET_IOP"
-                               , "TAG_JAVA_CODEBASE"
-                               , "TAG_MULTIPLE_COMPONENTS"
-                               , "TAG_ORB_TYPE"
-                               , "TAG_POLICIES"
-                               , "TAG_RMI_CUSTOM_MAX_STREAM_FORMAT"
-                               , "TCKind"
-                               , "THREAD_POLICY_ID"
-                               , "TIMEOUT"
-                               , "TRANSACTION_MODE"
-                               , "TRANSACTION_REQUIRED"
-                               , "TRANSACTION_ROLLEDBACK"
-                               , "TRANSACTION_UNAVAILABLE"
-                               , "TRANSIENT"
-                               , "TRANSPORT_RETRY"
-                               , "TabExpander"
-                               , "TabSet"
-                               , "TabStop"
-                               , "TabableView"
-                               , "TabbedPaneUI"
-                               , "TableCellEditor"
-                               , "TableCellRenderer"
-                               , "TableColumn"
-                               , "TableColumnModel"
-                               , "TableColumnModelEvent"
-                               , "TableColumnModelListener"
-                               , "TableHeaderUI"
-                               , "TableModel"
-                               , "TableModelEvent"
-                               , "TableModelListener"
-                               , "TableUI"
-                               , "TableView"
-                               , "TabularData"
-                               , "TabularDataSupport"
-                               , "TabularType"
-                               , "TagElement"
-                               , "TaggedComponent"
-                               , "TaggedComponentHelper"
-                               , "TaggedComponentHolder"
-                               , "TaggedProfile"
-                               , "TaggedProfileHelper"
-                               , "TaggedProfileHolder"
-                               , "Target"
-                               , "TargetDataLine"
-                               , "TargetedNotification"
-                               , "Templates"
-                               , "TemplatesHandler"
-                               , "Text"
-                               , "TextAction"
-                               , "TextArea"
-                               , "TextAttribute"
-                               , "TextComponent"
-                               , "TextEvent"
-                               , "TextField"
-                               , "TextHitInfo"
-                               , "TextInputCallback"
-                               , "TextLayout"
-                               , "TextLayout.CaretPolicy"
-                               , "TextListener"
-                               , "TextMeasurer"
-                               , "TextOutputCallback"
-                               , "TextSyntax"
-                               , "TextUI"
-                               , "TexturePaint"
-                               , "Thread"
-                               , "Thread.State"
-                               , "Thread.UncaughtExceptionHandler"
-                               , "ThreadDeath"
-                               , "ThreadFactory"
-                               , "ThreadGroup"
-                               , "ThreadInfo"
-                               , "ThreadLocal"
-                               , "ThreadMXBean"
-                               , "ThreadPolicy"
-                               , "ThreadPolicyOperations"
-                               , "ThreadPolicyValue"
-                               , "ThreadPoolExecutor"
-                               , "ThreadPoolExecutor.AbortPolicy"
-                               , "ThreadPoolExecutor.CallerRunsPolicy"
-                               , "ThreadPoolExecutor.DiscardOldestPolicy"
-                               , "ThreadPoolExecutor.DiscardPolicy"
-                               , "Throwable"
-                               , "Tie"
-                               , "TileObserver"
-                               , "Time"
-                               , "TimeLimitExceededException"
-                               , "TimeUnit"
-                               , "TimeZone"
-                               , "TimeoutException"
-                               , "Timer"
-                               , "TimerAlarmClockNotification"
-                               , "TimerMBean"
-                               , "TimerNotification"
-                               , "TimerTask"
-                               , "Timestamp"
-                               , "TitledBorder"
-                               , "TooManyListenersException"
-                               , "ToolBarUI"
-                               , "ToolTipManager"
-                               , "ToolTipUI"
-                               , "Toolkit"
-                               , "Track"
-                               , "TransactionRequiredException"
-                               , "TransactionRolledbackException"
-                               , "TransactionService"
-                               , "TransactionalWriter"
-                               , "TransferHandler"
-                               , "Transferable"
-                               , "TransformAttribute"
-                               , "Transformer"
-                               , "TransformerConfigurationException"
-                               , "TransformerException"
-                               , "TransformerFactory"
-                               , "TransformerFactoryConfigurationError"
-                               , "TransformerHandler"
-                               , "Transmitter"
-                               , "Transparency"
-                               , "TreeCellEditor"
-                               , "TreeCellRenderer"
-                               , "TreeExpansionEvent"
-                               , "TreeExpansionListener"
-                               , "TreeMap"
-                               , "TreeModel"
-                               , "TreeModelEvent"
-                               , "TreeModelListener"
-                               , "TreeNode"
-                               , "TreePath"
-                               , "TreeSelectionEvent"
-                               , "TreeSelectionListener"
-                               , "TreeSelectionModel"
-                               , "TreeSet"
-                               , "TreeUI"
-                               , "TreeWillExpandListener"
-                               , "TrustAnchor"
-                               , "TrustManager"
-                               , "TrustManagerFactory"
-                               , "TrustManagerFactorySpi"
-                               , "Type"
-                               , "TypeCode"
-                               , "TypeCodeHolder"
-                               , "TypeInfo"
-                               , "TypeInfoProvider"
-                               , "TypeMismatch"
-                               , "TypeMismatchHelper"
-                               , "TypeNotPresentException"
-                               , "TypeVariable"
-                               , "Types"
-                               , "UID"
-                               , "UIDefaults"
-                               , "UIDefaults.ActiveValue"
-                               , "UIDefaults.LazyInputMap"
-                               , "UIDefaults.LazyValue"
-                               , "UIDefaults.ProxyLazyValue"
-                               , "UIManager"
-                               , "UIManager.LookAndFeelInfo"
-                               , "UIResource"
-                               , "ULongLongSeqHelper"
-                               , "ULongLongSeqHolder"
-                               , "ULongSeqHelper"
-                               , "ULongSeqHolder"
-                               , "UNKNOWN"
-                               , "UNSUPPORTED_POLICY"
-                               , "UNSUPPORTED_POLICY_VALUE"
-                               , "URI"
-                               , "URIException"
-                               , "URIResolver"
-                               , "URISyntax"
-                               , "URISyntaxException"
-                               , "URL"
-                               , "URLClassLoader"
-                               , "URLConnection"
-                               , "URLDecoder"
-                               , "URLEncoder"
-                               , "URLStreamHandler"
-                               , "URLStreamHandlerFactory"
-                               , "URLStringHelper"
-                               , "USER_EXCEPTION"
-                               , "UShortSeqHelper"
-                               , "UShortSeqHolder"
-                               , "UTFDataFormatException"
-                               , "UUID"
-                               , "UndeclaredThrowableException"
-                               , "UndoManager"
-                               , "UndoableEdit"
-                               , "UndoableEditEvent"
-                               , "UndoableEditListener"
-                               , "UndoableEditSupport"
-                               , "UnexpectedException"
-                               , "UnicastRemoteObject"
-                               , "UnionMember"
-                               , "UnionMemberHelper"
-                               , "UnknownEncoding"
-                               , "UnknownEncodingHelper"
-                               , "UnknownError"
-                               , "UnknownException"
-                               , "UnknownFormatConversionException"
-                               , "UnknownFormatFlagsException"
-                               , "UnknownGroupException"
-                               , "UnknownHostException"
-                               , "UnknownObjectException"
-                               , "UnknownServiceException"
-                               , "UnknownUserException"
-                               , "UnknownUserExceptionHelper"
-                               , "UnknownUserExceptionHolder"
-                               , "UnmappableCharacterException"
-                               , "UnmarshalException"
-                               , "UnmodifiableClassException"
-                               , "UnmodifiableSetException"
-                               , "UnrecoverableEntryException"
-                               , "UnrecoverableKeyException"
-                               , "Unreferenced"
-                               , "UnresolvedAddressException"
-                               , "UnresolvedPermission"
-                               , "UnsatisfiedLinkError"
-                               , "UnsolicitedNotification"
-                               , "UnsolicitedNotificationEvent"
-                               , "UnsolicitedNotificationListener"
-                               , "UnsupportedAddressTypeException"
-                               , "UnsupportedAudioFileException"
-                               , "UnsupportedCallbackException"
-                               , "UnsupportedCharsetException"
-                               , "UnsupportedClassVersionError"
-                               , "UnsupportedEncodingException"
-                               , "UnsupportedFlavorException"
-                               , "UnsupportedLookAndFeelException"
-                               , "UnsupportedOperationException"
-                               , "UserDataHandler"
-                               , "UserException"
-                               , "Util"
-                               , "UtilDelegate"
-                               , "Utilities"
-                               , "VMID"
-                               , "VM_ABSTRACT"
-                               , "VM_CUSTOM"
-                               , "VM_NONE"
-                               , "VM_TRUNCATABLE"
-                               , "Validator"
-                               , "ValidatorHandler"
-                               , "ValueBase"
-                               , "ValueBaseHelper"
-                               , "ValueBaseHolder"
-                               , "ValueExp"
-                               , "ValueFactory"
-                               , "ValueHandler"
-                               , "ValueHandlerMultiFormat"
-                               , "ValueInputStream"
-                               , "ValueMember"
-                               , "ValueMemberHelper"
-                               , "ValueOutputStream"
-                               , "VariableHeightLayoutCache"
-                               , "Vector"
-                               , "VerifyError"
-                               , "VersionSpecHelper"
-                               , "VetoableChangeListener"
-                               , "VetoableChangeListenerProxy"
-                               , "VetoableChangeSupport"
-                               , "View"
-                               , "ViewFactory"
-                               , "ViewportLayout"
-                               , "ViewportUI"
-                               , "VirtualMachineError"
-                               , "Visibility"
-                               , "VisibilityHelper"
-                               , "VoiceStatus"
-                               , "Void"
-                               , "VolatileImage"
-                               , "WCharSeqHelper"
-                               , "WCharSeqHolder"
-                               , "WStringSeqHelper"
-                               , "WStringSeqHolder"
-                               , "WStringValueHelper"
-                               , "WeakHashMap"
-                               , "WeakReference"
-                               , "WebRowSet"
-                               , "WildcardType"
-                               , "Window"
-                               , "WindowAdapter"
-                               , "WindowConstants"
-                               , "WindowEvent"
-                               , "WindowFocusListener"
-                               , "WindowListener"
-                               , "WindowStateListener"
-                               , "WrappedPlainView"
-                               , "WritableByteChannel"
-                               , "WritableRaster"
-                               , "WritableRenderedImage"
-                               , "WriteAbortedException"
-                               , "Writer"
-                               , "WrongAdapter"
-                               , "WrongAdapterHelper"
-                               , "WrongPolicy"
-                               , "WrongPolicyHelper"
-                               , "WrongTransaction"
-                               , "WrongTransactionHelper"
-                               , "WrongTransactionHolder"
-                               , "X500Principal"
-                               , "X500PrivateCredential"
-                               , "X509CRL"
-                               , "X509CRLEntry"
-                               , "X509CRLSelector"
-                               , "X509CertSelector"
-                               , "X509Certificate"
-                               , "X509EncodedKeySpec"
-                               , "X509ExtendedKeyManager"
-                               , "X509Extension"
-                               , "X509KeyManager"
-                               , "X509TrustManager"
-                               , "XAConnection"
-                               , "XADataSource"
-                               , "XAException"
-                               , "XAResource"
-                               , "XMLConstants"
-                               , "XMLDecoder"
-                               , "XMLEncoder"
-                               , "XMLFilter"
-                               , "XMLFilterImpl"
-                               , "XMLFormatter"
-                               , "XMLGregorianCalendar"
-                               , "XMLParseException"
-                               , "XMLReader"
-                               , "XMLReaderAdapter"
-                               , "XMLReaderFactory"
-                               , "XPath"
-                               , "XPathConstants"
-                               , "XPathException"
-                               , "XPathExpression"
-                               , "XPathExpressionException"
-                               , "XPathFactory"
-                               , "XPathFactoryConfigurationException"
-                               , "XPathFunction"
-                               , "XPathFunctionException"
-                               , "XPathFunctionResolver"
-                               , "XPathVariableResolver"
-                               , "Xid"
-                               , "XmlReader"
-                               , "XmlWriter"
-                               , "ZipEntry"
-                               , "ZipException"
-                               , "ZipFile"
-                               , "ZipInputStream"
-                               , "ZipOutputStream"
-                               , "ZoneView"
-                               , "_BindingIteratorImplBase"
-                               , "_BindingIteratorStub"
-                               , "_DynAnyFactoryStub"
-                               , "_DynAnyStub"
-                               , "_DynArrayStub"
-                               , "_DynEnumStub"
-                               , "_DynFixedStub"
-                               , "_DynSequenceStub"
-                               , "_DynStructStub"
-                               , "_DynUnionStub"
-                               , "_DynValueStub"
-                               , "_IDLTypeStub"
-                               , "_NamingContextExtStub"
-                               , "_NamingContextImplBase"
-                               , "_NamingContextStub"
-                               , "_PolicyStub"
-                               , "_Remote_Stub"
-                               , "_ServantActivatorStub"
-                               , "_ServantLocatorStub"
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Actor"
-                               , "ActorProxy"
-                               , "ActorTask"
-                               , "ActorThread"
-                               , "AllRef"
-                               , "Any"
-                               , "AnyRef"
-                               , "Application"
-                               , "AppliedType"
-                               , "Array"
-                               , "ArrayBuffer"
-                               , "Attribute"
-                               , "BoxedArray"
-                               , "BoxedBooleanArray"
-                               , "BoxedByteArray"
-                               , "BoxedCharArray"
-                               , "Buffer"
-                               , "BufferedIterator"
-                               , "Char"
-                               , "Console"
-                               , "Enumeration"
-                               , "Fluid"
-                               , "Function"
-                               , "IScheduler"
-                               , "ImmutableMapAdaptor"
-                               , "ImmutableSetAdaptor"
-                               , "Int"
-                               , "Iterable"
-                               , "List"
-                               , "ListBuffer"
-                               , "None"
-                               , "Option"
-                               , "Ordered"
-                               , "Pair"
-                               , "PartialFunction"
-                               , "Pid"
-                               , "Predef"
-                               , "PriorityQueue"
-                               , "PriorityQueueProxy"
-                               , "Reaction"
-                               , "Ref"
-                               , "Responder"
-                               , "RichInt"
-                               , "RichString"
-                               , "Rule"
-                               , "RuleTransformer"
-                               , "Script"
-                               , "Seq"
-                               , "SerialVersionUID"
-                               , "Some"
-                               , "Stream"
-                               , "Symbol"
-                               , "TcpService"
-                               , "TcpServiceWorker"
-                               , "Triple"
-                               , "Unit"
-                               , "Value"
-                               , "WorkerThread"
-                               , "serializable"
-                               , "transient"
-                               , "volatile"
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = AnyChar "fF"
-                              , rAttribute = FloatTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = True
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCOct
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren =
-                          [ Rule
-                              { rMatcher = StringDetect "ULL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LUL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LLU"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "UL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LU"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "LL"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "U"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          , Rule
-                              { rMatcher = StringDetect "L"
-                              , rAttribute = DecValTok
-                              , rIncludeAttribute = False
-                              , rDynamic = False
-                              , rCaseSensitive = False
-                              , rChildren = []
-                              , rLookahead = False
-                              , rFirstNonspace = False
-                              , rColumn = Nothing
-                              , rContextSwitch = []
-                              }
-                          ]
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "//\\s*BEGIN.*$"
-                              , reCompiled = Just (compileRegex True "//\\s*BEGIN.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "//\\s*END.*$"
-                              , reCompiled = Just (compileRegex True "//\\s*END.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Scala" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.(format|printf)\\b"
-                              , reCompiled = Just (compileRegex True "\\.(format|printf)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Scala" , "Printf" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Scala" , "Commentar 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Scala" , "Commentar 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "\\b[_\\w][_\\w\\d]*(?=[\\s]*(/\\*\\s*\\d+\\s*\\*/\\s*)?[(])"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "\\b[_\\w][_\\w\\d]*(?=[\\s]*(/\\*\\s*\\d+\\s*\\*/\\s*)?[(])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[.]{1,1}"
-                              , reCompiled = Just (compileRegex True "[.]{1,1}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Scala" , "Member" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ":!%&()+,-/.*<=>?[]|~^;"
-                      , 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
-              }
-          )
-        , ( "Printf"
-          , Context
-              { cName = "Printf"
-              , cSyntax = "Scala"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ';'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Scala" , "PrintfString" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "PrintfString"
-          , Context
-              { cName = "PrintfString"
-              , cSyntax = "Scala"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "%(\\d+\\$)?(-|#|\\+|\\ |0|,|\\()*\\d*(\\.\\d+)?[a-hosxA-CEGHSX]"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "%(\\d+\\$)?(-|#|\\+|\\ |0|,|\\()*\\d*(\\.\\d+)?[a-hosxA-CEGHSX]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "%(\\d+\\$)?(-|#|\\+|\\ |0|,|\\()*\\d*(t|T)(a|A|b|B|c|C|d|D|e|F|h|H|I|j|k|l|L|m|M|N|p|P|Q|r|R|s|S|T|y|Y|z|Z)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "%(\\d+\\$)?(-|#|\\+|\\ |0|,|\\()*\\d*(t|T)(a|A|b|B|c|C|d|D|e|F|h|H|I|j|k|l|L|m|M|N|p|P|Q|r|R|s|S|T|y|Y|z|Z)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%(%|n)"
-                              , reCompiled = Just (compileRegex True "%(%|n)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Scala"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Stephane Micheloud (stephane.micheloud@epfl.ch)"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.scala" ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Scala\", sFilename = \"scala.xml\", sShortname = \"Scala\", sContexts = fromList [(\"Commentar 1\",Context {cName = \"Commentar 1\", cSyntax = \"Scala\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Commentar 2\",Context {cName = \"Commentar 2\", cSyntax = \"Scala\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Member\",Context {cName = \"Member\", cSyntax = \"Scala\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[_a-zA-Z]\\\\w*(?=[\\\\s]*)\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Scala\", cRules = [Rule {rMatcher = IncludeRules (\"Javadoc\",\"\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"abstract\",\"case\",\"catch\",\"class\",\"def\",\"do\",\"else\",\"extends\",\"false\",\"final\",\"finally\",\"for\",\"forSome\",\"if\",\"implicit\",\"import\",\"lazy\",\"match\",\"new\",\"null\",\"object\",\"override\",\"package\",\"private\",\"protected\",\"requires\",\"return\",\"sealed\",\"super\",\"this\",\"throw\",\"trait\",\"true\",\"try\",\"type\",\"val\",\"var\",\"while\",\"with\",\"yield\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"boolean\",\"byte\",\"char\",\"double\",\"float\",\"int\",\"long\",\"short\",\"unit\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"ACTIVE\",\"ACTIVITY_COMPLETED\",\"ACTIVITY_REQUIRED\",\"ARG_IN\",\"ARG_INOUT\",\"ARG_OUT\",\"AWTError\",\"AWTEvent\",\"AWTEventListener\",\"AWTEventListenerProxy\",\"AWTEventMulticaster\",\"AWTException\",\"AWTKeyStroke\",\"AWTPermission\",\"AbstractAction\",\"AbstractBorder\",\"AbstractButton\",\"AbstractCellEditor\",\"AbstractCollection\",\"AbstractColorChooserPanel\",\"AbstractDocument\",\"AbstractDocument.AttributeContext\",\"AbstractDocument.Content\",\"AbstractDocument.ElementEdit\",\"AbstractExecutorService\",\"AbstractInterruptibleChannel\",\"AbstractLayoutCache\",\"AbstractLayoutCache.NodeDimensions\",\"AbstractList\",\"AbstractListModel\",\"AbstractMap\",\"AbstractMethodError\",\"AbstractPreferences\",\"AbstractQueue\",\"AbstractQueuedSynchronizer\",\"AbstractSelectableChannel\",\"AbstractSelectionKey\",\"AbstractSelector\",\"AbstractSequentialList\",\"AbstractSet\",\"AbstractSpinnerModel\",\"AbstractTableModel\",\"AbstractUndoableEdit\",\"AbstractWriter\",\"AccessControlContext\",\"AccessControlException\",\"AccessController\",\"AccessException\",\"Accessible\",\"AccessibleAction\",\"AccessibleAttributeSequence\",\"AccessibleBundle\",\"AccessibleComponent\",\"AccessibleContext\",\"AccessibleEditableText\",\"AccessibleExtendedComponent\",\"AccessibleExtendedTable\",\"AccessibleExtendedText\",\"AccessibleHyperlink\",\"AccessibleHypertext\",\"AccessibleIcon\",\"AccessibleKeyBinding\",\"AccessibleObject\",\"AccessibleRelation\",\"AccessibleRelationSet\",\"AccessibleResourceBundle\",\"AccessibleRole\",\"AccessibleSelection\",\"AccessibleState\",\"AccessibleStateSet\",\"AccessibleStreamable\",\"AccessibleTable\",\"AccessibleTableModelChange\",\"AccessibleText\",\"AccessibleTextSequence\",\"AccessibleValue\",\"AccountException\",\"AccountExpiredException\",\"AccountLockedException\",\"AccountNotFoundException\",\"Acl\",\"AclEntry\",\"AclNotFoundException\",\"Action\",\"ActionEvent\",\"ActionListener\",\"ActionMap\",\"ActionMapUIResource\",\"Activatable\",\"ActivateFailedException\",\"ActivationDesc\",\"ActivationException\",\"ActivationGroup\",\"ActivationGroupDesc\",\"ActivationGroupDesc.CommandEnvironment\",\"ActivationGroupID\",\"ActivationGroup_Stub\",\"ActivationID\",\"ActivationInstantiator\",\"ActivationMonitor\",\"ActivationSystem\",\"Activator\",\"ActiveEvent\",\"ActivityCompletedException\",\"ActivityRequiredException\",\"AdapterActivator\",\"AdapterActivatorOperations\",\"AdapterAlreadyExists\",\"AdapterAlreadyExistsHelper\",\"AdapterInactive\",\"AdapterInactiveHelper\",\"AdapterManagerIdHelper\",\"AdapterNameHelper\",\"AdapterNonExistent\",\"AdapterNonExistentHelper\",\"AdapterStateHelper\",\"AddressHelper\",\"Adjustable\",\"AdjustmentEvent\",\"AdjustmentListener\",\"Adler32\",\"AffineTransform\",\"AffineTransformOp\",\"AlgorithmParameterGenerator\",\"AlgorithmParameterGeneratorSpi\",\"AlgorithmParameterSpec\",\"AlgorithmParameters\",\"AlgorithmParametersSpi\",\"AllPermission\",\"AlphaComposite\",\"AlreadyBound\",\"AlreadyBoundException\",\"AlreadyBoundHelper\",\"AlreadyBoundHolder\",\"AlreadyConnectedException\",\"AncestorEvent\",\"AncestorListener\",\"AnnotatedElement\",\"Annotation\",\"AnnotationFormatError\",\"AnnotationTypeMismatchException\",\"Any\",\"AnyHolder\",\"AnySeqHelper\",\"AnySeqHolder\",\"AppConfigurationEntry\",\"AppConfigurationEntry.LoginModuleControlFlag\",\"Appendable\",\"Applet\",\"AppletContext\",\"AppletInitializer\",\"AppletStub\",\"ApplicationException\",\"Arc2D\",\"Arc2D.Double\",\"Arc2D.Float\",\"Area\",\"AreaAveragingScaleFilter\",\"ArithmeticException\",\"Array\",\"ArrayBlockingQueue\",\"ArrayIndexOutOfBoundsException\",\"ArrayList\",\"ArrayStoreException\",\"ArrayType\",\"Arrays\",\"AssertionError\",\"AsyncBoxView\",\"AsynchronousCloseException\",\"AtomicBoolean\",\"AtomicInteger\",\"AtomicIntegerArray\",\"AtomicIntegerFieldUpdater\",\"AtomicLong\",\"AtomicLongArray\",\"AtomicLongFieldUpdater\",\"AtomicMarkableReference\",\"AtomicReference\",\"AtomicReferenceArray\",\"AtomicReferenceFieldUpdater\",\"AtomicStampedReference\",\"Attr\",\"Attribute\",\"AttributeChangeNotification\",\"AttributeChangeNotificationFilter\",\"AttributeException\",\"AttributeInUseException\",\"AttributeList\",\"AttributeListImpl\",\"AttributeModificationException\",\"AttributeNotFoundException\",\"AttributeSet\",\"AttributeSet.CharacterAttribute\",\"AttributeSet.ColorAttribute\",\"AttributeSet.FontAttribute\",\"AttributeSet.ParagraphAttribute\",\"AttributeSetUtilities\",\"AttributeValueExp\",\"AttributedCharacterIterator\",\"AttributedCharacterIterator.Attribute\",\"AttributedString\",\"Attributes\",\"Attributes.Name\",\"Attributes2\",\"Attributes2Impl\",\"AttributesImpl\",\"AudioClip\",\"AudioFileFormat\",\"AudioFileFormat.Type\",\"AudioFileReader\",\"AudioFileWriter\",\"AudioFormat\",\"AudioFormat.Encoding\",\"AudioInputStream\",\"AudioPermission\",\"AudioSystem\",\"AuthPermission\",\"AuthProvider\",\"AuthenticationException\",\"AuthenticationNotSupportedException\",\"Authenticator\",\"Authenticator.RequestorType\",\"AuthorizeCallback\",\"Autoscroll\",\"BAD_CONTEXT\",\"BAD_INV_ORDER\",\"BAD_OPERATION\",\"BAD_PARAM\",\"BAD_POLICY\",\"BAD_POLICY_TYPE\",\"BAD_POLICY_VALUE\",\"BAD_QOS\",\"BAD_TYPECODE\",\"BMPImageWriteParam\",\"BackingStoreException\",\"BadAttributeValueExpException\",\"BadBinaryOpValueExpException\",\"BadKind\",\"BadLocationException\",\"BadPaddingException\",\"BadStringOperationException\",\"BandCombineOp\",\"BandedSampleModel\",\"BaseRowSet\",\"BasicArrowButton\",\"BasicAttribute\",\"BasicAttributes\",\"BasicBorders\",\"BasicBorders.ButtonBorder\",\"BasicBorders.FieldBorder\",\"BasicBorders.MarginBorder\",\"BasicBorders.MenuBarBorder\",\"BasicBorders.RadioButtonBorder\",\"BasicBorders.RolloverButtonBorder\",\"BasicBorders.SplitPaneBorder\",\"BasicBorders.ToggleButtonBorder\",\"BasicButtonListener\",\"BasicButtonUI\",\"BasicCheckBoxMenuItemUI\",\"BasicCheckBoxUI\",\"BasicColorChooserUI\",\"BasicComboBoxEditor\",\"BasicComboBoxEditor.UIResource\",\"BasicComboBoxRenderer\",\"BasicComboBoxRenderer.UIResource\",\"BasicComboBoxUI\",\"BasicComboPopup\",\"BasicControl\",\"BasicDesktopIconUI\",\"BasicDesktopPaneUI\",\"BasicDirectoryModel\",\"BasicEditorPaneUI\",\"BasicFileChooserUI\",\"BasicFormattedTextFieldUI\",\"BasicGraphicsUtils\",\"BasicHTML\",\"BasicIconFactory\",\"BasicInternalFrameTitlePane\",\"BasicInternalFrameUI\",\"BasicLabelUI\",\"BasicListUI\",\"BasicLookAndFeel\",\"BasicMenuBarUI\",\"BasicMenuItemUI\",\"BasicMenuUI\",\"BasicOptionPaneUI\",\"BasicOptionPaneUI.ButtonAreaLayout\",\"BasicPanelUI\",\"BasicPasswordFieldUI\",\"BasicPermission\",\"BasicPopupMenuSeparatorUI\",\"BasicPopupMenuUI\",\"BasicProgressBarUI\",\"BasicRadioButtonMenuItemUI\",\"BasicRadioButtonUI\",\"BasicRootPaneUI\",\"BasicScrollBarUI\",\"BasicScrollPaneUI\",\"BasicSeparatorUI\",\"BasicSliderUI\",\"BasicSpinnerUI\",\"BasicSplitPaneDivider\",\"BasicSplitPaneUI\",\"BasicStroke\",\"BasicTabbedPaneUI\",\"BasicTableHeaderUI\",\"BasicTableUI\",\"BasicTextAreaUI\",\"BasicTextFieldUI\",\"BasicTextPaneUI\",\"BasicTextUI\",\"BasicTextUI.BasicCaret\",\"BasicTextUI.BasicHighlighter\",\"BasicToggleButtonUI\",\"BasicToolBarSeparatorUI\",\"BasicToolBarUI\",\"BasicToolTipUI\",\"BasicTreeUI\",\"BasicViewportUI\",\"BatchUpdateException\",\"BeanContext\",\"BeanContextChild\",\"BeanContextChildComponentProxy\",\"BeanContextChildSupport\",\"BeanContextContainerProxy\",\"BeanContextEvent\",\"BeanContextMembershipEvent\",\"BeanContextMembershipListener\",\"BeanContextProxy\",\"BeanContextServiceAvailableEvent\",\"BeanContextServiceProvider\",\"BeanContextServiceProviderBeanInfo\",\"BeanContextServiceRevokedEvent\",\"BeanContextServiceRevokedListener\",\"BeanContextServices\",\"BeanContextServicesListener\",\"BeanContextServicesSupport\",\"BeanContextServicesSupport.BCSSServiceProvider\",\"BeanContextSupport\",\"BeanContextSupport.BCSIterator\",\"BeanDescriptor\",\"BeanInfo\",\"Beans\",\"BevelBorder\",\"Bidi\",\"BigDecimal\",\"BigInteger\",\"BinaryRefAddr\",\"BindException\",\"Binding\",\"BindingHelper\",\"BindingHolder\",\"BindingIterator\",\"BindingIteratorHelper\",\"BindingIteratorHolder\",\"BindingIteratorOperations\",\"BindingIteratorPOA\",\"BindingListHelper\",\"BindingListHolder\",\"BindingType\",\"BindingTypeHelper\",\"BindingTypeHolder\",\"BitSet\",\"Blob\",\"BlockView\",\"BlockingQueue\",\"Book\",\"Boolean\",\"BooleanControl\",\"BooleanControl.Type\",\"BooleanHolder\",\"BooleanSeqHelper\",\"BooleanSeqHolder\",\"Border\",\"BorderFactory\",\"BorderLayout\",\"BorderUIResource\",\"BorderUIResource.BevelBorderUIResource\",\"BorderUIResource.CompoundBorderUIResource\",\"BorderUIResource.EmptyBorderUIResource\",\"BorderUIResource.EtchedBorderUIResource\",\"BorderUIResource.LineBorderUIResource\",\"BorderUIResource.MatteBorderUIResource\",\"BorderUIResource.TitledBorderUIResource\",\"BoundedRangeModel\",\"Bounds\",\"Box\",\"Box.Filler\",\"BoxLayout\",\"BoxView\",\"BoxedValueHelper\",\"BreakIterator\",\"BrokenBarrierException\",\"Buffer\",\"BufferCapabilities\",\"BufferCapabilities.FlipContents\",\"BufferOverflowException\",\"BufferStrategy\",\"BufferUnderflowException\",\"BufferedImage\",\"BufferedImageFilter\",\"BufferedImageOp\",\"BufferedInputStream\",\"BufferedOutputStream\",\"BufferedReader\",\"BufferedWriter\",\"Button\",\"ButtonGroup\",\"ButtonModel\",\"ButtonUI\",\"Byte\",\"ByteArrayInputStream\",\"ByteArrayOutputStream\",\"ByteBuffer\",\"ByteChannel\",\"ByteHolder\",\"ByteLookupTable\",\"ByteOrder\",\"CDATASection\",\"CMMException\",\"CODESET_INCOMPATIBLE\",\"COMM_FAILURE\",\"CRC32\",\"CRL\",\"CRLException\",\"CRLSelector\",\"CSS\",\"CSS.Attribute\",\"CTX_RESTRICT_SCOPE\",\"CacheRequest\",\"CacheResponse\",\"CachedRowSet\",\"Calendar\",\"Callable\",\"CallableStatement\",\"Callback\",\"CallbackHandler\",\"CancelablePrintJob\",\"CancellationException\",\"CancelledKeyException\",\"CannotProceed\",\"CannotProceedException\",\"CannotProceedHelper\",\"CannotProceedHolder\",\"CannotRedoException\",\"CannotUndoException\",\"Canvas\",\"CardLayout\",\"Caret\",\"CaretEvent\",\"CaretListener\",\"CellEditor\",\"CellEditorListener\",\"CellRendererPane\",\"CertPath\",\"CertPath.CertPathRep\",\"CertPathBuilder\",\"CertPathBuilderException\",\"CertPathBuilderResult\",\"CertPathBuilderSpi\",\"CertPathParameters\",\"CertPathTrustManagerParameters\",\"CertPathValidator\",\"CertPathValidatorException\",\"CertPathValidatorResult\",\"CertPathValidatorSpi\",\"CertSelector\",\"CertStore\",\"CertStoreException\",\"CertStoreParameters\",\"CertStoreSpi\",\"Certificate\",\"Certificate.CertificateRep\",\"CertificateEncodingException\",\"CertificateException\",\"CertificateExpiredException\",\"CertificateFactory\",\"CertificateFactorySpi\",\"CertificateNotYetValidException\",\"CertificateParsingException\",\"ChangeEvent\",\"ChangeListener\",\"ChangedCharSetException\",\"Channel\",\"ChannelBinding\",\"Channels\",\"CharArrayReader\",\"CharArrayWriter\",\"CharBuffer\",\"CharConversionException\",\"CharHolder\",\"CharSeqHelper\",\"CharSeqHolder\",\"CharSequence\",\"Character\",\"Character.Subset\",\"Character.UnicodeBlock\",\"CharacterCodingException\",\"CharacterData\",\"CharacterIterator\",\"Charset\",\"CharsetDecoder\",\"CharsetEncoder\",\"CharsetProvider\",\"Checkbox\",\"CheckboxGroup\",\"CheckboxMenuItem\",\"CheckedInputStream\",\"CheckedOutputStream\",\"Checksum\",\"Choice\",\"ChoiceCallback\",\"ChoiceFormat\",\"Chromaticity\",\"Cipher\",\"CipherInputStream\",\"CipherOutputStream\",\"CipherSpi\",\"Class\",\"ClassCastException\",\"ClassCircularityError\",\"ClassDefinition\",\"ClassDesc\",\"ClassFileTransformer\",\"ClassFormatError\",\"ClassLoader\",\"ClassLoaderRepository\",\"ClassLoadingMXBean\",\"ClassNotFoundException\",\"ClientRequestInfo\",\"ClientRequestInfoOperations\",\"ClientRequestInterceptor\",\"ClientRequestInterceptorOperations\",\"Clip\",\"Clipboard\",\"ClipboardOwner\",\"Clob\",\"CloneNotSupportedException\",\"Cloneable\",\"Closeable\",\"ClosedByInterruptException\",\"ClosedChannelException\",\"ClosedSelectorException\",\"CodeSets\",\"CodeSigner\",\"CodeSource\",\"Codec\",\"CodecFactory\",\"CodecFactoryHelper\",\"CodecFactoryOperations\",\"CodecOperations\",\"CoderMalfunctionError\",\"CoderResult\",\"CodingErrorAction\",\"CollationElementIterator\",\"CollationKey\",\"Collator\",\"Collection\",\"CollectionCertStoreParameters\",\"Collections\",\"Color\",\"ColorChooserComponentFactory\",\"ColorChooserUI\",\"ColorConvertOp\",\"ColorModel\",\"ColorSelectionModel\",\"ColorSpace\",\"ColorSupported\",\"ColorType\",\"ColorUIResource\",\"ComboBoxEditor\",\"ComboBoxModel\",\"ComboBoxUI\",\"ComboPopup\",\"Comment\",\"CommunicationException\",\"Comparable\",\"Comparator\",\"CompilationMXBean\",\"Compiler\",\"CompletionService\",\"CompletionStatus\",\"CompletionStatusHelper\",\"Component\",\"ComponentAdapter\",\"ComponentColorModel\",\"ComponentEvent\",\"ComponentIdHelper\",\"ComponentInputMap\",\"ComponentInputMapUIResource\",\"ComponentListener\",\"ComponentOrientation\",\"ComponentSampleModel\",\"ComponentUI\",\"ComponentView\",\"Composite\",\"CompositeContext\",\"CompositeData\",\"CompositeDataSupport\",\"CompositeName\",\"CompositeType\",\"CompositeView\",\"CompoundBorder\",\"CompoundControl\",\"CompoundControl.Type\",\"CompoundEdit\",\"CompoundName\",\"Compression\",\"ConcurrentHashMap\",\"ConcurrentLinkedQueue\",\"ConcurrentMap\",\"ConcurrentModificationException\",\"Condition\",\"Configuration\",\"ConfigurationException\",\"ConfirmationCallback\",\"ConnectException\",\"ConnectIOException\",\"Connection\",\"ConnectionEvent\",\"ConnectionEventListener\",\"ConnectionPendingException\",\"ConnectionPoolDataSource\",\"ConsoleHandler\",\"Constructor\",\"Container\",\"ContainerAdapter\",\"ContainerEvent\",\"ContainerListener\",\"ContainerOrderFocusTraversalPolicy\",\"ContentHandler\",\"ContentHandlerFactory\",\"ContentModel\",\"Context\",\"ContextList\",\"ContextNotEmptyException\",\"ContextualRenderedImageFactory\",\"Control\",\"Control.Type\",\"ControlFactory\",\"ControllerEventListener\",\"ConvolveOp\",\"CookieHandler\",\"CookieHolder\",\"Copies\",\"CopiesSupported\",\"CopyOnWriteArrayList\",\"CopyOnWriteArraySet\",\"CountDownLatch\",\"CounterMonitor\",\"CounterMonitorMBean\",\"CredentialException\",\"CredentialExpiredException\",\"CredentialNotFoundException\",\"CropImageFilter\",\"CubicCurve2D\",\"CubicCurve2D.Double\",\"CubicCurve2D.Float\",\"Currency\",\"Current\",\"CurrentHelper\",\"CurrentHolder\",\"CurrentOperations\",\"Cursor\",\"CustomMarshal\",\"CustomValue\",\"Customizer\",\"CyclicBarrier\",\"DATA_CONVERSION\",\"DESKeySpec\",\"DESedeKeySpec\",\"DGC\",\"DHGenParameterSpec\",\"DHKey\",\"DHParameterSpec\",\"DHPrivateKey\",\"DHPrivateKeySpec\",\"DHPublicKey\",\"DHPublicKeySpec\",\"DISCARDING\",\"DOMConfiguration\",\"DOMError\",\"DOMErrorHandler\",\"DOMException\",\"DOMImplementation\",\"DOMImplementationLS\",\"DOMImplementationList\",\"DOMImplementationRegistry\",\"DOMImplementationSource\",\"DOMLocator\",\"DOMResult\",\"DOMSource\",\"DOMStringList\",\"DSAKey\",\"DSAKeyPairGenerator\",\"DSAParameterSpec\",\"DSAParams\",\"DSAPrivateKey\",\"DSAPrivateKeySpec\",\"DSAPublicKey\",\"DSAPublicKeySpec\",\"DTD\",\"DTDConstants\",\"DTDHandler\",\"DataBuffer\",\"DataBufferByte\",\"DataBufferDouble\",\"DataBufferFloat\",\"DataBufferInt\",\"DataBufferShort\",\"DataBufferUShort\",\"DataFlavor\",\"DataFormatException\",\"DataInput\",\"DataInputStream\",\"DataLine\",\"DataLine.Info\",\"DataOutput\",\"DataOutputStream\",\"DataSource\",\"DataTruncation\",\"DatabaseMetaData\",\"DatagramChannel\",\"DatagramPacket\",\"DatagramSocket\",\"DatagramSocketImpl\",\"DatagramSocketImplFactory\",\"DatatypeConfigurationException\",\"DatatypeConstants\",\"DatatypeConstants.Field\",\"DatatypeFactory\",\"Date\",\"DateFormat\",\"DateFormat.Field\",\"DateFormatSymbols\",\"DateFormatter\",\"DateTimeAtCompleted\",\"DateTimeAtCreation\",\"DateTimeAtProcessing\",\"DateTimeSyntax\",\"DebugGraphics\",\"DecimalFormat\",\"DecimalFormatSymbols\",\"DeclHandler\",\"DefaultBoundedRangeModel\",\"DefaultButtonModel\",\"DefaultCaret\",\"DefaultCellEditor\",\"DefaultColorSelectionModel\",\"DefaultComboBoxModel\",\"DefaultDesktopManager\",\"DefaultEditorKit\",\"DefaultEditorKit.BeepAction\",\"DefaultEditorKit.CopyAction\",\"DefaultEditorKit.CutAction\",\"DefaultEditorKit.DefaultKeyTypedAction\",\"DefaultEditorKit.InsertBreakAction\",\"DefaultEditorKit.InsertContentAction\",\"DefaultEditorKit.InsertTabAction\",\"DefaultEditorKit.PasteAction\",\"DefaultFocusManager\",\"DefaultFocusTraversalPolicy\",\"DefaultFormatter\",\"DefaultFormatterFactory\",\"DefaultHandler\",\"DefaultHandler2\",\"DefaultHighlighter\",\"DefaultHighlighter.DefaultHighlightPainter\",\"DefaultKeyboardFocusManager\",\"DefaultListCellRenderer\",\"DefaultListCellRenderer.UIResource\",\"DefaultListModel\",\"DefaultListSelectionModel\",\"DefaultLoaderRepository\",\"DefaultMenuLayout\",\"DefaultMetalTheme\",\"DefaultMutableTreeNode\",\"DefaultPersistenceDelegate\",\"DefaultSingleSelectionModel\",\"DefaultStyledDocument\",\"DefaultStyledDocument.AttributeUndoableEdit\",\"DefaultStyledDocument.ElementSpec\",\"DefaultTableCellRenderer\",\"DefaultTableCellRenderer.UIResource\",\"DefaultTableColumnModel\",\"DefaultTableModel\",\"DefaultTextUI\",\"DefaultTreeCellEditor\",\"DefaultTreeCellRenderer\",\"DefaultTreeModel\",\"DefaultTreeSelectionModel\",\"DefinitionKind\",\"DefinitionKindHelper\",\"Deflater\",\"DeflaterOutputStream\",\"DelayQueue\",\"Delayed\",\"Delegate\",\"DelegationPermission\",\"Deprecated\",\"Descriptor\",\"DescriptorAccess\",\"DescriptorSupport\",\"DesignMode\",\"DesktopIconUI\",\"DesktopManager\",\"DesktopPaneUI\",\"Destination\",\"DestroyFailedException\",\"Destroyable\",\"Dialog\",\"Dictionary\",\"DigestException\",\"DigestInputStream\",\"DigestOutputStream\",\"Dimension\",\"Dimension2D\",\"DimensionUIResource\",\"DirContext\",\"DirObjectFactory\",\"DirStateFactory\",\"DirStateFactory.Result\",\"DirectColorModel\",\"DirectoryManager\",\"DisplayMode\",\"DnDConstants\",\"Doc\",\"DocAttribute\",\"DocAttributeSet\",\"DocFlavor\",\"DocFlavor.BYTE_ARRAY\",\"DocFlavor.CHAR_ARRAY\",\"DocFlavor.INPUT_STREAM\",\"DocFlavor.READER\",\"DocFlavor.SERVICE_FORMATTED\",\"DocFlavor.STRING\",\"DocFlavor.URL\",\"DocPrintJob\",\"Document\",\"DocumentBuilder\",\"DocumentBuilderFactory\",\"DocumentEvent\",\"DocumentEvent.ElementChange\",\"DocumentEvent.EventType\",\"DocumentFilter\",\"DocumentFilter.FilterBypass\",\"DocumentFragment\",\"DocumentHandler\",\"DocumentListener\",\"DocumentName\",\"DocumentParser\",\"DocumentType\",\"Documented\",\"DomainCombiner\",\"DomainManager\",\"DomainManagerOperations\",\"Double\",\"DoubleBuffer\",\"DoubleHolder\",\"DoubleSeqHelper\",\"DoubleSeqHolder\",\"DragGestureEvent\",\"DragGestureListener\",\"DragGestureRecognizer\",\"DragSource\",\"DragSourceAdapter\",\"DragSourceContext\",\"DragSourceDragEvent\",\"DragSourceDropEvent\",\"DragSourceEvent\",\"DragSourceListener\",\"DragSourceMotionListener\",\"Driver\",\"DriverManager\",\"DriverPropertyInfo\",\"DropTarget\",\"DropTarget.DropTargetAutoScroller\",\"DropTargetAdapter\",\"DropTargetContext\",\"DropTargetDragEvent\",\"DropTargetDropEvent\",\"DropTargetEvent\",\"DropTargetListener\",\"DuplicateFormatFlagsException\",\"DuplicateName\",\"DuplicateNameHelper\",\"Duration\",\"DynAny\",\"DynAnyFactory\",\"DynAnyFactoryHelper\",\"DynAnyFactoryOperations\",\"DynAnyHelper\",\"DynAnyOperations\",\"DynAnySeqHelper\",\"DynArray\",\"DynArrayHelper\",\"DynArrayOperations\",\"DynEnum\",\"DynEnumHelper\",\"DynEnumOperations\",\"DynFixed\",\"DynFixedHelper\",\"DynFixedOperations\",\"DynSequence\",\"DynSequenceHelper\",\"DynSequenceOperations\",\"DynStruct\",\"DynStructHelper\",\"DynStructOperations\",\"DynUnion\",\"DynUnionHelper\",\"DynUnionOperations\",\"DynValue\",\"DynValueBox\",\"DynValueBoxOperations\",\"DynValueCommon\",\"DynValueCommonOperations\",\"DynValueHelper\",\"DynValueOperations\",\"DynamicImplementation\",\"DynamicMBean\",\"ECField\",\"ECFieldF2m\",\"ECFieldFp\",\"ECGenParameterSpec\",\"ECKey\",\"ECParameterSpec\",\"ECPoint\",\"ECPrivateKey\",\"ECPrivateKeySpec\",\"ECPublicKey\",\"ECPublicKeySpec\",\"ENCODING_CDR_ENCAPS\",\"EOFException\",\"EditorKit\",\"Element\",\"ElementIterator\",\"ElementType\",\"Ellipse2D\",\"Ellipse2D.Double\",\"Ellipse2D.Float\",\"EllipticCurve\",\"EmptyBorder\",\"EmptyStackException\",\"EncodedKeySpec\",\"Encoder\",\"Encoding\",\"EncryptedPrivateKeyInfo\",\"Entity\",\"EntityReference\",\"EntityResolver\",\"EntityResolver2\",\"Enum\",\"EnumConstantNotPresentException\",\"EnumControl\",\"EnumControl.Type\",\"EnumMap\",\"EnumSet\",\"EnumSyntax\",\"Enumeration\",\"Environment\",\"Error\",\"ErrorHandler\",\"ErrorListener\",\"ErrorManager\",\"EtchedBorder\",\"Event\",\"EventContext\",\"EventDirContext\",\"EventHandler\",\"EventListener\",\"EventListenerList\",\"EventListenerProxy\",\"EventObject\",\"EventQueue\",\"EventSetDescriptor\",\"Exception\",\"ExceptionDetailMessage\",\"ExceptionInInitializerError\",\"ExceptionList\",\"ExceptionListener\",\"Exchanger\",\"ExecutionException\",\"Executor\",\"ExecutorCompletionService\",\"ExecutorService\",\"Executors\",\"ExemptionMechanism\",\"ExemptionMechanismException\",\"ExemptionMechanismSpi\",\"ExpandVetoException\",\"ExportException\",\"Expression\",\"ExtendedRequest\",\"ExtendedResponse\",\"Externalizable\",\"FREE_MEM\",\"FactoryConfigurationError\",\"FailedLoginException\",\"FeatureDescriptor\",\"Fidelity\",\"Field\",\"FieldNameHelper\",\"FieldPosition\",\"FieldView\",\"File\",\"FileCacheImageInputStream\",\"FileCacheImageOutputStream\",\"FileChannel\",\"FileChannel.MapMode\",\"FileChooserUI\",\"FileDescriptor\",\"FileDialog\",\"FileFilter\",\"FileHandler\",\"FileImageInputStream\",\"FileImageOutputStream\",\"FileInputStream\",\"FileLock\",\"FileLockInterruptionException\",\"FileNameMap\",\"FileNotFoundException\",\"FileOutputStream\",\"FilePermission\",\"FileReader\",\"FileSystemView\",\"FileView\",\"FileWriter\",\"FilenameFilter\",\"Filter\",\"FilterInputStream\",\"FilterOutputStream\",\"FilterReader\",\"FilterWriter\",\"FilteredImageSource\",\"FilteredRowSet\",\"Finishings\",\"FixedHeightLayoutCache\",\"FixedHolder\",\"FlatteningPathIterator\",\"FlavorEvent\",\"FlavorException\",\"FlavorListener\",\"FlavorMap\",\"FlavorTable\",\"Float\",\"FloatBuffer\",\"FloatControl\",\"FloatControl.Type\",\"FloatHolder\",\"FloatSeqHelper\",\"FloatSeqHolder\",\"FlowLayout\",\"FlowView\",\"FlowView.FlowStrategy\",\"Flushable\",\"FocusAdapter\",\"FocusEvent\",\"FocusListener\",\"FocusManager\",\"FocusTraversalPolicy\",\"Font\",\"FontFormatException\",\"FontMetrics\",\"FontRenderContext\",\"FontUIResource\",\"FormSubmitEvent\",\"FormSubmitEvent.MethodType\",\"FormView\",\"Format\",\"Format.Field\",\"FormatConversionProvider\",\"FormatFlagsConversionMismatchException\",\"FormatMismatch\",\"FormatMismatchHelper\",\"Formattable\",\"FormattableFlags\",\"Formatter\",\"FormatterClosedException\",\"ForwardRequest\",\"ForwardRequestHelper\",\"Frame\",\"Future\",\"FutureTask\",\"GSSContext\",\"GSSCredential\",\"GSSException\",\"GSSManager\",\"GSSName\",\"GZIPInputStream\",\"GZIPOutputStream\",\"GapContent\",\"GarbageCollectorMXBean\",\"GatheringByteChannel\",\"GaugeMonitor\",\"GaugeMonitorMBean\",\"GeneralPath\",\"GeneralSecurityException\",\"GenericArrayType\",\"GenericDeclaration\",\"GenericSignatureFormatError\",\"GlyphJustificationInfo\",\"GlyphMetrics\",\"GlyphVector\",\"GlyphView\",\"GlyphView.GlyphPainter\",\"GradientPaint\",\"GraphicAttribute\",\"Graphics\",\"Graphics2D\",\"GraphicsConfigTemplate\",\"GraphicsConfiguration\",\"GraphicsDevice\",\"GraphicsEnvironment\",\"GrayFilter\",\"GregorianCalendar\",\"GridBagConstraints\",\"GridBagLayout\",\"GridLayout\",\"Group\",\"Guard\",\"GuardedObject\",\"HOLDING\",\"HTML\",\"HTML.Attribute\",\"HTML.Tag\",\"HTML.UnknownTag\",\"HTMLDocument\",\"HTMLDocument.Iterator\",\"HTMLEditorKit\",\"HTMLEditorKit.HTMLFactory\",\"HTMLEditorKit.HTMLTextAction\",\"HTMLEditorKit.InsertHTMLTextAction\",\"HTMLEditorKit.LinkController\",\"HTMLEditorKit.Parser\",\"HTMLEditorKit.ParserCallback\",\"HTMLFrameHyperlinkEvent\",\"HTMLWriter\",\"Handler\",\"HandlerBase\",\"HandshakeCompletedEvent\",\"HandshakeCompletedListener\",\"HasControls\",\"HashAttributeSet\",\"HashDocAttributeSet\",\"HashMap\",\"HashPrintJobAttributeSet\",\"HashPrintRequestAttributeSet\",\"HashPrintServiceAttributeSet\",\"HashSet\",\"Hashtable\",\"HeadlessException\",\"HierarchyBoundsAdapter\",\"HierarchyBoundsListener\",\"HierarchyEvent\",\"HierarchyListener\",\"Highlighter\",\"Highlighter.Highlight\",\"Highlighter.HighlightPainter\",\"HostnameVerifier\",\"HttpRetryException\",\"HttpURLConnection\",\"HttpsURLConnection\",\"HyperlinkEvent\",\"HyperlinkEvent.EventType\",\"HyperlinkListener\",\"ICC_ColorSpace\",\"ICC_Profile\",\"ICC_ProfileGray\",\"ICC_ProfileRGB\",\"IDLEntity\",\"IDLType\",\"IDLTypeHelper\",\"IDLTypeOperations\",\"ID_ASSIGNMENT_POLICY_ID\",\"ID_UNIQUENESS_POLICY_ID\",\"IIOByteBuffer\",\"IIOException\",\"IIOImage\",\"IIOInvalidTreeException\",\"IIOMetadata\",\"IIOMetadataController\",\"IIOMetadataFormat\",\"IIOMetadataFormatImpl\",\"IIOMetadataNode\",\"IIOParam\",\"IIOParamController\",\"IIOReadProgressListener\",\"IIOReadUpdateListener\",\"IIOReadWarningListener\",\"IIORegistry\",\"IIOServiceProvider\",\"IIOWriteProgressListener\",\"IIOWriteWarningListener\",\"IMPLICIT_ACTIVATION_POLICY_ID\",\"IMP_LIMIT\",\"INACTIVE\",\"INITIALIZE\",\"INTERNAL\",\"INTF_REPOS\",\"INVALID_ACTIVITY\",\"INVALID_TRANSACTION\",\"INV_FLAG\",\"INV_IDENT\",\"INV_OBJREF\",\"INV_POLICY\",\"IOException\",\"IOR\",\"IORHelper\",\"IORHolder\",\"IORInfo\",\"IORInfoOperations\",\"IORInterceptor\",\"IORInterceptorOperations\",\"IORInterceptor_3_0\",\"IORInterceptor_3_0Helper\",\"IORInterceptor_3_0Holder\",\"IORInterceptor_3_0Operations\",\"IRObject\",\"IRObjectOperations\",\"Icon\",\"IconUIResource\",\"IconView\",\"IdAssignmentPolicy\",\"IdAssignmentPolicyOperations\",\"IdAssignmentPolicyValue\",\"IdUniquenessPolicy\",\"IdUniquenessPolicyOperations\",\"IdUniquenessPolicyValue\",\"IdentifierHelper\",\"Identity\",\"IdentityHashMap\",\"IdentityScope\",\"IllegalAccessError\",\"IllegalAccessException\",\"IllegalArgumentException\",\"IllegalBlockSizeException\",\"IllegalBlockingModeException\",\"IllegalCharsetNameException\",\"IllegalClassFormatException\",\"IllegalComponentStateException\",\"IllegalFormatCodePointException\",\"IllegalFormatConversionException\",\"IllegalFormatException\",\"IllegalFormatFlagsException\",\"IllegalFormatPrecisionException\",\"IllegalFormatWidthException\",\"IllegalMonitorStateException\",\"IllegalPathStateException\",\"IllegalSelectorException\",\"IllegalStateException\",\"IllegalThreadStateException\",\"Image\",\"ImageCapabilities\",\"ImageConsumer\",\"ImageFilter\",\"ImageGraphicAttribute\",\"ImageIO\",\"ImageIcon\",\"ImageInputStream\",\"ImageInputStreamImpl\",\"ImageInputStreamSpi\",\"ImageObserver\",\"ImageOutputStream\",\"ImageOutputStreamImpl\",\"ImageOutputStreamSpi\",\"ImageProducer\",\"ImageReadParam\",\"ImageReader\",\"ImageReaderSpi\",\"ImageReaderWriterSpi\",\"ImageTranscoder\",\"ImageTranscoderSpi\",\"ImageTypeSpecifier\",\"ImageView\",\"ImageWriteParam\",\"ImageWriter\",\"ImageWriterSpi\",\"ImagingOpException\",\"ImplicitActivationPolicy\",\"ImplicitActivationPolicyOperations\",\"ImplicitActivationPolicyValue\",\"IncompatibleClassChangeError\",\"IncompleteAnnotationException\",\"InconsistentTypeCode\",\"InconsistentTypeCodeHelper\",\"IndexColorModel\",\"IndexOutOfBoundsException\",\"IndexedPropertyChangeEvent\",\"IndexedPropertyDescriptor\",\"IndirectionException\",\"Inet4Address\",\"Inet6Address\",\"InetAddress\",\"InetSocketAddress\",\"Inflater\",\"InflaterInputStream\",\"InheritableThreadLocal\",\"Inherited\",\"InitialContext\",\"InitialContextFactory\",\"InitialContextFactoryBuilder\",\"InitialDirContext\",\"InitialLdapContext\",\"InlineView\",\"InputContext\",\"InputEvent\",\"InputMap\",\"InputMapUIResource\",\"InputMethod\",\"InputMethodContext\",\"InputMethodDescriptor\",\"InputMethodEvent\",\"InputMethodHighlight\",\"InputMethodListener\",\"InputMethodRequests\",\"InputMismatchException\",\"InputSource\",\"InputStream\",\"InputStreamReader\",\"InputSubset\",\"InputVerifier\",\"Insets\",\"InsetsUIResource\",\"InstanceAlreadyExistsException\",\"InstanceNotFoundException\",\"InstantiationError\",\"InstantiationException\",\"Instrument\",\"Instrumentation\",\"InsufficientResourcesException\",\"IntBuffer\",\"IntHolder\",\"Integer\",\"IntegerSyntax\",\"Interceptor\",\"InterceptorOperations\",\"InternalError\",\"InternalFrameAdapter\",\"InternalFrameEvent\",\"InternalFrameFocusTraversalPolicy\",\"InternalFrameListener\",\"InternalFrameUI\",\"InternationalFormatter\",\"InterruptedException\",\"InterruptedIOException\",\"InterruptedNamingException\",\"InterruptibleChannel\",\"IntrospectionException\",\"Introspector\",\"Invalid\",\"InvalidActivityException\",\"InvalidAddress\",\"InvalidAddressHelper\",\"InvalidAddressHolder\",\"InvalidAlgorithmParameterException\",\"InvalidApplicationException\",\"InvalidAttributeIdentifierException\",\"InvalidAttributeValueException\",\"InvalidAttributesException\",\"InvalidClassException\",\"InvalidDnDOperationException\",\"InvalidKeyException\",\"InvalidKeySpecException\",\"InvalidMarkException\",\"InvalidMidiDataException\",\"InvalidName\",\"InvalidNameException\",\"InvalidNameHelper\",\"InvalidNameHolder\",\"InvalidObjectException\",\"InvalidOpenTypeException\",\"InvalidParameterException\",\"InvalidParameterSpecException\",\"InvalidPolicy\",\"InvalidPolicyHelper\",\"InvalidPreferencesFormatException\",\"InvalidPropertiesFormatException\",\"InvalidRelationIdException\",\"InvalidRelationServiceException\",\"InvalidRelationTypeException\",\"InvalidRoleInfoException\",\"InvalidRoleValueException\",\"InvalidSearchControlsException\",\"InvalidSearchFilterException\",\"InvalidSeq\",\"InvalidSlot\",\"InvalidSlotHelper\",\"InvalidTargetObjectTypeException\",\"InvalidTransactionException\",\"InvalidTypeForEncoding\",\"InvalidTypeForEncodingHelper\",\"InvalidValue\",\"InvalidValueHelper\",\"InvocationEvent\",\"InvocationHandler\",\"InvocationTargetException\",\"InvokeHandler\",\"IstringHelper\",\"ItemEvent\",\"ItemListener\",\"ItemSelectable\",\"Iterable\",\"Iterator\",\"IvParameterSpec\",\"JApplet\",\"JButton\",\"JCheckBox\",\"JCheckBoxMenuItem\",\"JColorChooser\",\"JComboBox\",\"JComboBox.KeySelectionManager\",\"JComponent\",\"JDesktopPane\",\"JDialog\",\"JEditorPane\",\"JFileChooser\",\"JFormattedTextField\",\"JFormattedTextField.AbstractFormatter\",\"JFormattedTextField.AbstractFormatterFactory\",\"JFrame\",\"JInternalFrame\",\"JInternalFrame.JDesktopIcon\",\"JLabel\",\"JLayeredPane\",\"JList\",\"JMException\",\"JMRuntimeException\",\"JMXAuthenticator\",\"JMXConnectionNotification\",\"JMXConnector\",\"JMXConnectorFactory\",\"JMXConnectorProvider\",\"JMXConnectorServer\",\"JMXConnectorServerFactory\",\"JMXConnectorServerMBean\",\"JMXConnectorServerProvider\",\"JMXPrincipal\",\"JMXProviderException\",\"JMXServerErrorException\",\"JMXServiceURL\",\"JMenu\",\"JMenuBar\",\"JMenuItem\",\"JOptionPane\",\"JPEGHuffmanTable\",\"JPEGImageReadParam\",\"JPEGImageWriteParam\",\"JPEGQTable\",\"JPanel\",\"JPasswordField\",\"JPopupMenu\",\"JPopupMenu.Separator\",\"JProgressBar\",\"JRadioButton\",\"JRadioButtonMenuItem\",\"JRootPane\",\"JScrollBar\",\"JScrollPane\",\"JSeparator\",\"JSlider\",\"JSpinner\",\"JSpinner.DateEditor\",\"JSpinner.DefaultEditor\",\"JSpinner.ListEditor\",\"JSpinner.NumberEditor\",\"JSplitPane\",\"JTabbedPane\",\"JTable\",\"JTable.PrintMode\",\"JTableHeader\",\"JTextArea\",\"JTextComponent\",\"JTextComponent.KeyBinding\",\"JTextField\",\"JTextPane\",\"JToggleButton\",\"JToggleButton.ToggleButtonModel\",\"JToolBar\",\"JToolBar.Separator\",\"JToolTip\",\"JTree\",\"JTree.DynamicUtilTreeNode\",\"JTree.EmptySelectionModel\",\"JViewport\",\"JWindow\",\"JarEntry\",\"JarException\",\"JarFile\",\"JarInputStream\",\"JarOutputStream\",\"JarURLConnection\",\"JdbcRowSet\",\"JobAttributes\",\"JobAttributes.DefaultSelectionType\",\"JobAttributes.DestinationType\",\"JobAttributes.DialogType\",\"JobAttributes.MultipleDocumentHandlingType\",\"JobAttributes.SidesType\",\"JobHoldUntil\",\"JobImpressions\",\"JobImpressionsCompleted\",\"JobImpressionsSupported\",\"JobKOctets\",\"JobKOctetsProcessed\",\"JobKOctetsSupported\",\"JobMediaSheets\",\"JobMediaSheetsCompleted\",\"JobMediaSheetsSupported\",\"JobMessageFromOperator\",\"JobName\",\"JobOriginatingUserName\",\"JobPriority\",\"JobPrioritySupported\",\"JobSheets\",\"JobState\",\"JobStateReason\",\"JobStateReasons\",\"JoinRowSet\",\"Joinable\",\"KerberosKey\",\"KerberosPrincipal\",\"KerberosTicket\",\"Kernel\",\"Key\",\"KeyAdapter\",\"KeyAgreement\",\"KeyAgreementSpi\",\"KeyAlreadyExistsException\",\"KeyEvent\",\"KeyEventDispatcher\",\"KeyEventPostProcessor\",\"KeyException\",\"KeyFactory\",\"KeyFactorySpi\",\"KeyGenerator\",\"KeyGeneratorSpi\",\"KeyListener\",\"KeyManagementException\",\"KeyManager\",\"KeyManagerFactory\",\"KeyManagerFactorySpi\",\"KeyPair\",\"KeyPairGenerator\",\"KeyPairGeneratorSpi\",\"KeyRep\",\"KeyRep.Type\",\"KeySpec\",\"KeyStore\",\"KeyStore.Builder\",\"KeyStore.CallbackHandlerProtection\",\"KeyStore.Entry\",\"KeyStore.LoadStoreParameter\",\"KeyStore.PasswordProtection\",\"KeyStore.PrivateKeyEntry\",\"KeyStore.ProtectionParameter\",\"KeyStore.SecretKeyEntry\",\"KeyStore.TrustedCertificateEntry\",\"KeyStoreBuilderParameters\",\"KeyStoreException\",\"KeyStoreSpi\",\"KeyStroke\",\"KeyboardFocusManager\",\"Keymap\",\"LDAPCertStoreParameters\",\"LIFESPAN_POLICY_ID\",\"LOCATION_FORWARD\",\"LSException\",\"LSInput\",\"LSLoadEvent\",\"LSOutput\",\"LSParser\",\"LSParserFilter\",\"LSProgressEvent\",\"LSResourceResolver\",\"LSSerializer\",\"LSSerializerFilter\",\"Label\",\"LabelUI\",\"LabelView\",\"LanguageCallback\",\"LastOwnerException\",\"LayeredHighlighter\",\"LayeredHighlighter.LayerPainter\",\"LayoutFocusTraversalPolicy\",\"LayoutManager\",\"LayoutManager2\",\"LayoutQueue\",\"LdapContext\",\"LdapName\",\"LdapReferralException\",\"Lease\",\"Level\",\"LexicalHandler\",\"LifespanPolicy\",\"LifespanPolicyOperations\",\"LifespanPolicyValue\",\"LimitExceededException\",\"Line\",\"Line.Info\",\"Line2D\",\"Line2D.Double\",\"Line2D.Float\",\"LineBorder\",\"LineBreakMeasurer\",\"LineEvent\",\"LineEvent.Type\",\"LineListener\",\"LineMetrics\",\"LineNumberInputStream\",\"LineNumberReader\",\"LineUnavailableException\",\"LinkException\",\"LinkLoopException\",\"LinkRef\",\"LinkageError\",\"LinkedBlockingQueue\",\"LinkedHashMap\",\"LinkedHashSet\",\"LinkedList\",\"List\",\"ListCellRenderer\",\"ListDataEvent\",\"ListDataListener\",\"ListIterator\",\"ListModel\",\"ListResourceBundle\",\"ListSelectionEvent\",\"ListSelectionListener\",\"ListSelectionModel\",\"ListUI\",\"ListView\",\"ListenerNotFoundException\",\"LoaderHandler\",\"LocalObject\",\"Locale\",\"LocateRegistry\",\"Locator\",\"Locator2\",\"Locator2Impl\",\"LocatorImpl\",\"Lock\",\"LockSupport\",\"LogManager\",\"LogRecord\",\"LogStream\",\"Logger\",\"LoggingMXBean\",\"LoggingPermission\",\"LoginContext\",\"LoginException\",\"LoginModule\",\"Long\",\"LongBuffer\",\"LongHolder\",\"LongLongSeqHelper\",\"LongLongSeqHolder\",\"LongSeqHelper\",\"LongSeqHolder\",\"LookAndFeel\",\"LookupOp\",\"LookupTable\",\"MARSHAL\",\"MBeanAttributeInfo\",\"MBeanConstructorInfo\",\"MBeanException\",\"MBeanFeatureInfo\",\"MBeanInfo\",\"MBeanNotificationInfo\",\"MBeanOperationInfo\",\"MBeanParameterInfo\",\"MBeanPermission\",\"MBeanRegistration\",\"MBeanRegistrationException\",\"MBeanServer\",\"MBeanServerBuilder\",\"MBeanServerConnection\",\"MBeanServerDelegate\",\"MBeanServerDelegateMBean\",\"MBeanServerFactory\",\"MBeanServerForwarder\",\"MBeanServerInvocationHandler\",\"MBeanServerNotification\",\"MBeanServerNotificationFilter\",\"MBeanServerPermission\",\"MBeanTrustPermission\",\"MGF1ParameterSpec\",\"MLet\",\"MLetMBean\",\"Mac\",\"MacSpi\",\"MalformedInputException\",\"MalformedLinkException\",\"MalformedObjectNameException\",\"MalformedParameterizedTypeException\",\"MalformedURLException\",\"ManageReferralControl\",\"ManagementFactory\",\"ManagementPermission\",\"ManagerFactoryParameters\",\"Manifest\",\"Map\",\"Map.Entry\",\"MappedByteBuffer\",\"MarshalException\",\"MarshalledObject\",\"MaskFormatter\",\"MatchResult\",\"Matcher\",\"Math\",\"MathContext\",\"MatteBorder\",\"Media\",\"MediaName\",\"MediaPrintableArea\",\"MediaSize\",\"MediaSize.Engineering\",\"MediaSize.ISO\",\"MediaSize.JIS\",\"MediaSize.NA\",\"MediaSize.Other\",\"MediaSizeName\",\"MediaTracker\",\"MediaTray\",\"Member\",\"MemoryCacheImageInputStream\",\"MemoryCacheImageOutputStream\",\"MemoryHandler\",\"MemoryImageSource\",\"MemoryMXBean\",\"MemoryManagerMXBean\",\"MemoryNotificationInfo\",\"MemoryPoolMXBean\",\"MemoryType\",\"MemoryUsage\",\"Menu\",\"MenuBar\",\"MenuBarUI\",\"MenuComponent\",\"MenuContainer\",\"MenuDragMouseEvent\",\"MenuDragMouseListener\",\"MenuElement\",\"MenuEvent\",\"MenuItem\",\"MenuItemUI\",\"MenuKeyEvent\",\"MenuKeyListener\",\"MenuListener\",\"MenuSelectionManager\",\"MenuShortcut\",\"MessageDigest\",\"MessageDigestSpi\",\"MessageFormat\",\"MessageFormat.Field\",\"MessageProp\",\"MetaEventListener\",\"MetaMessage\",\"MetalBorders\",\"MetalBorders.ButtonBorder\",\"MetalBorders.Flush3DBorder\",\"MetalBorders.InternalFrameBorder\",\"MetalBorders.MenuBarBorder\",\"MetalBorders.MenuItemBorder\",\"MetalBorders.OptionDialogBorder\",\"MetalBorders.PaletteBorder\",\"MetalBorders.PopupMenuBorder\",\"MetalBorders.RolloverButtonBorder\",\"MetalBorders.ScrollPaneBorder\",\"MetalBorders.TableHeaderBorder\",\"MetalBorders.TextFieldBorder\",\"MetalBorders.ToggleButtonBorder\",\"MetalBorders.ToolBarBorder\",\"MetalButtonUI\",\"MetalCheckBoxIcon\",\"MetalCheckBoxUI\",\"MetalComboBoxButton\",\"MetalComboBoxEditor\",\"MetalComboBoxEditor.UIResource\",\"MetalComboBoxIcon\",\"MetalComboBoxUI\",\"MetalDesktopIconUI\",\"MetalFileChooserUI\",\"MetalIconFactory\",\"MetalIconFactory.FileIcon16\",\"MetalIconFactory.FolderIcon16\",\"MetalIconFactory.PaletteCloseIcon\",\"MetalIconFactory.TreeControlIcon\",\"MetalIconFactory.TreeFolderIcon\",\"MetalIconFactory.TreeLeafIcon\",\"MetalInternalFrameTitlePane\",\"MetalInternalFrameUI\",\"MetalLabelUI\",\"MetalLookAndFeel\",\"MetalMenuBarUI\",\"MetalPopupMenuSeparatorUI\",\"MetalProgressBarUI\",\"MetalRadioButtonUI\",\"MetalRootPaneUI\",\"MetalScrollBarUI\",\"MetalScrollButton\",\"MetalScrollPaneUI\",\"MetalSeparatorUI\",\"MetalSliderUI\",\"MetalSplitPaneUI\",\"MetalTabbedPaneUI\",\"MetalTextFieldUI\",\"MetalTheme\",\"MetalToggleButtonUI\",\"MetalToolBarUI\",\"MetalToolTipUI\",\"MetalTreeUI\",\"Method\",\"MethodDescriptor\",\"MidiChannel\",\"MidiDevice\",\"MidiDevice.Info\",\"MidiDeviceProvider\",\"MidiEvent\",\"MidiFileFormat\",\"MidiFileReader\",\"MidiFileWriter\",\"MidiMessage\",\"MidiSystem\",\"MidiUnavailableException\",\"MimeTypeParseException\",\"MinimalHTMLWriter\",\"MissingFormatArgumentException\",\"MissingFormatWidthException\",\"MissingResourceException\",\"Mixer\",\"Mixer.Info\",\"MixerProvider\",\"ModelMBean\",\"ModelMBeanAttributeInfo\",\"ModelMBeanConstructorInfo\",\"ModelMBeanInfo\",\"ModelMBeanInfoSupport\",\"ModelMBeanNotificationBroadcaster\",\"ModelMBeanNotificationInfo\",\"ModelMBeanOperationInfo\",\"ModificationItem\",\"Modifier\",\"Monitor\",\"MonitorMBean\",\"MonitorNotification\",\"MonitorSettingException\",\"MouseAdapter\",\"MouseDragGestureRecognizer\",\"MouseEvent\",\"MouseInfo\",\"MouseInputAdapter\",\"MouseInputListener\",\"MouseListener\",\"MouseMotionAdapter\",\"MouseMotionListener\",\"MouseWheelEvent\",\"MouseWheelListener\",\"MultiButtonUI\",\"MultiColorChooserUI\",\"MultiComboBoxUI\",\"MultiDesktopIconUI\",\"MultiDesktopPaneUI\",\"MultiDoc\",\"MultiDocPrintJob\",\"MultiDocPrintService\",\"MultiFileChooserUI\",\"MultiInternalFrameUI\",\"MultiLabelUI\",\"MultiListUI\",\"MultiLookAndFeel\",\"MultiMenuBarUI\",\"MultiMenuItemUI\",\"MultiOptionPaneUI\",\"MultiPanelUI\",\"MultiPixelPackedSampleModel\",\"MultiPopupMenuUI\",\"MultiProgressBarUI\",\"MultiRootPaneUI\",\"MultiScrollBarUI\",\"MultiScrollPaneUI\",\"MultiSeparatorUI\",\"MultiSliderUI\",\"MultiSpinnerUI\",\"MultiSplitPaneUI\",\"MultiTabbedPaneUI\",\"MultiTableHeaderUI\",\"MultiTableUI\",\"MultiTextUI\",\"MultiToolBarUI\",\"MultiToolTipUI\",\"MultiTreeUI\",\"MultiViewportUI\",\"MulticastSocket\",\"MultipleComponentProfileHelper\",\"MultipleComponentProfileHolder\",\"MultipleDocumentHandling\",\"MultipleMaster\",\"MutableAttributeSet\",\"MutableComboBoxModel\",\"MutableTreeNode\",\"NON_EXISTENT\",\"NO_IMPLEMENT\",\"NO_MEMORY\",\"NO_PERMISSION\",\"NO_RESOURCES\",\"NO_RESPONSE\",\"NVList\",\"Name\",\"NameAlreadyBoundException\",\"NameCallback\",\"NameClassPair\",\"NameComponent\",\"NameComponentHelper\",\"NameComponentHolder\",\"NameDynAnyPair\",\"NameDynAnyPairHelper\",\"NameDynAnyPairSeqHelper\",\"NameHelper\",\"NameHolder\",\"NameList\",\"NameNotFoundException\",\"NameParser\",\"NameValuePair\",\"NameValuePairHelper\",\"NameValuePairSeqHelper\",\"NamedNodeMap\",\"NamedValue\",\"NamespaceChangeListener\",\"NamespaceContext\",\"NamespaceSupport\",\"Naming\",\"NamingContext\",\"NamingContextExt\",\"NamingContextExtHelper\",\"NamingContextExtHolder\",\"NamingContextExtOperations\",\"NamingContextExtPOA\",\"NamingContextHelper\",\"NamingContextHolder\",\"NamingContextOperations\",\"NamingContextPOA\",\"NamingEnumeration\",\"NamingEvent\",\"NamingException\",\"NamingExceptionEvent\",\"NamingListener\",\"NamingManager\",\"NamingSecurityException\",\"NavigationFilter\",\"NavigationFilter.FilterBypass\",\"NegativeArraySizeException\",\"NetPermission\",\"NetworkInterface\",\"NoClassDefFoundError\",\"NoConnectionPendingException\",\"NoContext\",\"NoContextHelper\",\"NoInitialContextException\",\"NoPermissionException\",\"NoRouteToHostException\",\"NoServant\",\"NoServantHelper\",\"NoSuchAlgorithmException\",\"NoSuchAttributeException\",\"NoSuchElementException\",\"NoSuchFieldError\",\"NoSuchFieldException\",\"NoSuchMethodError\",\"NoSuchMethodException\",\"NoSuchObjectException\",\"NoSuchPaddingException\",\"NoSuchProviderException\",\"Node\",\"NodeChangeEvent\",\"NodeChangeListener\",\"NodeList\",\"NonReadableChannelException\",\"NonWritableChannelException\",\"NoninvertibleTransformException\",\"NotActiveException\",\"NotBoundException\",\"NotCompliantMBeanException\",\"NotContextException\",\"NotEmpty\",\"NotEmptyHelper\",\"NotEmptyHolder\",\"NotFound\",\"NotFoundHelper\",\"NotFoundHolder\",\"NotFoundReason\",\"NotFoundReasonHelper\",\"NotFoundReasonHolder\",\"NotOwnerException\",\"NotSerializableException\",\"NotYetBoundException\",\"NotYetConnectedException\",\"Notation\",\"Notification\",\"NotificationBroadcaster\",\"NotificationBroadcasterSupport\",\"NotificationEmitter\",\"NotificationFilter\",\"NotificationFilterSupport\",\"NotificationListener\",\"NotificationResult\",\"NullCipher\",\"NullPointerException\",\"Number\",\"NumberFormat\",\"NumberFormat.Field\",\"NumberFormatException\",\"NumberFormatter\",\"NumberOfDocuments\",\"NumberOfInterveningJobs\",\"NumberUp\",\"NumberUpSupported\",\"NumericShaper\",\"OAEPParameterSpec\",\"OBJECT_NOT_EXIST\",\"OBJ_ADAPTER\",\"OMGVMCID\",\"ORB\",\"ORBIdHelper\",\"ORBInitInfo\",\"ORBInitInfoOperations\",\"ORBInitializer\",\"ORBInitializerOperations\",\"ObjID\",\"Object\",\"ObjectAlreadyActive\",\"ObjectAlreadyActiveHelper\",\"ObjectChangeListener\",\"ObjectFactory\",\"ObjectFactoryBuilder\",\"ObjectHelper\",\"ObjectHolder\",\"ObjectIdHelper\",\"ObjectImpl\",\"ObjectInput\",\"ObjectInputStream\",\"ObjectInputStream.GetField\",\"ObjectInputValidation\",\"ObjectInstance\",\"ObjectName\",\"ObjectNotActive\",\"ObjectNotActiveHelper\",\"ObjectOutput\",\"ObjectOutputStream\",\"ObjectOutputStream.PutField\",\"ObjectReferenceFactory\",\"ObjectReferenceFactoryHelper\",\"ObjectReferenceFactoryHolder\",\"ObjectReferenceTemplate\",\"ObjectReferenceTemplateHelper\",\"ObjectReferenceTemplateHolder\",\"ObjectReferenceTemplateSeqHelper\",\"ObjectReferenceTemplateSeqHolder\",\"ObjectStreamClass\",\"ObjectStreamConstants\",\"ObjectStreamException\",\"ObjectStreamField\",\"ObjectView\",\"Observable\",\"Observer\",\"OceanTheme\",\"OctetSeqHelper\",\"OctetSeqHolder\",\"Oid\",\"OpenDataException\",\"OpenMBeanAttributeInfo\",\"OpenMBeanAttributeInfoSupport\",\"OpenMBeanConstructorInfo\",\"OpenMBeanConstructorInfoSupport\",\"OpenMBeanInfo\",\"OpenMBeanInfoSupport\",\"OpenMBeanOperationInfo\",\"OpenMBeanOperationInfoSupport\",\"OpenMBeanParameterInfo\",\"OpenMBeanParameterInfoSupport\",\"OpenType\",\"OperatingSystemMXBean\",\"Operation\",\"OperationNotSupportedException\",\"OperationsException\",\"Option\",\"OptionPaneUI\",\"OptionalDataException\",\"OrientationRequested\",\"OutOfMemoryError\",\"OutputDeviceAssigned\",\"OutputKeys\",\"OutputStream\",\"OutputStreamWriter\",\"OverlappingFileLockException\",\"OverlayLayout\",\"Override\",\"Owner\",\"PBEKey\",\"PBEKeySpec\",\"PBEParameterSpec\",\"PDLOverrideSupported\",\"PERSIST_STORE\",\"PKCS8EncodedKeySpec\",\"PKIXBuilderParameters\",\"PKIXCertPathBuilderResult\",\"PKIXCertPathChecker\",\"PKIXCertPathValidatorResult\",\"PKIXParameters\",\"POA\",\"POAHelper\",\"POAManager\",\"POAManagerOperations\",\"POAOperations\",\"PRIVATE_MEMBER\",\"PSSParameterSpec\",\"PSource\",\"PSource.PSpecified\",\"PUBLIC_MEMBER\",\"Pack200\",\"Pack200.Packer\",\"Pack200.Unpacker\",\"Package\",\"PackedColorModel\",\"PageAttributes\",\"PageAttributes.ColorType\",\"PageAttributes.MediaType\",\"PageAttributes.OrientationRequestedType\",\"PageAttributes.OriginType\",\"PageAttributes.PrintQualityType\",\"PageFormat\",\"PageRanges\",\"Pageable\",\"PagedResultsControl\",\"PagedResultsResponseControl\",\"PagesPerMinute\",\"PagesPerMinuteColor\",\"Paint\",\"PaintContext\",\"PaintEvent\",\"Panel\",\"PanelUI\",\"Paper\",\"ParagraphView\",\"Parameter\",\"ParameterBlock\",\"ParameterDescriptor\",\"ParameterMetaData\",\"ParameterMode\",\"ParameterModeHelper\",\"ParameterModeHolder\",\"ParameterizedType\",\"ParseException\",\"ParsePosition\",\"Parser\",\"ParserAdapter\",\"ParserConfigurationException\",\"ParserDelegator\",\"ParserFactory\",\"PartialResultException\",\"PasswordAuthentication\",\"PasswordCallback\",\"PasswordView\",\"Patch\",\"PathIterator\",\"Pattern\",\"PatternSyntaxException\",\"Permission\",\"PermissionCollection\",\"Permissions\",\"PersistenceDelegate\",\"PersistentMBean\",\"PhantomReference\",\"Pipe\",\"Pipe.SinkChannel\",\"Pipe.SourceChannel\",\"PipedInputStream\",\"PipedOutputStream\",\"PipedReader\",\"PipedWriter\",\"PixelGrabber\",\"PixelInterleavedSampleModel\",\"PlainDocument\",\"PlainView\",\"Point\",\"Point2D\",\"Point2D.Double\",\"Point2D.Float\",\"PointerInfo\",\"Policy\",\"PolicyError\",\"PolicyErrorCodeHelper\",\"PolicyErrorHelper\",\"PolicyErrorHolder\",\"PolicyFactory\",\"PolicyFactoryOperations\",\"PolicyHelper\",\"PolicyHolder\",\"PolicyListHelper\",\"PolicyListHolder\",\"PolicyNode\",\"PolicyOperations\",\"PolicyQualifierInfo\",\"PolicyTypeHelper\",\"Polygon\",\"PooledConnection\",\"Popup\",\"PopupFactory\",\"PopupMenu\",\"PopupMenuEvent\",\"PopupMenuListener\",\"PopupMenuUI\",\"Port\",\"Port.Info\",\"PortUnreachableException\",\"PortableRemoteObject\",\"PortableRemoteObjectDelegate\",\"Position\",\"Position.Bias\",\"Predicate\",\"PreferenceChangeEvent\",\"PreferenceChangeListener\",\"Preferences\",\"PreferencesFactory\",\"PreparedStatement\",\"PresentationDirection\",\"Principal\",\"PrincipalHolder\",\"PrintEvent\",\"PrintException\",\"PrintGraphics\",\"PrintJob\",\"PrintJobAdapter\",\"PrintJobAttribute\",\"PrintJobAttributeEvent\",\"PrintJobAttributeListener\",\"PrintJobAttributeSet\",\"PrintJobEvent\",\"PrintJobListener\",\"PrintQuality\",\"PrintRequestAttribute\",\"PrintRequestAttributeSet\",\"PrintService\",\"PrintServiceAttribute\",\"PrintServiceAttributeEvent\",\"PrintServiceAttributeListener\",\"PrintServiceAttributeSet\",\"PrintServiceLookup\",\"PrintStream\",\"PrintWriter\",\"Printable\",\"PrinterAbortException\",\"PrinterException\",\"PrinterGraphics\",\"PrinterIOException\",\"PrinterInfo\",\"PrinterIsAcceptingJobs\",\"PrinterJob\",\"PrinterLocation\",\"PrinterMakeAndModel\",\"PrinterMessageFromOperator\",\"PrinterMoreInfo\",\"PrinterMoreInfoManufacturer\",\"PrinterName\",\"PrinterResolution\",\"PrinterState\",\"PrinterStateReason\",\"PrinterStateReasons\",\"PrinterURI\",\"PriorityBlockingQueue\",\"PriorityQueue\",\"PrivateClassLoader\",\"PrivateCredentialPermission\",\"PrivateKey\",\"PrivateMLet\",\"PrivilegedAction\",\"PrivilegedActionException\",\"PrivilegedExceptionAction\",\"Process\",\"ProcessBuilder\",\"ProcessingInstruction\",\"ProfileDataException\",\"ProfileIdHelper\",\"ProgressBarUI\",\"ProgressMonitor\",\"ProgressMonitorInputStream\",\"Properties\",\"PropertyChangeEvent\",\"PropertyChangeListener\",\"PropertyChangeListenerProxy\",\"PropertyChangeSupport\",\"PropertyDescriptor\",\"PropertyEditor\",\"PropertyEditorManager\",\"PropertyEditorSupport\",\"PropertyPermission\",\"PropertyResourceBundle\",\"PropertyVetoException\",\"ProtectionDomain\",\"ProtocolException\",\"Provider\",\"Provider.Service\",\"ProviderException\",\"Proxy\",\"Proxy.Type\",\"ProxySelector\",\"PublicKey\",\"PushbackInputStream\",\"PushbackReader\",\"QName\",\"QuadCurve2D\",\"QuadCurve2D.Double\",\"QuadCurve2D.Float\",\"Query\",\"QueryEval\",\"QueryExp\",\"Queue\",\"QueuedJobCount\",\"RC2ParameterSpec\",\"RC5ParameterSpec\",\"REBIND\",\"REQUEST_PROCESSING_POLICY_ID\",\"RGBImageFilter\",\"RMIClassLoader\",\"RMIClassLoaderSpi\",\"RMIClientSocketFactory\",\"RMIConnection\",\"RMIConnectionImpl\",\"RMIConnectionImpl_Stub\",\"RMIConnector\",\"RMIConnectorServer\",\"RMICustomMaxStreamFormat\",\"RMIFailureHandler\",\"RMIIIOPServerImpl\",\"RMIJRMPServerImpl\",\"RMISecurityException\",\"RMISecurityManager\",\"RMIServer\",\"RMIServerImpl\",\"RMIServerImpl_Stub\",\"RMIServerSocketFactory\",\"RMISocketFactory\",\"RSAKey\",\"RSAKeyGenParameterSpec\",\"RSAMultiPrimePrivateCrtKey\",\"RSAMultiPrimePrivateCrtKeySpec\",\"RSAOtherPrimeInfo\",\"RSAPrivateCrtKey\",\"RSAPrivateCrtKeySpec\",\"RSAPrivateKey\",\"RSAPrivateKeySpec\",\"RSAPublicKey\",\"RSAPublicKeySpec\",\"RTFEditorKit\",\"Random\",\"RandomAccess\",\"RandomAccessFile\",\"Raster\",\"RasterFormatException\",\"RasterOp\",\"Rdn\",\"ReadOnlyBufferException\",\"ReadWriteLock\",\"Readable\",\"ReadableByteChannel\",\"Reader\",\"RealmCallback\",\"RealmChoiceCallback\",\"Receiver\",\"Rectangle\",\"Rectangle2D\",\"Rectangle2D.Double\",\"Rectangle2D.Float\",\"RectangularShape\",\"ReentrantLock\",\"ReentrantReadWriteLock\",\"ReentrantReadWriteLock.ReadLock\",\"ReentrantReadWriteLock.WriteLock\",\"Ref\",\"RefAddr\",\"Reference\",\"ReferenceQueue\",\"ReferenceUriSchemesSupported\",\"Referenceable\",\"ReferralException\",\"ReflectPermission\",\"ReflectionException\",\"RefreshFailedException\",\"Refreshable\",\"Region\",\"RegisterableService\",\"Registry\",\"RegistryHandler\",\"RejectedExecutionException\",\"RejectedExecutionHandler\",\"Relation\",\"RelationException\",\"RelationNotFoundException\",\"RelationNotification\",\"RelationService\",\"RelationServiceMBean\",\"RelationServiceNotRegisteredException\",\"RelationSupport\",\"RelationSupportMBean\",\"RelationType\",\"RelationTypeNotFoundException\",\"RelationTypeSupport\",\"RemarshalException\",\"Remote\",\"RemoteCall\",\"RemoteException\",\"RemoteObject\",\"RemoteObjectInvocationHandler\",\"RemoteRef\",\"RemoteServer\",\"RemoteStub\",\"RenderContext\",\"RenderableImage\",\"RenderableImageOp\",\"RenderableImageProducer\",\"RenderedImage\",\"RenderedImageFactory\",\"Renderer\",\"RenderingHints\",\"RenderingHints.Key\",\"RepaintManager\",\"ReplicateScaleFilter\",\"RepositoryIdHelper\",\"Request\",\"RequestInfo\",\"RequestInfoOperations\",\"RequestProcessingPolicy\",\"RequestProcessingPolicyOperations\",\"RequestProcessingPolicyValue\",\"RequestingUserName\",\"RequiredModelMBean\",\"RescaleOp\",\"ResolutionSyntax\",\"ResolveResult\",\"Resolver\",\"ResourceBundle\",\"ResponseCache\",\"ResponseHandler\",\"Result\",\"ResultSet\",\"ResultSetMetaData\",\"Retention\",\"RetentionPolicy\",\"ReverbType\",\"Robot\",\"Role\",\"RoleInfo\",\"RoleInfoNotFoundException\",\"RoleList\",\"RoleNotFoundException\",\"RoleResult\",\"RoleStatus\",\"RoleUnresolved\",\"RoleUnresolvedList\",\"RootPaneContainer\",\"RootPaneUI\",\"RoundRectangle2D\",\"RoundRectangle2D.Double\",\"RoundRectangle2D.Float\",\"RoundingMode\",\"RowMapper\",\"RowSet\",\"RowSetEvent\",\"RowSetInternal\",\"RowSetListener\",\"RowSetMetaData\",\"RowSetMetaDataImpl\",\"RowSetReader\",\"RowSetWarning\",\"RowSetWriter\",\"RuleBasedCollator\",\"RunTime\",\"RunTimeOperations\",\"Runnable\",\"Runtime\",\"RuntimeErrorException\",\"RuntimeException\",\"RuntimeMBeanException\",\"RuntimeMXBean\",\"RuntimeOperationsException\",\"RuntimePermission\",\"SAXException\",\"SAXNotRecognizedException\",\"SAXNotSupportedException\",\"SAXParseException\",\"SAXParser\",\"SAXParserFactory\",\"SAXResult\",\"SAXSource\",\"SAXTransformerFactory\",\"SERVANT_RETENTION_POLICY_ID\",\"SQLData\",\"SQLException\",\"SQLInput\",\"SQLInputImpl\",\"SQLOutput\",\"SQLOutputImpl\",\"SQLPermission\",\"SQLWarning\",\"SSLContext\",\"SSLContextSpi\",\"SSLEngine\",\"SSLEngineResult\",\"SSLEngineResult.HandshakeStatus\",\"SSLEngineResult.Status\",\"SSLException\",\"SSLHandshakeException\",\"SSLKeyException\",\"SSLPeerUnverifiedException\",\"SSLPermission\",\"SSLProtocolException\",\"SSLServerSocket\",\"SSLServerSocketFactory\",\"SSLSession\",\"SSLSessionBindingEvent\",\"SSLSessionBindingListener\",\"SSLSessionContext\",\"SSLSocket\",\"SSLSocketFactory\",\"SUCCESSFUL\",\"SYNC_WITH_TRANSPORT\",\"SYSTEM_EXCEPTION\",\"SampleModel\",\"Sasl\",\"SaslClient\",\"SaslClientFactory\",\"SaslException\",\"SaslServer\",\"SaslServerFactory\",\"Savepoint\",\"Scanner\",\"ScatteringByteChannel\",\"ScheduledExecutorService\",\"ScheduledFuture\",\"ScheduledThreadPoolExecutor\",\"Schema\",\"SchemaFactory\",\"SchemaFactoryLoader\",\"SchemaViolationException\",\"ScrollBarUI\",\"ScrollPane\",\"ScrollPaneAdjustable\",\"ScrollPaneConstants\",\"ScrollPaneLayout\",\"ScrollPaneLayout.UIResource\",\"ScrollPaneUI\",\"Scrollable\",\"Scrollbar\",\"SealedObject\",\"SearchControls\",\"SearchResult\",\"SecretKey\",\"SecretKeyFactory\",\"SecretKeyFactorySpi\",\"SecretKeySpec\",\"SecureCacheResponse\",\"SecureClassLoader\",\"SecureRandom\",\"SecureRandomSpi\",\"Security\",\"SecurityException\",\"SecurityManager\",\"SecurityPermission\",\"Segment\",\"SelectableChannel\",\"SelectionKey\",\"Selector\",\"SelectorProvider\",\"Semaphore\",\"SeparatorUI\",\"Sequence\",\"SequenceInputStream\",\"Sequencer\",\"Sequencer.SyncMode\",\"SerialArray\",\"SerialBlob\",\"SerialClob\",\"SerialDatalink\",\"SerialException\",\"SerialJavaObject\",\"SerialRef\",\"SerialStruct\",\"Serializable\",\"SerializablePermission\",\"Servant\",\"ServantActivator\",\"ServantActivatorHelper\",\"ServantActivatorOperations\",\"ServantActivatorPOA\",\"ServantAlreadyActive\",\"ServantAlreadyActiveHelper\",\"ServantLocator\",\"ServantLocatorHelper\",\"ServantLocatorOperations\",\"ServantLocatorPOA\",\"ServantManager\",\"ServantManagerOperations\",\"ServantNotActive\",\"ServantNotActiveHelper\",\"ServantObject\",\"ServantRetentionPolicy\",\"ServantRetentionPolicyOperations\",\"ServantRetentionPolicyValue\",\"ServerCloneException\",\"ServerError\",\"ServerException\",\"ServerIdHelper\",\"ServerNotActiveException\",\"ServerRef\",\"ServerRequest\",\"ServerRequestInfo\",\"ServerRequestInfoOperations\",\"ServerRequestInterceptor\",\"ServerRequestInterceptorOperations\",\"ServerRuntimeException\",\"ServerSocket\",\"ServerSocketChannel\",\"ServerSocketFactory\",\"ServiceContext\",\"ServiceContextHelper\",\"ServiceContextHolder\",\"ServiceContextListHelper\",\"ServiceContextListHolder\",\"ServiceDetail\",\"ServiceDetailHelper\",\"ServiceIdHelper\",\"ServiceInformation\",\"ServiceInformationHelper\",\"ServiceInformationHolder\",\"ServiceNotFoundException\",\"ServicePermission\",\"ServiceRegistry\",\"ServiceRegistry.Filter\",\"ServiceUI\",\"ServiceUIFactory\",\"ServiceUnavailableException\",\"Set\",\"SetOfIntegerSyntax\",\"SetOverrideType\",\"SetOverrideTypeHelper\",\"Severity\",\"Shape\",\"ShapeGraphicAttribute\",\"SheetCollate\",\"Short\",\"ShortBuffer\",\"ShortBufferException\",\"ShortHolder\",\"ShortLookupTable\",\"ShortMessage\",\"ShortSeqHelper\",\"ShortSeqHolder\",\"Sides\",\"Signature\",\"SignatureException\",\"SignatureSpi\",\"SignedObject\",\"Signer\",\"SimpleAttributeSet\",\"SimpleBeanInfo\",\"SimpleDateFormat\",\"SimpleDoc\",\"SimpleFormatter\",\"SimpleTimeZone\",\"SimpleType\",\"SinglePixelPackedSampleModel\",\"SingleSelectionModel\",\"Size2DSyntax\",\"SizeLimitExceededException\",\"SizeRequirements\",\"SizeSequence\",\"Skeleton\",\"SkeletonMismatchException\",\"SkeletonNotFoundException\",\"SliderUI\",\"Socket\",\"SocketAddress\",\"SocketChannel\",\"SocketException\",\"SocketFactory\",\"SocketHandler\",\"SocketImpl\",\"SocketImplFactory\",\"SocketOptions\",\"SocketPermission\",\"SocketSecurityException\",\"SocketTimeoutException\",\"SoftBevelBorder\",\"SoftReference\",\"SortControl\",\"SortKey\",\"SortResponseControl\",\"SortedMap\",\"SortedSet\",\"SortingFocusTraversalPolicy\",\"Soundbank\",\"SoundbankReader\",\"SoundbankResource\",\"Source\",\"SourceDataLine\",\"SourceLocator\",\"SpinnerDateModel\",\"SpinnerListModel\",\"SpinnerModel\",\"SpinnerNumberModel\",\"SpinnerUI\",\"SplitPaneUI\",\"Spring\",\"SpringLayout\",\"SpringLayout.Constraints\",\"SslRMIClientSocketFactory\",\"SslRMIServerSocketFactory\",\"Stack\",\"StackOverflowError\",\"StackTraceElement\",\"StandardMBean\",\"StartTlsRequest\",\"StartTlsResponse\",\"State\",\"StateEdit\",\"StateEditable\",\"StateFactory\",\"Statement\",\"StreamCorruptedException\",\"StreamHandler\",\"StreamPrintService\",\"StreamPrintServiceFactory\",\"StreamResult\",\"StreamSource\",\"StreamTokenizer\",\"Streamable\",\"StreamableValue\",\"StrictMath\",\"String\",\"StringBuffer\",\"StringBufferInputStream\",\"StringBuilder\",\"StringCharacterIterator\",\"StringContent\",\"StringHolder\",\"StringIndexOutOfBoundsException\",\"StringMonitor\",\"StringMonitorMBean\",\"StringNameHelper\",\"StringReader\",\"StringRefAddr\",\"StringSelection\",\"StringSeqHelper\",\"StringSeqHolder\",\"StringTokenizer\",\"StringValueExp\",\"StringValueHelper\",\"StringWriter\",\"Stroke\",\"Struct\",\"StructMember\",\"StructMemberHelper\",\"Stub\",\"StubDelegate\",\"StubNotFoundException\",\"Style\",\"StyleConstants\",\"StyleConstants.CharacterConstants\",\"StyleConstants.ColorConstants\",\"StyleConstants.FontConstants\",\"StyleConstants.ParagraphConstants\",\"StyleContext\",\"StyleSheet\",\"StyleSheet.BoxPainter\",\"StyleSheet.ListPainter\",\"StyledDocument\",\"StyledEditorKit\",\"StyledEditorKit.AlignmentAction\",\"StyledEditorKit.BoldAction\",\"StyledEditorKit.FontFamilyAction\",\"StyledEditorKit.FontSizeAction\",\"StyledEditorKit.ForegroundAction\",\"StyledEditorKit.ItalicAction\",\"StyledEditorKit.StyledTextAction\",\"StyledEditorKit.UnderlineAction\",\"Subject\",\"SubjectDelegationPermission\",\"SubjectDomainCombiner\",\"SupportedValuesAttribute\",\"SuppressWarnings\",\"SwingConstants\",\"SwingPropertyChangeSupport\",\"SwingUtilities\",\"SyncFactory\",\"SyncFactoryException\",\"SyncFailedException\",\"SyncProvider\",\"SyncProviderException\",\"SyncResolver\",\"SyncScopeHelper\",\"SynchronousQueue\",\"SynthConstants\",\"SynthContext\",\"SynthGraphicsUtils\",\"SynthLookAndFeel\",\"SynthPainter\",\"SynthStyle\",\"SynthStyleFactory\",\"Synthesizer\",\"SysexMessage\",\"System\",\"SystemColor\",\"SystemException\",\"SystemFlavorMap\",\"TAG_ALTERNATE_IIOP_ADDRESS\",\"TAG_CODE_SETS\",\"TAG_INTERNET_IOP\",\"TAG_JAVA_CODEBASE\",\"TAG_MULTIPLE_COMPONENTS\",\"TAG_ORB_TYPE\",\"TAG_POLICIES\",\"TAG_RMI_CUSTOM_MAX_STREAM_FORMAT\",\"TCKind\",\"THREAD_POLICY_ID\",\"TIMEOUT\",\"TRANSACTION_MODE\",\"TRANSACTION_REQUIRED\",\"TRANSACTION_ROLLEDBACK\",\"TRANSACTION_UNAVAILABLE\",\"TRANSIENT\",\"TRANSPORT_RETRY\",\"TabExpander\",\"TabSet\",\"TabStop\",\"TabableView\",\"TabbedPaneUI\",\"TableCellEditor\",\"TableCellRenderer\",\"TableColumn\",\"TableColumnModel\",\"TableColumnModelEvent\",\"TableColumnModelListener\",\"TableHeaderUI\",\"TableModel\",\"TableModelEvent\",\"TableModelListener\",\"TableUI\",\"TableView\",\"TabularData\",\"TabularDataSupport\",\"TabularType\",\"TagElement\",\"TaggedComponent\",\"TaggedComponentHelper\",\"TaggedComponentHolder\",\"TaggedProfile\",\"TaggedProfileHelper\",\"TaggedProfileHolder\",\"Target\",\"TargetDataLine\",\"TargetedNotification\",\"Templates\",\"TemplatesHandler\",\"Text\",\"TextAction\",\"TextArea\",\"TextAttribute\",\"TextComponent\",\"TextEvent\",\"TextField\",\"TextHitInfo\",\"TextInputCallback\",\"TextLayout\",\"TextLayout.CaretPolicy\",\"TextListener\",\"TextMeasurer\",\"TextOutputCallback\",\"TextSyntax\",\"TextUI\",\"TexturePaint\",\"Thread\",\"Thread.State\",\"Thread.UncaughtExceptionHandler\",\"ThreadDeath\",\"ThreadFactory\",\"ThreadGroup\",\"ThreadInfo\",\"ThreadLocal\",\"ThreadMXBean\",\"ThreadPolicy\",\"ThreadPolicyOperations\",\"ThreadPolicyValue\",\"ThreadPoolExecutor\",\"ThreadPoolExecutor.AbortPolicy\",\"ThreadPoolExecutor.CallerRunsPolicy\",\"ThreadPoolExecutor.DiscardOldestPolicy\",\"ThreadPoolExecutor.DiscardPolicy\",\"Throwable\",\"Tie\",\"TileObserver\",\"Time\",\"TimeLimitExceededException\",\"TimeUnit\",\"TimeZone\",\"TimeoutException\",\"Timer\",\"TimerAlarmClockNotification\",\"TimerMBean\",\"TimerNotification\",\"TimerTask\",\"Timestamp\",\"TitledBorder\",\"TooManyListenersException\",\"ToolBarUI\",\"ToolTipManager\",\"ToolTipUI\",\"Toolkit\",\"Track\",\"TransactionRequiredException\",\"TransactionRolledbackException\",\"TransactionService\",\"TransactionalWriter\",\"TransferHandler\",\"Transferable\",\"TransformAttribute\",\"Transformer\",\"TransformerConfigurationException\",\"TransformerException\",\"TransformerFactory\",\"TransformerFactoryConfigurationError\",\"TransformerHandler\",\"Transmitter\",\"Transparency\",\"TreeCellEditor\",\"TreeCellRenderer\",\"TreeExpansionEvent\",\"TreeExpansionListener\",\"TreeMap\",\"TreeModel\",\"TreeModelEvent\",\"TreeModelListener\",\"TreeNode\",\"TreePath\",\"TreeSelectionEvent\",\"TreeSelectionListener\",\"TreeSelectionModel\",\"TreeSet\",\"TreeUI\",\"TreeWillExpandListener\",\"TrustAnchor\",\"TrustManager\",\"TrustManagerFactory\",\"TrustManagerFactorySpi\",\"Type\",\"TypeCode\",\"TypeCodeHolder\",\"TypeInfo\",\"TypeInfoProvider\",\"TypeMismatch\",\"TypeMismatchHelper\",\"TypeNotPresentException\",\"TypeVariable\",\"Types\",\"UID\",\"UIDefaults\",\"UIDefaults.ActiveValue\",\"UIDefaults.LazyInputMap\",\"UIDefaults.LazyValue\",\"UIDefaults.ProxyLazyValue\",\"UIManager\",\"UIManager.LookAndFeelInfo\",\"UIResource\",\"ULongLongSeqHelper\",\"ULongLongSeqHolder\",\"ULongSeqHelper\",\"ULongSeqHolder\",\"UNKNOWN\",\"UNSUPPORTED_POLICY\",\"UNSUPPORTED_POLICY_VALUE\",\"URI\",\"URIException\",\"URIResolver\",\"URISyntax\",\"URISyntaxException\",\"URL\",\"URLClassLoader\",\"URLConnection\",\"URLDecoder\",\"URLEncoder\",\"URLStreamHandler\",\"URLStreamHandlerFactory\",\"URLStringHelper\",\"USER_EXCEPTION\",\"UShortSeqHelper\",\"UShortSeqHolder\",\"UTFDataFormatException\",\"UUID\",\"UndeclaredThrowableException\",\"UndoManager\",\"UndoableEdit\",\"UndoableEditEvent\",\"UndoableEditListener\",\"UndoableEditSupport\",\"UnexpectedException\",\"UnicastRemoteObject\",\"UnionMember\",\"UnionMemberHelper\",\"UnknownEncoding\",\"UnknownEncodingHelper\",\"UnknownError\",\"UnknownException\",\"UnknownFormatConversionException\",\"UnknownFormatFlagsException\",\"UnknownGroupException\",\"UnknownHostException\",\"UnknownObjectException\",\"UnknownServiceException\",\"UnknownUserException\",\"UnknownUserExceptionHelper\",\"UnknownUserExceptionHolder\",\"UnmappableCharacterException\",\"UnmarshalException\",\"UnmodifiableClassException\",\"UnmodifiableSetException\",\"UnrecoverableEntryException\",\"UnrecoverableKeyException\",\"Unreferenced\",\"UnresolvedAddressException\",\"UnresolvedPermission\",\"UnsatisfiedLinkError\",\"UnsolicitedNotification\",\"UnsolicitedNotificationEvent\",\"UnsolicitedNotificationListener\",\"UnsupportedAddressTypeException\",\"UnsupportedAudioFileException\",\"UnsupportedCallbackException\",\"UnsupportedCharsetException\",\"UnsupportedClassVersionError\",\"UnsupportedEncodingException\",\"UnsupportedFlavorException\",\"UnsupportedLookAndFeelException\",\"UnsupportedOperationException\",\"UserDataHandler\",\"UserException\",\"Util\",\"UtilDelegate\",\"Utilities\",\"VMID\",\"VM_ABSTRACT\",\"VM_CUSTOM\",\"VM_NONE\",\"VM_TRUNCATABLE\",\"Validator\",\"ValidatorHandler\",\"ValueBase\",\"ValueBaseHelper\",\"ValueBaseHolder\",\"ValueExp\",\"ValueFactory\",\"ValueHandler\",\"ValueHandlerMultiFormat\",\"ValueInputStream\",\"ValueMember\",\"ValueMemberHelper\",\"ValueOutputStream\",\"VariableHeightLayoutCache\",\"Vector\",\"VerifyError\",\"VersionSpecHelper\",\"VetoableChangeListener\",\"VetoableChangeListenerProxy\",\"VetoableChangeSupport\",\"View\",\"ViewFactory\",\"ViewportLayout\",\"ViewportUI\",\"VirtualMachineError\",\"Visibility\",\"VisibilityHelper\",\"VoiceStatus\",\"Void\",\"VolatileImage\",\"WCharSeqHelper\",\"WCharSeqHolder\",\"WStringSeqHelper\",\"WStringSeqHolder\",\"WStringValueHelper\",\"WeakHashMap\",\"WeakReference\",\"WebRowSet\",\"WildcardType\",\"Window\",\"WindowAdapter\",\"WindowConstants\",\"WindowEvent\",\"WindowFocusListener\",\"WindowListener\",\"WindowStateListener\",\"WrappedPlainView\",\"WritableByteChannel\",\"WritableRaster\",\"WritableRenderedImage\",\"WriteAbortedException\",\"Writer\",\"WrongAdapter\",\"WrongAdapterHelper\",\"WrongPolicy\",\"WrongPolicyHelper\",\"WrongTransaction\",\"WrongTransactionHelper\",\"WrongTransactionHolder\",\"X500Principal\",\"X500PrivateCredential\",\"X509CRL\",\"X509CRLEntry\",\"X509CRLSelector\",\"X509CertSelector\",\"X509Certificate\",\"X509EncodedKeySpec\",\"X509ExtendedKeyManager\",\"X509Extension\",\"X509KeyManager\",\"X509TrustManager\",\"XAConnection\",\"XADataSource\",\"XAException\",\"XAResource\",\"XMLConstants\",\"XMLDecoder\",\"XMLEncoder\",\"XMLFilter\",\"XMLFilterImpl\",\"XMLFormatter\",\"XMLGregorianCalendar\",\"XMLParseException\",\"XMLReader\",\"XMLReaderAdapter\",\"XMLReaderFactory\",\"XPath\",\"XPathConstants\",\"XPathException\",\"XPathExpression\",\"XPathExpressionException\",\"XPathFactory\",\"XPathFactoryConfigurationException\",\"XPathFunction\",\"XPathFunctionException\",\"XPathFunctionResolver\",\"XPathVariableResolver\",\"Xid\",\"XmlReader\",\"XmlWriter\",\"ZipEntry\",\"ZipException\",\"ZipFile\",\"ZipInputStream\",\"ZipOutputStream\",\"ZoneView\",\"_BindingIteratorImplBase\",\"_BindingIteratorStub\",\"_DynAnyFactoryStub\",\"_DynAnyStub\",\"_DynArrayStub\",\"_DynEnumStub\",\"_DynFixedStub\",\"_DynSequenceStub\",\"_DynStructStub\",\"_DynUnionStub\",\"_DynValueStub\",\"_IDLTypeStub\",\"_NamingContextExtStub\",\"_NamingContextImplBase\",\"_NamingContextStub\",\"_PolicyStub\",\"_Remote_Stub\",\"_ServantActivatorStub\",\"_ServantLocatorStub\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"Actor\",\"ActorProxy\",\"ActorTask\",\"ActorThread\",\"AllRef\",\"Any\",\"AnyRef\",\"Application\",\"AppliedType\",\"Array\",\"ArrayBuffer\",\"Attribute\",\"BoxedArray\",\"BoxedBooleanArray\",\"BoxedByteArray\",\"BoxedCharArray\",\"Buffer\",\"BufferedIterator\",\"Char\",\"Console\",\"Enumeration\",\"Fluid\",\"Function\",\"IScheduler\",\"ImmutableMapAdaptor\",\"ImmutableSetAdaptor\",\"Int\",\"Iterable\",\"List\",\"ListBuffer\",\"None\",\"Option\",\"Ordered\",\"Pair\",\"PartialFunction\",\"Pid\",\"Predef\",\"PriorityQueue\",\"PriorityQueueProxy\",\"Reaction\",\"Ref\",\"Responder\",\"RichInt\",\"RichString\",\"Rule\",\"RuleTransformer\",\"Script\",\"Seq\",\"SerialVersionUID\",\"Some\",\"Stream\",\"Symbol\",\"TcpService\",\"TcpServiceWorker\",\"Triple\",\"Unit\",\"Value\",\"WorkerThread\",\"serializable\",\"transient\",\"volatile\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [Rule {rMatcher = AnyChar \"fF\", rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCOct, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [Rule {rMatcher = StringDetect \"ULL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LUL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LLU\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"UL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LU\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"LL\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"U\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"L\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"//\\\\s*BEGIN.*$\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"//\\\\s*END.*$\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Scala\",\"String\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.(format|printf)\\\\b\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Scala\",\"Printf\")]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Scala\",\"Commentar 1\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Scala\",\"Commentar 2\")]},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[_\\\\w][_\\\\w\\\\d]*(?=[\\\\s]*(/\\\\*\\\\s*\\\\d+\\\\s*\\\\*/\\\\s*)?[(])\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[.]{1,1}\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Scala\",\"Member\")]},Rule {rMatcher = AnyChar \":!%&()+,-/.*<=>?[]|~^;\", 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}),(\"Printf\",Context {cName = \"Printf\", cSyntax = \"Scala\", cRules = [Rule {rMatcher = DetectChar ';', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Scala\",\"PrintfString\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"PrintfString\",Context {cName = \"PrintfString\", cSyntax = \"Scala\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCStringChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"%(\\\\d+\\\\$)?(-|#|\\\\+|\\\\ |0|,|\\\\()*\\\\d*(\\\\.\\\\d+)?[a-hosxA-CEGHSX]\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%(\\\\d+\\\\$)?(-|#|\\\\+|\\\\ |0|,|\\\\()*\\\\d*(t|T)(a|A|b|B|c|C|d|D|e|F|h|H|I|j|k|l|L|m|M|N|p|P|Q|r|R|s|S|T|y|Y|z|Z)\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%(%|n)\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Scala\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCStringChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Stephane Micheloud (stephane.micheloud@epfl.ch)\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [\"*.scala\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Scheme.hs b/src/Skylighting/Syntax/Scheme.hs
--- a/src/Skylighting/Syntax/Scheme.hs
+++ b/src/Skylighting/Syntax/Scheme.hs
@@ -2,1137 +2,6 @@
 module Skylighting.Syntax.Scheme (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Scheme"
-  , sFilename = "scheme.xml"
-  , sShortname = "Scheme"
-  , sContexts =
-      fromList
-        [ ( "Default"
-          , Context
-              { cName = "Default"
-              , cSyntax = "Scheme"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ";+\\s*BEGIN.*$"
-                              , reCompiled = Just (compileRegex True ";+\\s*BEGIN.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ";+\\s*END.*$"
-                              , reCompiled = Just (compileRegex True ";+\\s*END.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ";.*$"
-                              , reCompiled = Just (compileRegex True ";.*$")
-                              , reCaseSensitive = True
-                              }
-                      , 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 = [ Push ( "Scheme" , "MultiLineComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&(),.;[]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "abs"
-                               , "acos"
-                               , "and"
-                               , "angle"
-                               , "append"
-                               , "applymap"
-                               , "asin"
-                               , "assoc"
-                               , "assq"
-                               , "assv"
-                               , "atan"
-                               , "begin"
-                               , "boolean?"
-                               , "break"
-                               , "caaaar"
-                               , "caaadr"
-                               , "caaar"
-                               , "caadar"
-                               , "caaddr"
-                               , "caadr"
-                               , "caar"
-                               , "cadaar"
-                               , "cadadr"
-                               , "cadar"
-                               , "caddar"
-                               , "cadddr"
-                               , "caddr"
-                               , "cadr"
-                               , "call-with-current-continuation"
-                               , "call-with-input-file"
-                               , "call-with-output-file"
-                               , "call-with-values"
-                               , "call/cc"
-                               , "car"
-                               , "case"
-                               , "catch"
-                               , "cdaaar"
-                               , "cdaadr"
-                               , "cdaar"
-                               , "cdadar"
-                               , "cdaddr"
-                               , "cdadr"
-                               , "cdar"
-                               , "cddaar"
-                               , "cddadr"
-                               , "cddar"
-                               , "cdddar"
-                               , "cddddr"
-                               , "cdddr"
-                               , "cddr"
-                               , "cdr"
-                               , "ceiling"
-                               , "char->integer"
-                               , "char-alphabetic?"
-                               , "char-ci<=?"
-                               , "char-ci=?"
-                               , "char-ci>=?"
-                               , "char-ci>?"
-                               , "char-downcase"
-                               , "char-lower-case?"
-                               , "char-numeric?"
-                               , "char-ready?"
-                               , "char-upcase"
-                               , "char-upper-case?"
-                               , "char-whitespace?"
-                               , "char<=?"
-                               , "char<?c"
-                               , "char=?"
-                               , "char>=?"
-                               , "char>?"
-                               , "char?"
-                               , "close-input-port"
-                               , "close-output-port"
-                               , "complex?"
-                               , "cond"
-                               , "cons"
-                               , "continue"
-                               , "cos"
-                               , "current-input-port"
-                               , "current-output-port"
-                               , "denominator"
-                               , "display"
-                               , "do"
-                               , "dynamic-wind"
-                               , "else"
-                               , "eof-object?"
-                               , "eq?"
-                               , "equal?"
-                               , "eqv?"
-                               , "eval"
-                               , "even?"
-                               , "exact->inexact"
-                               , "exact?"
-                               , "exp"
-                               , "expt"
-                               , "floor"
-                               , "for-each"
-                               , "force"
-                               , "gcd"
-                               , "har-ci<?"
-                               , "if"
-                               , "imag-part"
-                               , "inexact->exact"
-                               , "inexact?"
-                               , "input-port?"
-                               , "integer->char"
-                               , "integer?"
-                               , "interaction-environment"
-                               , "lambda"
-                               , "lcm"
-                               , "length"
-                               , "let"
-                               , "let*"
-                               , "let-syntax"
-                               , "letrec"
-                               , "letrec-syntax"
-                               , "list"
-                               , "list->string"
-                               , "list-ref"
-                               , "list-tail"
-                               , "list?"
-                               , "load"
-                               , "log"
-                               , "magnitude"
-                               , "make-polar"
-                               , "make-rectangular"
-                               , "make-string"
-                               , "make-vector"
-                               , "max"
-                               , "member"
-                               , "memq"
-                               , "memv"
-                               , "min"
-                               , "modulo"
-                               , "negative?"
-                               , "newline"
-                               , "not"
-                               , "null-environment"
-                               , "null?"
-                               , "number->string"
-                               , "number?"
-                               , "numerator"
-                               , "odd?"
-                               , "open-input-file"
-                               , "open-output-file"
-                               , "or"
-                               , "output-port?"
-                               , "pair?"
-                               , "peek-char"
-                               , "port?"
-                               , "positive?"
-                               , "procedure?"
-                               , "quotient"
-                               , "rational?"
-                               , "rationalize"
-                               , "read"
-                               , "read-char"
-                               , "real-part"
-                               , "real?"
-                               , "remainder"
-                               , "reverse"
-                               , "round"
-                               , "scheme-report-environment"
-                               , "set-car!"
-                               , "set-cdr!"
-                               , "sin"
-                               , "sqrt"
-                               , "string"
-                               , "string->list"
-                               , "string->number"
-                               , "string->symbol"
-                               , "string-append"
-                               , "string-ci<=?"
-                               , "string-ci<?"
-                               , "string-ci=?"
-                               , "string-ci>=?"
-                               , "string-ci>?"
-                               , "string-copy"
-                               , "string-fill!"
-                               , "string-length"
-                               , "string-ref"
-                               , "string-set!"
-                               , "string<=?"
-                               , "string<?"
-                               , "string=?"
-                               , "string>=?"
-                               , "string>?"
-                               , "string?"
-                               , "substring"
-                               , "symbol->string"
-                               , "symbol?"
-                               , "syntax-rules"
-                               , "tan"
-                               , "transcript-off"
-                               , "transcript-on"
-                               , "truncate"
-                               , "values"
-                               , "vector"
-                               , "vector->listlist->vector"
-                               , "vector-fill!"
-                               , "vector-length"
-                               , "vector-ref"
-                               , "vector-set!"
-                               , "vector?"
-                               , "while"
-                               , "with-input-from-file"
-                               , "with-output-to-file"
-                               , "write"
-                               , "write-char"
-                               , "zero?"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&(),.;[]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "*)"
-                               , "*,*"
-                               , "+"
-                               , "-"
-                               , "/"
-                               , "<"
-                               , "<="
-                               , "="
-                               , "=>"
-                               , ">"
-                               , ">="
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&(),.;[]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "define"
-                               , "define*"
-                               , "define*-public"
-                               , "define-accessor"
-                               , "define-class"
-                               , "define-generic"
-                               , "define-macro"
-                               , "define-method"
-                               , "define-module"
-                               , "define-private"
-                               , "define-public"
-                               , "define-reader-ctor"
-                               , "define-syntax"
-                               , "define-syntax-macro"
-                               , "defined?"
-                               , "defmacro"
-                               , "defmacro*"
-                               , "defmacro*-public"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Scheme" , "function_decl" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&(),.;[]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "#\\ack"
-                               , "#\\backspace"
-                               , "#\\bel"
-                               , "#\\bs"
-                               , "#\\can"
-                               , "#\\cr"
-                               , "#\\dc1"
-                               , "#\\dc2"
-                               , "#\\dc3"
-                               , "#\\dc4"
-                               , "#\\dle"
-                               , "#\\em"
-                               , "#\\enq"
-                               , "#\\eot"
-                               , "#\\esc"
-                               , "#\\etb"
-                               , "#\\etx"
-                               , "#\\fs"
-                               , "#\\gs"
-                               , "#\\ht"
-                               , "#\\nak"
-                               , "#\\newline"
-                               , "#\\nl"
-                               , "#\\np"
-                               , "#\\nul"
-                               , "#\\null"
-                               , "#\\page"
-                               , "#\\return"
-                               , "#\\rs"
-                               , "#\\si"
-                               , "#\\so"
-                               , "#\\soh"
-                               , "#\\sp"
-                               , "#\\space"
-                               , "#\\stx"
-                               , "#\\sub"
-                               , "#\\syn"
-                               , "#\\tab"
-                               , "#\\us"
-                               , "#\\vt"
-                               ])
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\\\."
-                              , reCompiled = Just (compileRegex True "#\\\\.")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Scheme" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#[bodxei]"
-                              , reCompiled = Just (compileRegex True "#[bodxei]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Scheme" , "SpecialNumber" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#[tf]"
-                              , reCompiled = Just (compileRegex True "#[tf]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Scheme" , "Level1" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Level0"
-          , Context
-              { cName = "Level0"
-              , cSyntax = "Scheme"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Scheme" , "Level1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Scheme" , "Default" )
-                      , 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
-              }
-          )
-        , ( "Level1"
-          , Context
-              { cName = "Level1"
-              , cSyntax = "Scheme"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Scheme" , "Level2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Scheme" , "Default" )
-                      , 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
-              }
-          )
-        , ( "Level2"
-          , Context
-              { cName = "Level2"
-              , cSyntax = "Scheme"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Scheme" , "Level3" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Scheme" , "Default" )
-                      , 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
-              }
-          )
-        , ( "Level3"
-          , Context
-              { cName = "Level3"
-              , cSyntax = "Scheme"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Scheme" , "Level4" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Scheme" , "Default" )
-                      , 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
-              }
-          )
-        , ( "Level4"
-          , Context
-              { cName = "Level4"
-              , cSyntax = "Scheme"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Scheme" , "Level5" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Scheme" , "Default" )
-                      , 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
-              }
-          )
-        , ( "Level5"
-          , Context
-              { cName = "Level5"
-              , cSyntax = "Scheme"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Scheme" , "Level6" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Scheme" , "Default" )
-                      , 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
-              }
-          )
-        , ( "Level6"
-          , Context
-              { cName = "Level6"
-              , cSyntax = "Scheme"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Scheme" , "Level1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Scheme" , "Default" )
-                      , 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
-              }
-          )
-        , ( "MultiLineComment"
-          , Context
-              { cName = "MultiLineComment"
-              , cSyntax = "Scheme"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "!#\\s*$"
-                              , reCompiled = Just (compileRegex True "!#\\s*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SpecialNumber"
-          , Context
-              { cName = "SpecialNumber"
-              , cSyntax = "Scheme"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\d*(\\.\\d+)?"
-                              , reCompiled = Just (compileRegex True "\\d*(\\.\\d+)?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Scheme"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n %&(),.;[]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "#\\ack"
-                               , "#\\backspace"
-                               , "#\\bel"
-                               , "#\\bs"
-                               , "#\\can"
-                               , "#\\cr"
-                               , "#\\dc1"
-                               , "#\\dc2"
-                               , "#\\dc3"
-                               , "#\\dc4"
-                               , "#\\dle"
-                               , "#\\em"
-                               , "#\\enq"
-                               , "#\\eot"
-                               , "#\\esc"
-                               , "#\\etb"
-                               , "#\\etx"
-                               , "#\\fs"
-                               , "#\\gs"
-                               , "#\\ht"
-                               , "#\\nak"
-                               , "#\\newline"
-                               , "#\\nl"
-                               , "#\\np"
-                               , "#\\nul"
-                               , "#\\null"
-                               , "#\\page"
-                               , "#\\return"
-                               , "#\\rs"
-                               , "#\\si"
-                               , "#\\so"
-                               , "#\\soh"
-                               , "#\\sp"
-                               , "#\\space"
-                               , "#\\stx"
-                               , "#\\sub"
-                               , "#\\syn"
-                               , "#\\tab"
-                               , "#\\us"
-                               , "#\\vt"
-                               ])
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\\\."
-                              , reCompiled = Just (compileRegex True "#\\\\.")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '"'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "function_decl"
-          , Context
-              { cName = "function_decl"
-              , cSyntax = "Scheme"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*[A-Za-z0-9-+\\<\\>//\\*]*\\s*"
-                              , reCompiled =
-                                  Just (compileRegex True "\\s*[A-Za-z0-9-+\\<\\>//\\*]*\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Dominik Haumann (dhdev@gmx.de)"
-  , sVersion = "3"
-  , sLicense = "LGPLv2+"
-  , sExtensions = [ "*.scm" , "*.ss" , "*.scheme" , "*.guile" ]
-  , sStartingContext = "Level0"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Scheme\", sFilename = \"scheme.xml\", sShortname = \"Scheme\", sContexts = fromList [(\"Default\",Context {cName = \"Default\", cSyntax = \"Scheme\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \";+\\\\s*BEGIN.*$\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \";+\\\\s*END.*$\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \";.*$\", reCaseSensitive = True}), 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 = [Push (\"Scheme\",\"MultiLineComment\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&(),.;[]^{|}~\"}) (CaseSensitiveWords (fromList [\"abs\",\"acos\",\"and\",\"angle\",\"append\",\"applymap\",\"asin\",\"assoc\",\"assq\",\"assv\",\"atan\",\"begin\",\"boolean?\",\"break\",\"caaaar\",\"caaadr\",\"caaar\",\"caadar\",\"caaddr\",\"caadr\",\"caar\",\"cadaar\",\"cadadr\",\"cadar\",\"caddar\",\"cadddr\",\"caddr\",\"cadr\",\"call-with-current-continuation\",\"call-with-input-file\",\"call-with-output-file\",\"call-with-values\",\"call/cc\",\"car\",\"case\",\"catch\",\"cdaaar\",\"cdaadr\",\"cdaar\",\"cdadar\",\"cdaddr\",\"cdadr\",\"cdar\",\"cddaar\",\"cddadr\",\"cddar\",\"cdddar\",\"cddddr\",\"cdddr\",\"cddr\",\"cdr\",\"ceiling\",\"char->integer\",\"char-alphabetic?\",\"char-ci<=?\",\"char-ci=?\",\"char-ci>=?\",\"char-ci>?\",\"char-downcase\",\"char-lower-case?\",\"char-numeric?\",\"char-ready?\",\"char-upcase\",\"char-upper-case?\",\"char-whitespace?\",\"char<=?\",\"char<?c\",\"char=?\",\"char>=?\",\"char>?\",\"char?\",\"close-input-port\",\"close-output-port\",\"complex?\",\"cond\",\"cons\",\"continue\",\"cos\",\"current-input-port\",\"current-output-port\",\"denominator\",\"display\",\"do\",\"dynamic-wind\",\"else\",\"eof-object?\",\"eq?\",\"equal?\",\"eqv?\",\"eval\",\"even?\",\"exact->inexact\",\"exact?\",\"exp\",\"expt\",\"floor\",\"for-each\",\"force\",\"gcd\",\"har-ci<?\",\"if\",\"imag-part\",\"inexact->exact\",\"inexact?\",\"input-port?\",\"integer->char\",\"integer?\",\"interaction-environment\",\"lambda\",\"lcm\",\"length\",\"let\",\"let*\",\"let-syntax\",\"letrec\",\"letrec-syntax\",\"list\",\"list->string\",\"list-ref\",\"list-tail\",\"list?\",\"load\",\"log\",\"magnitude\",\"make-polar\",\"make-rectangular\",\"make-string\",\"make-vector\",\"max\",\"member\",\"memq\",\"memv\",\"min\",\"modulo\",\"negative?\",\"newline\",\"not\",\"null-environment\",\"null?\",\"number->string\",\"number?\",\"numerator\",\"odd?\",\"open-input-file\",\"open-output-file\",\"or\",\"output-port?\",\"pair?\",\"peek-char\",\"port?\",\"positive?\",\"procedure?\",\"quotient\",\"rational?\",\"rationalize\",\"read\",\"read-char\",\"real-part\",\"real?\",\"remainder\",\"reverse\",\"round\",\"scheme-report-environment\",\"set-car!\",\"set-cdr!\",\"sin\",\"sqrt\",\"string\",\"string->list\",\"string->number\",\"string->symbol\",\"string-append\",\"string-ci<=?\",\"string-ci<?\",\"string-ci=?\",\"string-ci>=?\",\"string-ci>?\",\"string-copy\",\"string-fill!\",\"string-length\",\"string-ref\",\"string-set!\",\"string<=?\",\"string<?\",\"string=?\",\"string>=?\",\"string>?\",\"string?\",\"substring\",\"symbol->string\",\"symbol?\",\"syntax-rules\",\"tan\",\"transcript-off\",\"transcript-on\",\"truncate\",\"values\",\"vector\",\"vector->listlist->vector\",\"vector-fill!\",\"vector-length\",\"vector-ref\",\"vector-set!\",\"vector?\",\"while\",\"with-input-from-file\",\"with-output-to-file\",\"write\",\"write-char\",\"zero?\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&(),.;[]^{|}~\"}) (CaseSensitiveWords (fromList [\"*)\",\"*,*\",\"+\",\"-\",\"/\",\"<\",\"<=\",\"=\",\"=>\",\">\",\">=\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&(),.;[]^{|}~\"}) (CaseSensitiveWords (fromList [\"define\",\"define*\",\"define*-public\",\"define-accessor\",\"define-class\",\"define-generic\",\"define-macro\",\"define-method\",\"define-module\",\"define-private\",\"define-public\",\"define-reader-ctor\",\"define-syntax\",\"define-syntax-macro\",\"defined?\",\"defmacro\",\"defmacro*\",\"defmacro*-public\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Scheme\",\"function_decl\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&(),.;[]^{|}~\"}) (CaseSensitiveWords (fromList [\"#\\\\ack\",\"#\\\\backspace\",\"#\\\\bel\",\"#\\\\bs\",\"#\\\\can\",\"#\\\\cr\",\"#\\\\dc1\",\"#\\\\dc2\",\"#\\\\dc3\",\"#\\\\dc4\",\"#\\\\dle\",\"#\\\\em\",\"#\\\\enq\",\"#\\\\eot\",\"#\\\\esc\",\"#\\\\etb\",\"#\\\\etx\",\"#\\\\fs\",\"#\\\\gs\",\"#\\\\ht\",\"#\\\\nak\",\"#\\\\newline\",\"#\\\\nl\",\"#\\\\np\",\"#\\\\nul\",\"#\\\\null\",\"#\\\\page\",\"#\\\\return\",\"#\\\\rs\",\"#\\\\si\",\"#\\\\so\",\"#\\\\soh\",\"#\\\\sp\",\"#\\\\space\",\"#\\\\stx\",\"#\\\\sub\",\"#\\\\syn\",\"#\\\\tab\",\"#\\\\us\",\"#\\\\vt\"])), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\\\\\.\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Scheme\",\"String\")]},Rule {rMatcher = RegExpr (RE {reString = \"#[bodxei]\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Scheme\",\"SpecialNumber\")]},Rule {rMatcher = RegExpr (RE {reString = \"#[tf]\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Scheme\",\"Level1\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Level0\",Context {cName = \"Level0\", cSyntax = \"Scheme\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Scheme\",\"Level1\")]},Rule {rMatcher = IncludeRules (\"Scheme\",\"Default\"), 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}),(\"Level1\",Context {cName = \"Level1\", cSyntax = \"Scheme\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Scheme\",\"Level2\")]},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Scheme\",\"Default\"), 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}),(\"Level2\",Context {cName = \"Level2\", cSyntax = \"Scheme\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Scheme\",\"Level3\")]},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Scheme\",\"Default\"), 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}),(\"Level3\",Context {cName = \"Level3\", cSyntax = \"Scheme\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Scheme\",\"Level4\")]},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Scheme\",\"Default\"), 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}),(\"Level4\",Context {cName = \"Level4\", cSyntax = \"Scheme\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Scheme\",\"Level5\")]},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Scheme\",\"Default\"), 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}),(\"Level5\",Context {cName = \"Level5\", cSyntax = \"Scheme\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Scheme\",\"Level6\")]},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Scheme\",\"Default\"), 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}),(\"Level6\",Context {cName = \"Level6\", cSyntax = \"Scheme\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Scheme\",\"Level1\")]},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Scheme\",\"Default\"), 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}),(\"MultiLineComment\",Context {cName = \"MultiLineComment\", cSyntax = \"Scheme\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"!#\\\\s*$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SpecialNumber\",Context {cName = \"SpecialNumber\", cSyntax = \"Scheme\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\d*(\\\\.\\\\d+)?\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Scheme\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n %&(),.;[]^{|}~\"}) (CaseSensitiveWords (fromList [\"#\\\\ack\",\"#\\\\backspace\",\"#\\\\bel\",\"#\\\\bs\",\"#\\\\can\",\"#\\\\cr\",\"#\\\\dc1\",\"#\\\\dc2\",\"#\\\\dc3\",\"#\\\\dc4\",\"#\\\\dle\",\"#\\\\em\",\"#\\\\enq\",\"#\\\\eot\",\"#\\\\esc\",\"#\\\\etb\",\"#\\\\etx\",\"#\\\\fs\",\"#\\\\gs\",\"#\\\\ht\",\"#\\\\nak\",\"#\\\\newline\",\"#\\\\nl\",\"#\\\\np\",\"#\\\\nul\",\"#\\\\null\",\"#\\\\page\",\"#\\\\return\",\"#\\\\rs\",\"#\\\\si\",\"#\\\\so\",\"#\\\\soh\",\"#\\\\sp\",\"#\\\\space\",\"#\\\\stx\",\"#\\\\sub\",\"#\\\\syn\",\"#\\\\tab\",\"#\\\\us\",\"#\\\\vt\"])), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\\\\\.\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\"', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"function_decl\",Context {cName = \"function_decl\", cSyntax = \"Scheme\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*[A-Za-z0-9-+\\\\<\\\\>//\\\\*]*\\\\s*\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Dominik Haumann (dhdev@gmx.de)\", sVersion = \"3\", sLicense = \"LGPLv2+\", sExtensions = [\"*.scm\",\"*.ss\",\"*.scheme\",\"*.guile\"], sStartingContext = \"Level0\"}"
diff --git a/src/Skylighting/Syntax/Sci.hs b/src/Skylighting/Syntax/Sci.hs
--- a/src/Skylighting/Syntax/Sci.hs
+++ b/src/Skylighting/Syntax/Sci.hs
@@ -2,1342 +2,6 @@
 module Skylighting.Syntax.Sci (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "scilab"
-  , sFilename = "sci.xml"
-  , sShortname = "Sci"
-  , sContexts =
-      fromList
-        [ ( "main"
-          , Context
-              { cName = "main"
-              , cSyntax = "scilab"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "do"
-                               , "else"
-                               , "elseif"
-                               , "end"
-                               , "for"
-                               , "if"
-                               , "select"
-                               , "then"
-                               , "while"
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "abort" , "break" , "pause" , "quit" , "resume" , "return" ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "endfunction" , "function" ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet True [ "error" , "warning" ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "$"
-                               , "%F"
-                               , "%T"
-                               , "%e"
-                               , "%eps"
-                               , "%f"
-                               , "%i"
-                               , "%inf"
-                               , "%io"
-                               , "%nan"
-                               , "%pi"
-                               , "%s"
-                               , "%t"
-                               , "%z"
-                               , "MSDOS"
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "%asn"
-                               , "%helps"
-                               , "%k"
-                               , "%sn"
-                               , "ABSBLK_f"
-                               , "AFFICH_f"
-                               , "ANDLOG_f"
-                               , "ANIMXY_f"
-                               , "AdCommunications"
-                               , "BIGSOM_f"
-                               , "CLINDUMMY_f"
-                               , "CLKINV_f"
-                               , "CLKIN_f"
-                               , "CLKOUTV_f"
-                               , "CLKOUT_f"
-                               , "CLKSOMV_f"
-                               , "CLKSOM_f"
-                               , "CLKSPLIT_f"
-                               , "CLOCK_f"
-                               , "CLR_f"
-                               , "CLSS_f"
-                               , "CONST_f"
-                               , "COSBLK_f"
-                               , "CURV_f"
-                               , "Communications"
-                               , "CreateLink"
-                               , "DELAYV_f"
-                               , "DELAY_f"
-                               , "DEMUX_f"
-                               , "DLRADAPT_f"
-                               , "DLR_f"
-                               , "DLSS_f"
-                               , "DestroyLink"
-                               , "EVENTSCOPE_f"
-                               , "EVTDLY_f"
-                               , "EVTGEN_f"
-                               , "EXPBLK_f"
-                               , "Example"
-                               , "ExecAppli"
-                               , "ExecScilab"
-                               , "ExeclScilab"
-                               , "GAINBLK_f"
-                               , "GAIN_f"
-                               , "GENERAL_f"
-                               , "GENERIC_f"
-                               , "GENSIN_f"
-                               , "GENSQR_f"
-                               , "G_make"
-                               , "GetMsg"
-                               , "Graphics"
-                               , "HALT_f"
-                               , "IFTHEL_f"
-                               , "INTEGRAL_f"
-                               , "INTRP2BLK_f"
-                               , "INTRPLBLK_f"
-                               , "INVBLK_f"
-                               , "IN_f"
-                               , "LOGBLK_f"
-                               , "LOOKUP_f"
-                               , "MAX_f"
-                               , "MCLOCK_f"
-                               , "MFCLCK_f"
-                               , "MIN_f"
-                               , "MUX_f"
-                               , "Matplot"
-                               , "Matplot1"
-                               , "NEGTOPOS_f"
-                               , "OUT_f"
-                               , "POSTONEG_f"
-                               , "POWBLK_f"
-                               , "PROD_f"
-                               , "QUANT_f"
-                               , "RAND_f"
-                               , "READC_f"
-                               , "REGISTER_f"
-                               , "RELAY_f"
-                               , "RFILE_f"
-                               , "SAMPLEHOLD_f"
-                               , "SAT_f"
-                               , "SAWTOOTH_f"
-                               , "SCOPE_f"
-                               , "SCOPXY_f"
-                               , "SELECT_f"
-                               , "SINBLK_f"
-                               , "SOM_f"
-                               , "SPLIT_f"
-                               , "STOP_f"
-                               , "SUPER_f"
-                               , "ScilabEval"
-                               , "SendMsg"
-                               , "Sfgrayplot"
-                               , "Sgrayplot"
-                               , "TANBLK_f"
-                               , "TCLSS_f"
-                               , "TEXT_f"
-                               , "TIME_f"
-                               , "TK_EvalFile"
-                               , "TK_EvalStr"
-                               , "TK_GetVar"
-                               , "TK_SetVar"
-                               , "TRASH_f"
-                               , "WFILE_f"
-                               , "WRITEC_f"
-                               , "WaitMsg"
-                               , "ZCROSS_f"
-                               , "abcd"
-                               , "abinv"
-                               , "abs"
-                               , "acos"
-                               , "acosh"
-                               , "acoshm"
-                               , "acosm"
-                               , "add_edge"
-                               , "add_node"
-                               , "addcolor"
-                               , "addf"
-                               , "addinter"
-                               , "addmenu"
-                               , "adj2sp"
-                               , "adj_lists"
-                               , "aff2ab"
-                               , "alufunctions"
-                               , "amell"
-                               , "analpf"
-                               , "analyze"
-                               , "and"
-                               , "ans"
-                               , "apropos"
-                               , "arc_graph"
-                               , "arc_number"
-                               , "argn"
-                               , "arhnk"
-                               , "arl2"
-                               , "arma"
-                               , "arma2p"
-                               , "armac"
-                               , "armax"
-                               , "armax1"
-                               , "arsimul"
-                               , "artest"
-                               , "articul"
-                               , "ascii"
-                               , "asin"
-                               , "asinh"
-                               , "asinhm"
-                               , "asinm"
-                               , "atan"
-                               , "atanh"
-                               , "atanhm"
-                               , "atanm"
-                               , "augment"
-                               , "auread"
-                               , "auwrite"
-                               , "backslash"
-                               , "balanc"
-                               , "balreal"
-                               , "bandwr"
-                               , "bdiag"
-                               , "besseli"
-                               , "besselj"
-                               , "besselk"
-                               , "bessely"
-                               , "best_match"
-                               , "bezout"
-                               , "bifish"
-                               , "bilin"
-                               , "binomial"
-                               , "black"
-                               , "bloc2exp"
-                               , "bloc2ss"
-                               , "bode"
-                               , "bool2s"
-                               , "boolean"
-                               , "boucle"
-                               , "bstap"
-                               , "buttmag"
-                               , "bvode"
-                               , "c_link"
-                               , "cainv"
-                               , "calerf"
-                               , "calfrq"
-                               , "call"
-                               , "canon"
-                               , "casc"
-                               , "ccontrg"
-                               , "cdfbet"
-                               , "cdfbin"
-                               , "cdfchi"
-                               , "cdfchn"
-                               , "cdff"
-                               , "cdffnc"
-                               , "cdfgam"
-                               , "cdfnbn"
-                               , "cdfnor"
-                               , "cdfpoi"
-                               , "cdft"
-                               , "ceil"
-                               , "cepstrum"
-                               , "chain_struct"
-                               , "chaintest"
-                               , "champ"
-                               , "champ1"
-                               , "chart"
-                               , "chdir"
-                               , "cheb1mag"
-                               , "cheb2mag"
-                               , "check_graph"
-                               , "chepol"
-                               , "chfact"
-                               , "chol"
-                               , "chsolve"
-                               , "circuit"
-                               , "classmarkov"
-                               , "clean"
-                               , "clear"
-                               , "clearfun"
-                               , "clearglobal"
-                               , "close"
-                               , "cls2dls"
-                               , "cmb_lin"
-                               , "cmndred"
-                               , "code2str"
-                               , "coeff"
-                               , "coff"
-                               , "coffg"
-                               , "colcomp"
-                               , "colcompr"
-                               , "colinout"
-                               , "colnew"
-                               , "colon"
-                               , "colormap"
-                               , "colregul"
-                               , "comp"
-                               , "companion"
-                               , "con_nodes"
-                               , "cond"
-                               , "conj"
-                               , "connex"
-                               , "cont_frm"
-                               , "cont_mat"
-                               , "contour"
-                               , "contour2d"
-                               , "contour2di"
-                               , "contourf"
-                               , "contr"
-                               , "contract_edge"
-                               , "contrss"
-                               , "convex_hull"
-                               , "convol"
-                               , "convstr"
-                               , "copfac"
-                               , "corr"
-                               , "cos"
-                               , "cosh"
-                               , "coshm"
-                               , "cosm"
-                               , "cotg"
-                               , "coth"
-                               , "cothm"
-                               , "csim"
-                               , "cspect"
-                               , "ctr_gram"
-                               , "cumprod"
-                               , "cumsum"
-                               , "curblock"
-                               , "cycle_basis"
-                               , "czt"
-                               , "dasrt"
-                               , "dassl"
-                               , "datafit"
-                               , "date"
-                               , "dbphi"
-                               , "dcf"
-                               , "ddp"
-                               , "debug"
-                               , "dec2hex"
-                               , "deff"
-                               , "degree"
-                               , "delbpt"
-                               , "delete_arcs"
-                               , "delete_nodes"
-                               , "delip"
-                               , "delmenu"
-                               , "demos"
-                               , "denom"
-                               , "derivat"
-                               , "derivative-"
-                               , "des2ss"
-                               , "des2tf"
-                               , "det"
-                               , "determ"
-                               , "detr"
-                               , "dft"
-                               , "dhnorm"
-                               , "diag"
-                               , "diary"
-                               , "diophant"
-                               , "disp"
-                               , "dispbpt"
-                               , "dispfile"
-                               , "dlgamma"
-                               , "dot"
-                               , "double"
-                               , "dragrect"
-                               , "drawaxis"
-                               , "driver"
-                               , "dscr"
-                               , "dsimul"
-                               , "dt_ility"
-                               , "dtsi"
-                               , "edge_number"
-                               , "edit"
-                               , "edit_curv"
-                               , "eigenmarkov"
-                               , "ell1mag"
-                               , "empty"
-                               , "emptystr"
-                               , "eqfir"
-                               , "eqiir"
-                               , "equal"
-                               , "equil"
-                               , "equil1"
-                               , "ereduc"
-                               , "erf"
-                               , "erfc"
-                               , "erfcx"
-                               , "errbar"
-                               , "errcatch"
-                               , "errclear"
-                               , "error"
-                               , "eval"
-                               , "eval3d"
-                               , "eval3dp"
-                               , "evans"
-                               , "evstr"
-                               , "excel2sci"
-                               , "exec"
-                               , "execstr"
-                               , "exists"
-                               , "exit"
-                               , "exp"
-                               , "expm"
-                               , "external"
-                               , "extraction"
-                               , "eye"
-                               , "fac3d"
-                               , "factors"
-                               , "faurre"
-                               , "fchamp"
-                               , "fcontour"
-                               , "fcontour2d"
-                               , "fec"
-                               , "feedback"
-                               , "feval"
-                               , "ffilt"
-                               , "fft"
-                               , "fgrayplot"
-                               , "figure"
-                               , "file"
-                               , "fileinfo"
-                               , "filter"
-                               , "find"
-                               , "find_freq"
-                               , "find_path"
-                               , "findm"
-                               , "findobj"
-                               , "fit_dat"
-                               , "fix"
-                               , "floor"
-                               , "flts"
-                               , "format"
-                               , "formatman"
-                               , "fort"
-                               , "fourplan"
-                               , "fplot2d"
-                               , "fplot3d"
-                               , "fplot3d1"
-                               , "fprintf"
-                               , "fprintfMat"
-                               , "frep2tf"
-                               , "freq"
-                               , "freson"
-                               , "frexp"
-                               , "frfit"
-                               , "frmag"
-                               , "fscanf"
-                               , "fscanfMat"
-                               , "fsfirlin"
-                               , "fsolve"
-                               , "fspecg"
-                               , "fstabst"
-                               , "fstair"
-                               , "full"
-                               , "fullrf"
-                               , "fullrfk"
-                               , "fun2string"
-                               , "funcprot"
-                               , "funptr"
-                               , "fusee"
-                               , "g_margin"
-                               , "gainplot"
-                               , "gamitg"
-                               , "gamma"
-                               , "gammaln"
-                               , "gcare"
-                               , "gcd"
-                               , "gcf"
-                               , "gen_net"
-                               , "genfac3d"
-                               , "genlib"
-                               , "genmarkov"
-                               , "geom3d"
-                               , "get"
-                               , "get_function_path"
-                               , "getblocklabel"
-                               , "getcolor"
-                               , "getcwd"
-                               , "getd"
-                               , "getdate"
-                               , "getenv"
-                               , "getf"
-                               , "getfield"
-                               , "getfont"
-                               , "getio"
-                               , "getlinestyle"
-                               , "getmark"
-                               , "getpid"
-                               , "getscicosvars"
-                               , "getsymbol"
-                               , "getvalue"
-                               , "getversion"
-                               , "gfare"
-                               , "gfrancis"
-                               , "girth"
-                               , "givens"
-                               , "glever"
-                               , "glist"
-                               , "global"
-                               , "gpeche"
-                               , "gr_menu"
-                               , "graduate"
-                               , "grand"
-                               , "graph-list"
-                               , "graph_2_mat"
-                               , "graph_center"
-                               , "graph_complement"
-                               , "graph_diameter"
-                               , "graph_power"
-                               , "graph_simp"
-                               , "graph_sum"
-                               , "graph_union"
-                               , "graycolormap"
-                               , "grayplot"
-                               , "graypolarplot"
-                               , "grep"
-                               , "group"
-                               , "gschur"
-                               , "gsort"
-                               , "gspec"
-                               , "gstacksize"
-                               , "gtild"
-                               , "h2norm"
-                               , "h_cl"
-                               , "h_inf"
-                               , "h_inf_st"
-                               , "h_norm"
-                               , "halt"
-                               , "hamilton"
-                               , "hank"
-                               , "hankelsv"
-                               , "hat"
-                               , "havewindow"
-                               , "help"
-                               , "hermit"
-                               , "hess"
-                               , "hex2dec"
-                               , "hilb"
-                               , "hist3d"
-                               , "histplot"
-                               , "horner"
-                               , "host"
-                               , "hotcolormap"
-                               , "householder"
-                               , "hrmt"
-                               , "htrianr"
-                               , "hypermat"
-                               , "hypermatrices"
-                               , "iconvert"
-                               , "ieee"
-                               , "iir"
-                               , "iirgroup"
-                               , "iirlp"
-                               , "ilib_build"
-                               , "ilib_compile"
-                               , "ilib_for_link"
-                               , "ilib_gen_Make"
-                               , "ilib_gen_gateway"
-                               , "ilib_gen_loader"
-                               , "im_inv"
-                               , "imag"
-                               , "impl"
-                               , "imrep2ss"
-                               , "input"
-                               , "insertion"
-                               , "int"
-                               , "int16"
-                               , "int2d"
-                               , "int32"
-                               , "int3d"
-                               , "int8"
-                               , "intc"
-                               , "intdec"
-                               , "integrate"
-                               , "interp"
-                               , "interpln"
-                               , "intersci"
-                               , "intersect"
-                               , "intg"
-                               , "intl"
-                               , "intppty"
-                               , "intsplin"
-                               , "inttrap"
-                               , "inttype"
-                               , "inv"
-                               , "inv_coeff"
-                               , "invr"
-                               , "invsyslin"
-                               , "is_connex"
-                               , "isdef"
-                               , "iserror"
-                               , "isglobal"
-                               , "isinf"
-                               , "isnan"
-                               , "isoview"
-                               , "isreal"
-                               , "jmat"
-                               , "kalm"
-                               , "karmarkar"
-                               , "kernel"
-                               , "keyboard"
-                               , "knapsack"
-                               , "kpure"
-                               , "krac2"
-                               , "kron"
-                               , "kroneck"
-                               , "lasterror"
-                               , "lattn"
-                               , "lattp"
-                               , "lcf"
-                               , "lcm"
-                               , "lcmdiag"
-                               , "ldiv"
-                               , "ldivf"
-                               , "leastsq"
-                               , "left"
-                               , "legends"
-                               , "length"
-                               , "leqr"
-                               , "less"
-                               , "lev"
-                               , "levin"
-                               , "lex_sort"
-                               , "lft"
-                               , "lgfft"
-                               , "lib"
-                               , "lin"
-                               , "lin2mu"
-                               , "lindquist"
-                               , "line_graph"
-                               , "lines"
-                               , "linf"
-                               , "linfn"
-                               , "link"
-                               , "linpro"
-                               , "linsolve"
-                               , "linspace"
-                               , "list"
-                               , "lmisolver"
-                               , "lmitool"
-                               , "load"
-                               , "load_graph"
-                               , "loadwave"
-                               , "locate"
-                               , "log"
-                               , "log10"
-                               , "log2"
-                               , "logm"
-                               , "logspace"
-                               , "lotest"
-                               , "lqe"
-                               , "lqg"
-                               , "lqg2stan"
-                               , "lqg_ltr"
-                               , "lqr"
-                               , "lsslist"
-                               , "lstcat"
-                               , "ltitr"
-                               , "lu"
-                               , "ludel"
-                               , "lufact"
-                               , "luget"
-                               , "lusolve"
-                               , "lyap"
-                               , "m_circle"
-                               , "macglov"
-                               , "macr2lst"
-                               , "macro"
-                               , "macrovar"
-                               , "make_graph"
-                               , "man"
-                               , "manedit"
-                               , "mapsound"
-                               , "markp2ss"
-                               , "mat_2_graph"
-                               , "matrices"
-                               , "matrix"
-                               , "max"
-                               , "max_cap_path"
-                               , "max_clique"
-                               , "max_flow"
-                               , "maxi"
-                               , "mclearerr"
-                               , "mclose"
-                               , "mean"
-                               , "median"
-                               , "meof"
-                               , "mese"
-                               , "mesh2d"
-                               , "metanet"
-                               , "metanet_sync"
-                               , "mfft"
-                               , "mfile2sci"
-                               , "mfprintf"
-                               , "mfscanf"
-                               , "mget"
-                               , "mgeti"
-                               , "mgetl"
-                               , "mgetstr"
-                               , "milk_drop"
-                               , "min"
-                               , "min_lcost_cflow"
-                               , "min_lcost_flow1"
-                               , "min_lcost_flow2"
-                               , "min_qcost_flow"
-                               , "min_weight_tree"
-                               , "mine"
-                               , "mini"
-                               , "minreal"
-                               , "minss"
-                               , "minus"
-                               , "mlist"
-                               , "mode"
-                               , "modulo"
-                               , "mopen"
-                               , "mprintf"
-                               , "mps2linpro"
-                               , "mput"
-                               , "mputl"
-                               , "mputstr"
-                               , "mrfit"
-                               , "mscanf"
-                               , "mseek"
-                               , "msprintf"
-                               , "msscanf"
-                               , "mtell"
-                               , "mtlb_load"
-                               , "mtlb_mode"
-                               , "mtlb_save"
-                               , "mtlb_sparse"
-                               , "mu2lin"
-                               , "mulf"
-                               , "names"
-                               , "narsimul"
-                               , "nehari"
-                               , "neighbors"
-                               , "netclose"
-                               , "netwindow"
-                               , "netwindows"
-                               , "newest"
-                               , "newfun"
-                               , "nf3d"
-                               , "nlev"
-                               , "nnz"
-                               , "node_number"
-                               , "nodes_2_path"
-                               , "nodes_degrees"
-                               , "noisegen"
-                               , "norm"
-                               , "not"
-                               , "null"
-                               , "numer"
-                               , "nyquist"
-                               , "obs_gram"
-                               , "obscont"
-                               , "obscont1"
-                               , "observer"
-                               , "obsv_mat"
-                               , "obsvss"
-                               , "ode"
-                               , "ode_discrete"
-                               , "ode_root"
-                               , "odedc"
-                               , "odedi"
-                               , "odeoptions"
-                               , "oldload"
-                               , "oldsave"
-                               , "ones"
-                               , "optim"
-                               , "or"
-                               , "orth"
-                               , "overloading"
-                               , "p_margin"
-                               , "param3d"
-                               , "param3d1"
-                               , "paramfplot2d"
-                               , "parents"
-                               , "parrot"
-                               , "part"
-                               , "path_2_nodes"
-                               , "pbig"
-                               , "pdiv"
-                               , "pen2ea"
-                               , "pencan"
-                               , "penlaur"
-                               , "percent"
-                               , "perfect_match"
-                               , "pertrans"
-                               , "pfss"
-                               , "phasemag"
-                               , "phc"
-                               , "pinv"
-                               , "pipe_network"
-                               , "playsnd"
-                               , "plot"
-                               , "plot2d"
-                               , "plot2d1"
-                               , "plot2d2"
-                               , "plot2d3"
-                               , "plot2d4"
-                               , "plot3d"
-                               , "plot3d1"
-                               , "plot3d2"
-                               , "plot3d3"
-                               , "plot_graph"
-                               , "plotframe"
-                               , "plotprofile"
-                               , "plus"
-                               , "plzr"
-                               , "pmodulo"
-                               , "pol2des"
-                               , "pol2str"
-                               , "pol2tex"
-                               , "polar"
-                               , "polarplot"
-                               , "polfact"
-                               , "poly"
-                               , "portr3d"
-                               , "portrait"
-                               , "power"
-                               , "ppol"
-                               , "prbs_a"
-                               , "predecessors"
-                               , "predef"
-                               , "print"
-                               , "printf"
-                               , "printf_conversion"
-                               , "printing"
-                               , "prod"
-                               , "profile"
-                               , "proj"
-                               , "projsl"
-                               , "projspec"
-                               , "psmall"
-                               , "pspect"
-                               , "pvm"
-                               , "pvm_addhosts"
-                               , "pvm_bcast"
-                               , "pvm_bufinfo"
-                               , "pvm_config"
-                               , "pvm_delhosts"
-                               , "pvm_error"
-                               , "pvm_exit"
-                               , "pvm_get_timer"
-                               , "pvm_getinst"
-                               , "pvm_gsize"
-                               , "pvm_halt"
-                               , "pvm_joingroup"
-                               , "pvm_kill"
-                               , "pvm_lvgroup"
-                               , "pvm_mytid"
-                               , "pvm_probe"
-                               , "pvm_recv"
-                               , "pvm_reduce"
-                               , "pvm_sci2f77"
-                               , "pvm_send"
-                               , "pvm_set_timer"
-                               , "pvm_spawn"
-                               , "pvm_spawn_independent"
-                               , "pvm_start"
-                               , "pvm_tidtohost"
-                               , "pvmd3"
-                               , "pwd"
-                               , "qassign"
-                               , "qr"
-                               , "quapro"
-                               , "quaskro"
-                               , "quit"
-                               , "quote"
-                               , "rand"
-                               , "randpencil"
-                               , "range"
-                               , "rank"
-                               , "rat"
-                               , "rational"
-                               , "rcond"
-                               , "rdivf"
-                               , "read"
-                               , "read4b"
-                               , "readb"
-                               , "readc_"
-                               , "readmps"
-                               , "real"
-                               , "recur"
-                               , "reglin"
-                               , "remez"
-                               , "remezb"
-                               , "repfreq"
-                               , "replot"
-                               , "residu"
-                               , "ric_desc"
-                               , "ricc"
-                               , "riccati"
-                               , "rlist"
-                               , "roots"
-                               , "rotate"
-                               , "round"
-                               , "routh_t"
-                               , "rowcomp"
-                               , "rowcompr"
-                               , "rowinout"
-                               , "rowregul"
-                               , "rowshuff"
-                               , "rpem"
-                               , "rref"
-                               , "rtitr"
-                               , "salesman"
-                               , "save"
-                               , "save_graph"
-                               , "savewave"
-                               , "scaling"
-                               , "scanf"
-                               , "scanf_conversion"
-                               , "schur"
-                               , "sci2exp"
-                               , "sci2for"
-                               , "sci2map"
-                               , "sciargs"
-                               , "scicos"
-                               , "scicos_block"
-                               , "scicos_cpr"
-                               , "scicos_graphics"
-                               , "scicos_link"
-                               , "scicos_main"
-                               , "scicos_menus"
-                               , "scicos_model"
-                               , "scicosim"
-                               , "scifunc_block"
-                               , "scilab"
-                               , "scilink"
-                               , "sd2sci"
-                               , "secto3d"
-                               , "semi"
-                               , "semicolumn"
-                               , "semidef"
-                               , "sensi"
-                               , "set"
-                               , "setbpt"
-                               , "setfield"
-                               , "setmenu"
-                               , "setscicosvars"
-                               , "sfact"
-                               , "sgrid"
-                               , "shortest_path"
-                               , "show_arcs"
-                               , "show_graph"
-                               , "show_nodes"
-                               , "showprofile"
-                               , "sign"
-                               , "signm"
-                               , "simp"
-                               , "simp_mode"
-                               , "sin"
-                               , "sinc"
-                               , "sincd"
-                               , "sinh"
-                               , "sinhm"
-                               , "sinm"
-                               , "size"
-                               , "slash"
-                               , "sm2des"
-                               , "sm2ss"
-                               , "smooth"
-                               , "solve"
-                               , "sort"
-                               , "sound"
-                               , "sp2adj"
-                               , "spaninter"
-                               , "spanplus"
-                               , "spantwo"
-                               , "sparse"
-                               , "spchol"
-                               , "spcompack"
-                               , "spec"
-                               , "specfact"
-                               , "speye"
-                               , "spget"
-                               , "splin"
-                               , "split_edge"
-                               , "spones"
-                               , "sprand"
-                               , "sprintf"
-                               , "spzeros"
-                               , "sqroot"
-                               , "sqrt"
-                               , "sqrtm"
-                               , "square"
-                               , "squarewave"
-                               , "srfaur"
-                               , "srkf"
-                               , "ss2des"
-                               , "ss2ss"
-                               , "ss2tf"
-                               , "sscanf"
-                               , "sskf"
-                               , "ssprint"
-                               , "ssrand"
-                               , "st_deviation"
-                               , "st_ility"
-                               , "stabil"
-                               , "stacksize"
-                               , "standard_define"
-                               , "standard_draw"
-                               , "standard_input"
-                               , "standard_origin"
-                               , "standard_output"
-                               , "star"
-                               , "startup"
-                               , "str2code"
-                               , "strcat"
-                               , "strindex"
-                               , "string"
-                               , "strings"
-                               , "stripblanks"
-                               , "strong_con_nodes"
-                               , "strong_connex"
-                               , "strsubst"
-                               , "subf"
-                               , "subgraph"
-                               , "subplot"
-                               , "successors"
-                               , "sum"
-                               , "supernode"
-                               , "sva"
-                               , "svd"
-                               , "svplot"
-                               , "sylm"
-                               , "sylv"
-                               , "symbols"
-                               , "sysconv"
-                               , "sysdiag"
-                               , "sysfact-"
-                               , "syslin"
-                               , "syssize"
-                               , "system"
-                               , "systems"
-                               , "systmat"
-                               , "tan"
-                               , "tangent"
-                               , "tanh"
-                               , "tanhm"
-                               , "tanm"
-                               , "tdinit"
-                               , "testmatrix"
-                               , "texprint"
-                               , "tf2des"
-                               , "tf2ss"
-                               , "tilda"
-                               , "time_id"
-                               , "timer"
-                               , "titlepage"
-                               , "tlist"
-                               , "toeplitz"
-                               , "trace"
-                               , "trans"
-                               , "trans_closure"
-                               , "translatepaths"
-                               , "trfmod"
-                               , "trianfml"
-                               , "tril"
-                               , "trisolve"
-                               , "triu"
-                               , "trzeros"
-                               , "type"
-                               , "typename"
-                               , "typeof"
-                               , "ui_observer"
-                               , "uicontrol"
-                               , "uimenu"
-                               , "uint16"
-                               , "uint32"
-                               , "uint8"
-                               , "ulink"
-                               , "union"
-                               , "unique"
-                               , "unix"
-                               , "unix_g"
-                               , "unix_s"
-                               , "unix_w"
-                               , "unix_x"
-                               , "unobs"
-                               , "unsetmenu"
-                               , "user"
-                               , "varargin"
-                               , "varargout"
-                               , "varn"
-                               , "warning"
-                               , "wavread"
-                               , "wavwrite"
-                               , "wfir"
-                               , "what"
-                               , "where"
-                               , "whereami"
-                               , "whereis"
-                               , "who"
-                               , "whos"
-                               , "wiener"
-                               , "wigner"
-                               , "window"
-                               , "winsid"
-                               , "writb"
-                               , "write"
-                               , "write4b"
-                               , "x_choices"
-                               , "x_choose"
-                               , "x_dialog"
-                               , "x_matrix"
-                               , "x_mdialog"
-                               , "x_message"
-                               , "x_message_modeless"
-                               , "xarc"
-                               , "xarcs"
-                               , "xarrows"
-                               , "xaxis"
-                               , "xbasc"
-                               , "xbasimp"
-                               , "xbasr"
-                               , "xchange"
-                               , "xclea"
-                               , "xclear"
-                               , "xclick"
-                               , "xclip"
-                               , "xdel"
-                               , "xend"
-                               , "xfarc"
-                               , "xfarcs"
-                               , "xfpoly"
-                               , "xfpolys"
-                               , "xfrect"
-                               , "xget"
-                               , "xgetech"
-                               , "xgetfile"
-                               , "xgetmouse"
-                               , "xgraduate"
-                               , "xgrid"
-                               , "xinfo"
-                               , "xinit"
-                               , "xlfont"
-                               , "xload"
-                               , "xname"
-                               , "xnumb"
-                               , "xpause"
-                               , "xpoly"
-                               , "xpolys"
-                               , "xrect"
-                               , "xrects"
-                               , "xrpoly"
-                               , "xs2fig"
-                               , "xsave"
-                               , "xsegs"
-                               , "xselect"
-                               , "xset"
-                               , "xsetech"
-                               , "xsetm"
-                               , "xstring"
-                               , "xstringb"
-                               , "xstringl"
-                               , "xtape"
-                               , "xtitle"
-                               , "yulewalk"
-                               , "zeropen"
-                               , "zeros"
-                               , "zgrid"
-                               , "zpbutt"
-                               , "zpch1"
-                               , "zpch2"
-                               , "zpell"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "//.*$"
-                              , reCompiled = Just (compileRegex True "//.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '"' '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = ""
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.sci" , "*.sce" ]
-  , sStartingContext = "main"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"scilab\", sFilename = \"sci.xml\", sShortname = \"Sci\", sContexts = fromList [(\"main\",Context {cName = \"main\", cSyntax = \"scilab\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"do\",\"else\",\"elseif\",\"end\",\"for\",\"if\",\"select\",\"then\",\"while\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"abort\",\"break\",\"pause\",\"quit\",\"resume\",\"return\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"endfunction\",\"function\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"error\",\"warning\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"$\",\"%F\",\"%T\",\"%e\",\"%eps\",\"%f\",\"%i\",\"%inf\",\"%io\",\"%nan\",\"%pi\",\"%s\",\"%t\",\"%z\",\"MSDOS\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"%asn\",\"%helps\",\"%k\",\"%sn\",\"ABSBLK_f\",\"AFFICH_f\",\"ANDLOG_f\",\"ANIMXY_f\",\"AdCommunications\",\"BIGSOM_f\",\"CLINDUMMY_f\",\"CLKINV_f\",\"CLKIN_f\",\"CLKOUTV_f\",\"CLKOUT_f\",\"CLKSOMV_f\",\"CLKSOM_f\",\"CLKSPLIT_f\",\"CLOCK_f\",\"CLR_f\",\"CLSS_f\",\"CONST_f\",\"COSBLK_f\",\"CURV_f\",\"Communications\",\"CreateLink\",\"DELAYV_f\",\"DELAY_f\",\"DEMUX_f\",\"DLRADAPT_f\",\"DLR_f\",\"DLSS_f\",\"DestroyLink\",\"EVENTSCOPE_f\",\"EVTDLY_f\",\"EVTGEN_f\",\"EXPBLK_f\",\"Example\",\"ExecAppli\",\"ExecScilab\",\"ExeclScilab\",\"GAINBLK_f\",\"GAIN_f\",\"GENERAL_f\",\"GENERIC_f\",\"GENSIN_f\",\"GENSQR_f\",\"G_make\",\"GetMsg\",\"Graphics\",\"HALT_f\",\"IFTHEL_f\",\"INTEGRAL_f\",\"INTRP2BLK_f\",\"INTRPLBLK_f\",\"INVBLK_f\",\"IN_f\",\"LOGBLK_f\",\"LOOKUP_f\",\"MAX_f\",\"MCLOCK_f\",\"MFCLCK_f\",\"MIN_f\",\"MUX_f\",\"Matplot\",\"Matplot1\",\"NEGTOPOS_f\",\"OUT_f\",\"POSTONEG_f\",\"POWBLK_f\",\"PROD_f\",\"QUANT_f\",\"RAND_f\",\"READC_f\",\"REGISTER_f\",\"RELAY_f\",\"RFILE_f\",\"SAMPLEHOLD_f\",\"SAT_f\",\"SAWTOOTH_f\",\"SCOPE_f\",\"SCOPXY_f\",\"SELECT_f\",\"SINBLK_f\",\"SOM_f\",\"SPLIT_f\",\"STOP_f\",\"SUPER_f\",\"ScilabEval\",\"SendMsg\",\"Sfgrayplot\",\"Sgrayplot\",\"TANBLK_f\",\"TCLSS_f\",\"TEXT_f\",\"TIME_f\",\"TK_EvalFile\",\"TK_EvalStr\",\"TK_GetVar\",\"TK_SetVar\",\"TRASH_f\",\"WFILE_f\",\"WRITEC_f\",\"WaitMsg\",\"ZCROSS_f\",\"abcd\",\"abinv\",\"abs\",\"acos\",\"acosh\",\"acoshm\",\"acosm\",\"add_edge\",\"add_node\",\"addcolor\",\"addf\",\"addinter\",\"addmenu\",\"adj2sp\",\"adj_lists\",\"aff2ab\",\"alufunctions\",\"amell\",\"analpf\",\"analyze\",\"and\",\"ans\",\"apropos\",\"arc_graph\",\"arc_number\",\"argn\",\"arhnk\",\"arl2\",\"arma\",\"arma2p\",\"armac\",\"armax\",\"armax1\",\"arsimul\",\"artest\",\"articul\",\"ascii\",\"asin\",\"asinh\",\"asinhm\",\"asinm\",\"atan\",\"atanh\",\"atanhm\",\"atanm\",\"augment\",\"auread\",\"auwrite\",\"backslash\",\"balanc\",\"balreal\",\"bandwr\",\"bdiag\",\"besseli\",\"besselj\",\"besselk\",\"bessely\",\"best_match\",\"bezout\",\"bifish\",\"bilin\",\"binomial\",\"black\",\"bloc2exp\",\"bloc2ss\",\"bode\",\"bool2s\",\"boolean\",\"boucle\",\"bstap\",\"buttmag\",\"bvode\",\"c_link\",\"cainv\",\"calerf\",\"calfrq\",\"call\",\"canon\",\"casc\",\"ccontrg\",\"cdfbet\",\"cdfbin\",\"cdfchi\",\"cdfchn\",\"cdff\",\"cdffnc\",\"cdfgam\",\"cdfnbn\",\"cdfnor\",\"cdfpoi\",\"cdft\",\"ceil\",\"cepstrum\",\"chain_struct\",\"chaintest\",\"champ\",\"champ1\",\"chart\",\"chdir\",\"cheb1mag\",\"cheb2mag\",\"check_graph\",\"chepol\",\"chfact\",\"chol\",\"chsolve\",\"circuit\",\"classmarkov\",\"clean\",\"clear\",\"clearfun\",\"clearglobal\",\"close\",\"cls2dls\",\"cmb_lin\",\"cmndred\",\"code2str\",\"coeff\",\"coff\",\"coffg\",\"colcomp\",\"colcompr\",\"colinout\",\"colnew\",\"colon\",\"colormap\",\"colregul\",\"comp\",\"companion\",\"con_nodes\",\"cond\",\"conj\",\"connex\",\"cont_frm\",\"cont_mat\",\"contour\",\"contour2d\",\"contour2di\",\"contourf\",\"contr\",\"contract_edge\",\"contrss\",\"convex_hull\",\"convol\",\"convstr\",\"copfac\",\"corr\",\"cos\",\"cosh\",\"coshm\",\"cosm\",\"cotg\",\"coth\",\"cothm\",\"csim\",\"cspect\",\"ctr_gram\",\"cumprod\",\"cumsum\",\"curblock\",\"cycle_basis\",\"czt\",\"dasrt\",\"dassl\",\"datafit\",\"date\",\"dbphi\",\"dcf\",\"ddp\",\"debug\",\"dec2hex\",\"deff\",\"degree\",\"delbpt\",\"delete_arcs\",\"delete_nodes\",\"delip\",\"delmenu\",\"demos\",\"denom\",\"derivat\",\"derivative-\",\"des2ss\",\"des2tf\",\"det\",\"determ\",\"detr\",\"dft\",\"dhnorm\",\"diag\",\"diary\",\"diophant\",\"disp\",\"dispbpt\",\"dispfile\",\"dlgamma\",\"dot\",\"double\",\"dragrect\",\"drawaxis\",\"driver\",\"dscr\",\"dsimul\",\"dt_ility\",\"dtsi\",\"edge_number\",\"edit\",\"edit_curv\",\"eigenmarkov\",\"ell1mag\",\"empty\",\"emptystr\",\"eqfir\",\"eqiir\",\"equal\",\"equil\",\"equil1\",\"ereduc\",\"erf\",\"erfc\",\"erfcx\",\"errbar\",\"errcatch\",\"errclear\",\"error\",\"eval\",\"eval3d\",\"eval3dp\",\"evans\",\"evstr\",\"excel2sci\",\"exec\",\"execstr\",\"exists\",\"exit\",\"exp\",\"expm\",\"external\",\"extraction\",\"eye\",\"fac3d\",\"factors\",\"faurre\",\"fchamp\",\"fcontour\",\"fcontour2d\",\"fec\",\"feedback\",\"feval\",\"ffilt\",\"fft\",\"fgrayplot\",\"figure\",\"file\",\"fileinfo\",\"filter\",\"find\",\"find_freq\",\"find_path\",\"findm\",\"findobj\",\"fit_dat\",\"fix\",\"floor\",\"flts\",\"format\",\"formatman\",\"fort\",\"fourplan\",\"fplot2d\",\"fplot3d\",\"fplot3d1\",\"fprintf\",\"fprintfMat\",\"frep2tf\",\"freq\",\"freson\",\"frexp\",\"frfit\",\"frmag\",\"fscanf\",\"fscanfMat\",\"fsfirlin\",\"fsolve\",\"fspecg\",\"fstabst\",\"fstair\",\"full\",\"fullrf\",\"fullrfk\",\"fun2string\",\"funcprot\",\"funptr\",\"fusee\",\"g_margin\",\"gainplot\",\"gamitg\",\"gamma\",\"gammaln\",\"gcare\",\"gcd\",\"gcf\",\"gen_net\",\"genfac3d\",\"genlib\",\"genmarkov\",\"geom3d\",\"get\",\"get_function_path\",\"getblocklabel\",\"getcolor\",\"getcwd\",\"getd\",\"getdate\",\"getenv\",\"getf\",\"getfield\",\"getfont\",\"getio\",\"getlinestyle\",\"getmark\",\"getpid\",\"getscicosvars\",\"getsymbol\",\"getvalue\",\"getversion\",\"gfare\",\"gfrancis\",\"girth\",\"givens\",\"glever\",\"glist\",\"global\",\"gpeche\",\"gr_menu\",\"graduate\",\"grand\",\"graph-list\",\"graph_2_mat\",\"graph_center\",\"graph_complement\",\"graph_diameter\",\"graph_power\",\"graph_simp\",\"graph_sum\",\"graph_union\",\"graycolormap\",\"grayplot\",\"graypolarplot\",\"grep\",\"group\",\"gschur\",\"gsort\",\"gspec\",\"gstacksize\",\"gtild\",\"h2norm\",\"h_cl\",\"h_inf\",\"h_inf_st\",\"h_norm\",\"halt\",\"hamilton\",\"hank\",\"hankelsv\",\"hat\",\"havewindow\",\"help\",\"hermit\",\"hess\",\"hex2dec\",\"hilb\",\"hist3d\",\"histplot\",\"horner\",\"host\",\"hotcolormap\",\"householder\",\"hrmt\",\"htrianr\",\"hypermat\",\"hypermatrices\",\"iconvert\",\"ieee\",\"iir\",\"iirgroup\",\"iirlp\",\"ilib_build\",\"ilib_compile\",\"ilib_for_link\",\"ilib_gen_Make\",\"ilib_gen_gateway\",\"ilib_gen_loader\",\"im_inv\",\"imag\",\"impl\",\"imrep2ss\",\"input\",\"insertion\",\"int\",\"int16\",\"int2d\",\"int32\",\"int3d\",\"int8\",\"intc\",\"intdec\",\"integrate\",\"interp\",\"interpln\",\"intersci\",\"intersect\",\"intg\",\"intl\",\"intppty\",\"intsplin\",\"inttrap\",\"inttype\",\"inv\",\"inv_coeff\",\"invr\",\"invsyslin\",\"is_connex\",\"isdef\",\"iserror\",\"isglobal\",\"isinf\",\"isnan\",\"isoview\",\"isreal\",\"jmat\",\"kalm\",\"karmarkar\",\"kernel\",\"keyboard\",\"knapsack\",\"kpure\",\"krac2\",\"kron\",\"kroneck\",\"lasterror\",\"lattn\",\"lattp\",\"lcf\",\"lcm\",\"lcmdiag\",\"ldiv\",\"ldivf\",\"leastsq\",\"left\",\"legends\",\"length\",\"leqr\",\"less\",\"lev\",\"levin\",\"lex_sort\",\"lft\",\"lgfft\",\"lib\",\"lin\",\"lin2mu\",\"lindquist\",\"line_graph\",\"lines\",\"linf\",\"linfn\",\"link\",\"linpro\",\"linsolve\",\"linspace\",\"list\",\"lmisolver\",\"lmitool\",\"load\",\"load_graph\",\"loadwave\",\"locate\",\"log\",\"log10\",\"log2\",\"logm\",\"logspace\",\"lotest\",\"lqe\",\"lqg\",\"lqg2stan\",\"lqg_ltr\",\"lqr\",\"lsslist\",\"lstcat\",\"ltitr\",\"lu\",\"ludel\",\"lufact\",\"luget\",\"lusolve\",\"lyap\",\"m_circle\",\"macglov\",\"macr2lst\",\"macro\",\"macrovar\",\"make_graph\",\"man\",\"manedit\",\"mapsound\",\"markp2ss\",\"mat_2_graph\",\"matrices\",\"matrix\",\"max\",\"max_cap_path\",\"max_clique\",\"max_flow\",\"maxi\",\"mclearerr\",\"mclose\",\"mean\",\"median\",\"meof\",\"mese\",\"mesh2d\",\"metanet\",\"metanet_sync\",\"mfft\",\"mfile2sci\",\"mfprintf\",\"mfscanf\",\"mget\",\"mgeti\",\"mgetl\",\"mgetstr\",\"milk_drop\",\"min\",\"min_lcost_cflow\",\"min_lcost_flow1\",\"min_lcost_flow2\",\"min_qcost_flow\",\"min_weight_tree\",\"mine\",\"mini\",\"minreal\",\"minss\",\"minus\",\"mlist\",\"mode\",\"modulo\",\"mopen\",\"mprintf\",\"mps2linpro\",\"mput\",\"mputl\",\"mputstr\",\"mrfit\",\"mscanf\",\"mseek\",\"msprintf\",\"msscanf\",\"mtell\",\"mtlb_load\",\"mtlb_mode\",\"mtlb_save\",\"mtlb_sparse\",\"mu2lin\",\"mulf\",\"names\",\"narsimul\",\"nehari\",\"neighbors\",\"netclose\",\"netwindow\",\"netwindows\",\"newest\",\"newfun\",\"nf3d\",\"nlev\",\"nnz\",\"node_number\",\"nodes_2_path\",\"nodes_degrees\",\"noisegen\",\"norm\",\"not\",\"null\",\"numer\",\"nyquist\",\"obs_gram\",\"obscont\",\"obscont1\",\"observer\",\"obsv_mat\",\"obsvss\",\"ode\",\"ode_discrete\",\"ode_root\",\"odedc\",\"odedi\",\"odeoptions\",\"oldload\",\"oldsave\",\"ones\",\"optim\",\"or\",\"orth\",\"overloading\",\"p_margin\",\"param3d\",\"param3d1\",\"paramfplot2d\",\"parents\",\"parrot\",\"part\",\"path_2_nodes\",\"pbig\",\"pdiv\",\"pen2ea\",\"pencan\",\"penlaur\",\"percent\",\"perfect_match\",\"pertrans\",\"pfss\",\"phasemag\",\"phc\",\"pinv\",\"pipe_network\",\"playsnd\",\"plot\",\"plot2d\",\"plot2d1\",\"plot2d2\",\"plot2d3\",\"plot2d4\",\"plot3d\",\"plot3d1\",\"plot3d2\",\"plot3d3\",\"plot_graph\",\"plotframe\",\"plotprofile\",\"plus\",\"plzr\",\"pmodulo\",\"pol2des\",\"pol2str\",\"pol2tex\",\"polar\",\"polarplot\",\"polfact\",\"poly\",\"portr3d\",\"portrait\",\"power\",\"ppol\",\"prbs_a\",\"predecessors\",\"predef\",\"print\",\"printf\",\"printf_conversion\",\"printing\",\"prod\",\"profile\",\"proj\",\"projsl\",\"projspec\",\"psmall\",\"pspect\",\"pvm\",\"pvm_addhosts\",\"pvm_bcast\",\"pvm_bufinfo\",\"pvm_config\",\"pvm_delhosts\",\"pvm_error\",\"pvm_exit\",\"pvm_get_timer\",\"pvm_getinst\",\"pvm_gsize\",\"pvm_halt\",\"pvm_joingroup\",\"pvm_kill\",\"pvm_lvgroup\",\"pvm_mytid\",\"pvm_probe\",\"pvm_recv\",\"pvm_reduce\",\"pvm_sci2f77\",\"pvm_send\",\"pvm_set_timer\",\"pvm_spawn\",\"pvm_spawn_independent\",\"pvm_start\",\"pvm_tidtohost\",\"pvmd3\",\"pwd\",\"qassign\",\"qr\",\"quapro\",\"quaskro\",\"quit\",\"quote\",\"rand\",\"randpencil\",\"range\",\"rank\",\"rat\",\"rational\",\"rcond\",\"rdivf\",\"read\",\"read4b\",\"readb\",\"readc_\",\"readmps\",\"real\",\"recur\",\"reglin\",\"remez\",\"remezb\",\"repfreq\",\"replot\",\"residu\",\"ric_desc\",\"ricc\",\"riccati\",\"rlist\",\"roots\",\"rotate\",\"round\",\"routh_t\",\"rowcomp\",\"rowcompr\",\"rowinout\",\"rowregul\",\"rowshuff\",\"rpem\",\"rref\",\"rtitr\",\"salesman\",\"save\",\"save_graph\",\"savewave\",\"scaling\",\"scanf\",\"scanf_conversion\",\"schur\",\"sci2exp\",\"sci2for\",\"sci2map\",\"sciargs\",\"scicos\",\"scicos_block\",\"scicos_cpr\",\"scicos_graphics\",\"scicos_link\",\"scicos_main\",\"scicos_menus\",\"scicos_model\",\"scicosim\",\"scifunc_block\",\"scilab\",\"scilink\",\"sd2sci\",\"secto3d\",\"semi\",\"semicolumn\",\"semidef\",\"sensi\",\"set\",\"setbpt\",\"setfield\",\"setmenu\",\"setscicosvars\",\"sfact\",\"sgrid\",\"shortest_path\",\"show_arcs\",\"show_graph\",\"show_nodes\",\"showprofile\",\"sign\",\"signm\",\"simp\",\"simp_mode\",\"sin\",\"sinc\",\"sincd\",\"sinh\",\"sinhm\",\"sinm\",\"size\",\"slash\",\"sm2des\",\"sm2ss\",\"smooth\",\"solve\",\"sort\",\"sound\",\"sp2adj\",\"spaninter\",\"spanplus\",\"spantwo\",\"sparse\",\"spchol\",\"spcompack\",\"spec\",\"specfact\",\"speye\",\"spget\",\"splin\",\"split_edge\",\"spones\",\"sprand\",\"sprintf\",\"spzeros\",\"sqroot\",\"sqrt\",\"sqrtm\",\"square\",\"squarewave\",\"srfaur\",\"srkf\",\"ss2des\",\"ss2ss\",\"ss2tf\",\"sscanf\",\"sskf\",\"ssprint\",\"ssrand\",\"st_deviation\",\"st_ility\",\"stabil\",\"stacksize\",\"standard_define\",\"standard_draw\",\"standard_input\",\"standard_origin\",\"standard_output\",\"star\",\"startup\",\"str2code\",\"strcat\",\"strindex\",\"string\",\"strings\",\"stripblanks\",\"strong_con_nodes\",\"strong_connex\",\"strsubst\",\"subf\",\"subgraph\",\"subplot\",\"successors\",\"sum\",\"supernode\",\"sva\",\"svd\",\"svplot\",\"sylm\",\"sylv\",\"symbols\",\"sysconv\",\"sysdiag\",\"sysfact-\",\"syslin\",\"syssize\",\"system\",\"systems\",\"systmat\",\"tan\",\"tangent\",\"tanh\",\"tanhm\",\"tanm\",\"tdinit\",\"testmatrix\",\"texprint\",\"tf2des\",\"tf2ss\",\"tilda\",\"time_id\",\"timer\",\"titlepage\",\"tlist\",\"toeplitz\",\"trace\",\"trans\",\"trans_closure\",\"translatepaths\",\"trfmod\",\"trianfml\",\"tril\",\"trisolve\",\"triu\",\"trzeros\",\"type\",\"typename\",\"typeof\",\"ui_observer\",\"uicontrol\",\"uimenu\",\"uint16\",\"uint32\",\"uint8\",\"ulink\",\"union\",\"unique\",\"unix\",\"unix_g\",\"unix_s\",\"unix_w\",\"unix_x\",\"unobs\",\"unsetmenu\",\"user\",\"varargin\",\"varargout\",\"varn\",\"warning\",\"wavread\",\"wavwrite\",\"wfir\",\"what\",\"where\",\"whereami\",\"whereis\",\"who\",\"whos\",\"wiener\",\"wigner\",\"window\",\"winsid\",\"writb\",\"write\",\"write4b\",\"x_choices\",\"x_choose\",\"x_dialog\",\"x_matrix\",\"x_mdialog\",\"x_message\",\"x_message_modeless\",\"xarc\",\"xarcs\",\"xarrows\",\"xaxis\",\"xbasc\",\"xbasimp\",\"xbasr\",\"xchange\",\"xclea\",\"xclear\",\"xclick\",\"xclip\",\"xdel\",\"xend\",\"xfarc\",\"xfarcs\",\"xfpoly\",\"xfpolys\",\"xfrect\",\"xget\",\"xgetech\",\"xgetfile\",\"xgetmouse\",\"xgraduate\",\"xgrid\",\"xinfo\",\"xinit\",\"xlfont\",\"xload\",\"xname\",\"xnumb\",\"xpause\",\"xpoly\",\"xpolys\",\"xrect\",\"xrects\",\"xrpoly\",\"xs2fig\",\"xsave\",\"xsegs\",\"xselect\",\"xset\",\"xsetech\",\"xsetm\",\"xstring\",\"xstringb\",\"xstringl\",\"xtape\",\"xtitle\",\"yulewalk\",\"zeropen\",\"zeros\",\"zgrid\",\"zpbutt\",\"zpch1\",\"zpch2\",\"zpell\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"//.*$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RangeDetect '\"' '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.sci\",\"*.sce\"], sStartingContext = \"main\"}"
diff --git a/src/Skylighting/Syntax/Sed.hs b/src/Skylighting/Syntax/Sed.hs
--- a/src/Skylighting/Syntax/Sed.hs
+++ b/src/Skylighting/Syntax/Sed.hs
@@ -2,2292 +2,6 @@
 module Skylighting.Syntax.Sed (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "sed"
-  , sFilename = "sed.xml"
-  , sShortname = "Sed"
-  , sContexts =
-      fromList
-        [ ( "AICCommand"
-          , Context
-              { cName = "AICCommand"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "LiteralText" ) ]
-                      }
-                  , 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 = [ Push ( "sed" , "Error" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "Error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "AfterCommand"
-          , Context
-              { cName = "AfterCommand"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ';'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "BeginningOfLine" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "AfterCommand" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "Comment" ) ]
-                      }
-                  , 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 = [ Push ( "sed" , "Error" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "BeginningOfLine" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "AfterFirstAddress"
-          , Context
-              { cName = "AfterFirstAddress"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '!'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "Command" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "sed" , "AfterFirstAddress2" )
-                      , 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 = [ Push ( "sed" , "Error" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "BeginningOfLine" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "AfterFirstAddress2"
-          , Context
-              { cName = "AfterFirstAddress2"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ','
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "SecondAddress" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '~'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "Step" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "sed" , "Command" )
-                      , 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 = [ Push ( "sed" , "Error" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "BeginningOfLine" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "AfterSecondAddress"
-          , Context
-              { cName = "AfterSecondAddress"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '!'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "Command" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "sed" , "Command" )
-                      , 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 = [ Push ( "sed" , "Error" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "Error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "BTCommand"
-          , Context
-              { cName = "BTCommand"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , 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 = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "AfterCommand" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "sed" , "AfterCommand" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "BeginningOfLine" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "BeginningOfLine"
-          , Context
-              { cName = "BeginningOfLine"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "Comment" ) ]
-                      }
-                  , 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 = [ Push ( "sed" , "FirstAddressRegex" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(\\S)"
-                              , reCompiled = Just (compileRegex True "\\\\(\\S)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "FirstAddressRegex" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "AfterFirstAddress" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "AfterFirstAddress" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "AfterCommand" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ':'
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "Label" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '!'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "Command" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "sed" , "Command" )
-                      , 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 = [ Push ( "sed" , "Error" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Command"
-          , Context
-              { cName = "Command"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar 's'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "SCommand" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar 'y'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "YCommand" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "dpnDNPhHgGxFvz="
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "AfterCommand" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "aic"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "AICCommand" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "bTt"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "BTCommand" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "WwrR"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "WRCommand" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "lL"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "LCommand" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "qQ"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "QCommand" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "BeginningOfLine" ) ]
-                      }
-                  , 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 = [ Push ( "sed" , "Error" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "Error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "sed"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "BeginningOfLine" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Error"
-          , Context
-              { cName = "Error"
-              , cSyntax = "sed"
-              , cRules = []
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "BeginningOfLine" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FirstAddressRegex"
-          , Context
-              { cName = "FirstAddressRegex"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1" , reCompiled = Nothing , reCaseSensitive = True }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "AfterFirstAddress" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "sed" , "Regex" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "Error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "LCommand"
-          , Context
-              { cName = "LCommand"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "AfterCommand" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "sed" , "AfterCommand" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "BeginningOfLine" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Label"
-          , Context
-              { cName = "Label"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , 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 = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "AfterCommand" ) ]
-                      }
-                  , 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 = [ Push ( "sed" , "Error" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "Error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "LiteralText"
-          , Context
-              { cName = "LiteralText"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "LiteralText" ) ]
-                      }
-                  , Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "LiteralText" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\\'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "Error" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "BeginningOfLine" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "QCommand"
-          , Context
-              { cName = "QCommand"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "AfterCommand" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "sed" , "AfterCommand" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "BeginningOfLine" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Regex"
-          , Context
-              { cName = "Regex"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '('
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ')'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '+'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '?'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '|'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '{'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '}'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '['
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' ']'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '.'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '*'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '^'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '$'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' 'n'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' 't'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '0'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '1'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '2'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '3'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '4'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '5'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '6'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '7'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '8'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '9'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '*'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '.'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '^'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "Error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SCommand"
-          , Context
-              { cName = "SCommand"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , 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 = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "SRegex" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "Error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SFlags"
-          , Context
-              { cName = "SFlags"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "gpeIiMm"
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar 'w'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "WFlag" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "sed" , "AfterCommand" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "BeginningOfLine" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SRegex"
-          , Context
-              { cName = "SRegex"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(%1)"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "SReplacement" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "sed" , "Regex" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "Error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "SReplacement"
-          , Context
-              { cName = "SReplacement"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1" , reCompiled = Nothing , reCaseSensitive = True }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "SFlags" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[0-9LlUuE\\\\&]"
-                              , reCompiled = Just (compileRegex True "\\\\[0-9LlUuE\\\\&]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '&'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "Error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "SecondAddress"
-          , Context
-              { cName = "SecondAddress"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = [ Push ( "sed" , "SecondAddressRegex" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\(\\S)"
-                              , reCompiled = Just (compileRegex True "\\\\(\\S)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "SecondAddressRegex" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "AfterSecondAddress" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "AfterSecondAddress" ) ]
-                      }
-                  , 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 = [ Push ( "sed" , "Error" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "Error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SecondAddressRegex"
-          , Context
-              { cName = "SecondAddressRegex"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1" , reCompiled = Nothing , reCaseSensitive = True }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "AfterSecondAddress" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "sed" , "Regex" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "Error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "Step"
-          , Context
-              { cName = "Step"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "Command" ) ]
-                      }
-                  , 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 = [ Push ( "sed" , "Error" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "Error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WFlag"
-          , Context
-              { cName = "WFlag"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , 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 = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "SFlags" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "BeginningOfLine" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "WRCommand"
-          , Context
-              { cName = "WRCommand"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , 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 = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "AfterCommand" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "Error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "YCommand"
-          , Context
-              { cName = "YCommand"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , 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 = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "YSourceList" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "Error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "YDestList"
-          , Context
-              { cName = "YDestList"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1" , reCompiled = Nothing , reCaseSensitive = True }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "AfterCommand" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' 'n'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "Error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "YSourceList"
-          , Context
-              { cName = "YSourceList"
-              , cSyntax = "sed"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\%1"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(%1)"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "sed" , "YDestList" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' 'n'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '\\'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Push ( "sed" , "Error" ) ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        ]
-  , sAuthor = "Bart Sas (bart.sas@gmail.com)"
-  , sVersion = "2"
-  , sLicense = "GPL"
-  , sExtensions = [ "*.sed" ]
-  , sStartingContext = "BeginningOfLine"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"sed\", sFilename = \"sed.xml\", sShortname = \"Sed\", sContexts = fromList [(\"AICCommand\",Context {cName = \"AICCommand\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = LineContinue, rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"LiteralText\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"Error\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"Error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"AfterCommand\",Context {cName = \"AfterCommand\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ';', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"BeginningOfLine\")]},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"AfterCommand\")]},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"Error\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"BeginningOfLine\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"AfterFirstAddress\",Context {cName = \"AfterFirstAddress\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '!', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"Command\")]},Rule {rMatcher = IncludeRules (\"sed\",\"AfterFirstAddress2\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"Error\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"BeginningOfLine\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"AfterFirstAddress2\",Context {cName = \"AfterFirstAddress2\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ',', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"SecondAddress\")]},Rule {rMatcher = DetectChar '~', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"Step\")]},Rule {rMatcher = IncludeRules (\"sed\",\"Command\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"Error\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"BeginningOfLine\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"AfterSecondAddress\",Context {cName = \"AfterSecondAddress\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '!', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"Command\")]},Rule {rMatcher = IncludeRules (\"sed\",\"Command\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"Error\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"Error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"BTCommand\",Context {cName = \"BTCommand\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\w+\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"AfterCommand\")]},Rule {rMatcher = IncludeRules (\"sed\",\"AfterCommand\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"BeginningOfLine\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"BeginningOfLine\",Context {cName = \"BeginningOfLine\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"(/)\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"FirstAddressRegex\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(\\\\S)\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"FirstAddressRegex\")]},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"AfterFirstAddress\")]},Rule {rMatcher = DetectChar '$', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"AfterFirstAddress\")]},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"AfterCommand\")]},Rule {rMatcher = DetectChar ':', rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"Label\")]},Rule {rMatcher = DetectChar '!', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"Command\")]},Rule {rMatcher = IncludeRules (\"sed\",\"Command\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"Error\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Command\",Context {cName = \"Command\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar 's', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"SCommand\")]},Rule {rMatcher = DetectChar 'y', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"YCommand\")]},Rule {rMatcher = AnyChar \"dpnDNPhHgGxFvz=\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"AfterCommand\")]},Rule {rMatcher = AnyChar \"aic\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"AICCommand\")]},Rule {rMatcher = AnyChar \"bTt\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"BTCommand\")]},Rule {rMatcher = AnyChar \"WwrR\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"WRCommand\")]},Rule {rMatcher = AnyChar \"lL\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"LCommand\")]},Rule {rMatcher = AnyChar \"qQ\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"QCommand\")]},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"BeginningOfLine\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"Error\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"Error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment\",Context {cName = \"Comment\", cSyntax = \"sed\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"BeginningOfLine\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Error\",Context {cName = \"Error\", cSyntax = \"sed\", cRules = [], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"BeginningOfLine\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FirstAddressRegex\",Context {cName = \"FirstAddressRegex\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\%1\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%1\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"AfterFirstAddress\")]},Rule {rMatcher = IncludeRules (\"sed\",\"Regex\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"Error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"LCommand\",Context {cName = \"LCommand\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"AfterCommand\")]},Rule {rMatcher = IncludeRules (\"sed\",\"AfterCommand\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"BeginningOfLine\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Label\",Context {cName = \"Label\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\w+\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"AfterCommand\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"Error\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"Error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"LiteralText\",Context {cName = \"LiteralText\", cSyntax = \"sed\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"LiteralText\")]},Rule {rMatcher = LineContinue, rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"LiteralText\")]},Rule {rMatcher = DetectChar '\\\\', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"Error\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"BeginningOfLine\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"QCommand\",Context {cName = \"QCommand\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"AfterCommand\")]},Rule {rMatcher = IncludeRules (\"sed\",\"AfterCommand\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"BeginningOfLine\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Regex\",Context {cName = \"Regex\", cSyntax = \"sed\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '(', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ')', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '+', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '?', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '|', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '{', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '}', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '[', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' ']', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '.', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '*', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '^', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '$', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' 'n', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' 't', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '0', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '1', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '2', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '3', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '4', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '5', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '6', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '7', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '8', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '9', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '*', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '.', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '^', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '$', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ']', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"Error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SCommand\",Context {cName = \"SCommand\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\S)\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"SRegex\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"Error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SFlags\",Context {cName = \"SFlags\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"gpeIiMm\", rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar 'w', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"WFlag\")]},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"sed\",\"AfterCommand\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"BeginningOfLine\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SRegex\",Context {cName = \"SRegex\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\%1\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(%1)\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"SReplacement\")]},Rule {rMatcher = IncludeRules (\"sed\",\"Regex\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"Error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"SReplacement\",Context {cName = \"SReplacement\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\%1\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%1\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"SFlags\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[0-9LlUuE\\\\\\\\&]\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '&', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"Error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"SecondAddress\",Context {cName = \"SecondAddress\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(/)\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"SecondAddressRegex\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\(\\\\S)\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"SecondAddressRegex\")]},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"AfterSecondAddress\")]},Rule {rMatcher = DetectChar '$', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"AfterSecondAddress\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"Error\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"Error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SecondAddressRegex\",Context {cName = \"SecondAddressRegex\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\%1\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%1\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"AfterSecondAddress\")]},Rule {rMatcher = IncludeRules (\"sed\",\"Regex\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"Error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"Step\",Context {cName = \"Step\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"Command\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"Error\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"Error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WFlag\",Context {cName = \"WFlag\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"SFlags\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"BeginningOfLine\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"WRCommand\",Context {cName = \"WRCommand\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\S+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"AfterCommand\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"Error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"YCommand\",Context {cName = \"YCommand\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\S)\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"YSourceList\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"Error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"YDestList\",Context {cName = \"YDestList\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\%1\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%1\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"AfterCommand\")]},Rule {rMatcher = Detect2Chars '\\\\' 'n', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"Error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"YSourceList\",Context {cName = \"YSourceList\", cSyntax = \"sed\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\%1\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(%1)\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"sed\",\"YDestList\")]},Rule {rMatcher = Detect2Chars '\\\\' 'n', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\\\\', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Push (\"sed\",\"Error\")], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True})], sAuthor = \"Bart Sas (bart.sas@gmail.com)\", sVersion = \"2\", sLicense = \"GPL\", sExtensions = [\"*.sed\"], sStartingContext = \"BeginningOfLine\"}"
diff --git a/src/Skylighting/Syntax/Sgml.hs b/src/Skylighting/Syntax/Sgml.hs
--- a/src/Skylighting/Syntax/Sgml.hs
+++ b/src/Skylighting/Syntax/Sgml.hs
@@ -2,228 +2,6 @@
 module Skylighting.Syntax.Sgml (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "SGML"
-  , sFilename = "sgml.xml"
-  , sShortname = "Sgml"
-  , sContexts =
-      fromList
-        [ ( "Attribute"
-          , Context
-              { cName = "Attribute"
-              , cSyntax = "SGML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*=\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*=\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "SGML" , "Value" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "SGML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "-->"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal Text"
-          , Context
-              { cName = "Normal Text"
-              , cSyntax = "SGML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "SGML" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\s*\\/?\\s*[a-zA-Z_:][a-zA-Z0-9._:-]*"
-                              , reCompiled =
-                                  Just (compileRegex True "<\\s*\\/?\\s*[a-zA-Z_:][a-zA-Z0-9._:-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "SGML" , "Attribute" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Value"
-          , Context
-              { cName = "Value"
-              , cSyntax = "SGML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , 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 ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "SGML" , "Value 2" ) ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Value 2"
-          , Context
-              { cName = "Value 2"
-              , cSyntax = "SGML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = ""
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.sgml" ]
-  , sStartingContext = "Normal Text"
-  }
+syntax = read $! "Syntax {sName = \"SGML\", sFilename = \"sgml.xml\", sShortname = \"Sgml\", sContexts = fromList [(\"Attribute\",Context {cName = \"Attribute\", cSyntax = \"SGML\", cRules = [Rule {rMatcher = Detect2Chars '/' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*=\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"SGML\",\"Value\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment\",Context {cName = \"Comment\", cSyntax = \"SGML\", cRules = [Rule {rMatcher = StringDetect \"-->\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal Text\",Context {cName = \"Normal Text\", cSyntax = \"SGML\", cRules = [Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"SGML\",\"Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\s*\\\\/?\\\\s*[a-zA-Z_:][a-zA-Z0-9._:-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"SGML\",\"Attribute\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Value\",Context {cName = \"Value\", cSyntax = \"SGML\", cRules = [Rule {rMatcher = Detect2Chars '/' '>', 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]},Rule {rMatcher = DetectChar '\"', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"SGML\",\"Value 2\")]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Value 2\",Context {cName = \"Value 2\", cSyntax = \"SGML\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.sgml\"], sStartingContext = \"Normal Text\"}"
diff --git a/src/Skylighting/Syntax/Sql.hs b/src/Skylighting/Syntax/Sql.hs
--- a/src/Skylighting/Syntax/Sql.hs
+++ b/src/Skylighting/Syntax/Sql.hs
@@ -2,1368 +2,6 @@
 module Skylighting.Syntax.Sql (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "SQL"
-  , sFilename = "sql.xml"
-  , sShortname = "Sql"
-  , sContexts =
-      fromList
-        [ ( "Multiline C-style comment"
-          , Context
-              { cName = "Multiline C-style comment"
-              , cSyntax = "SQL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "SQL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims = Data.Set.fromList "\t\n %&(),;?[\\]{}"
-                              }
-                            (makeWordSet
-                               False
-                               [ "ACCESS"
-                               , "ACCOUNT"
-                               , "ADD"
-                               , "ADMIN"
-                               , "ADMINISTER"
-                               , "ADVISE"
-                               , "AFTER"
-                               , "AGENT"
-                               , "ALL"
-                               , "ALL_ROWS"
-                               , "ALLOCATE"
-                               , "ALTER"
-                               , "ANALYZE"
-                               , "ANCILLARY"
-                               , "AND"
-                               , "ANY"
-                               , "ARCHIVE"
-                               , "ARCHIVELOG"
-                               , "AS"
-                               , "ASC"
-                               , "ASSERTION"
-                               , "ASSOCIATE"
-                               , "AT"
-                               , "ATTRIBUTE"
-                               , "ATTRIBUTES"
-                               , "AUDIT"
-                               , "AUTHENTICATED"
-                               , "AUTHID"
-                               , "AUTHORIZATION"
-                               , "AUTOALLOCATE"
-                               , "AUTOEXTEND"
-                               , "AUTOMATIC"
-                               , "BACKUP"
-                               , "BECOME"
-                               , "BEFORE"
-                               , "BEGIN"
-                               , "BEHALF"
-                               , "BETWEEN"
-                               , "BINDING"
-                               , "BITMAP"
-                               , "BLOCK"
-                               , "BLOCK_RANGE"
-                               , "BODY"
-                               , "BOTH"
-                               , "BOUND"
-                               , "BREAK"
-                               , "BROADCAST"
-                               , "BTITLE"
-                               , "BUFFER_POOL"
-                               , "BUILD"
-                               , "BULK"
-                               , "BY"
-                               , "CACHE"
-                               , "CACHE_INSTANCES"
-                               , "CALL"
-                               , "CANCEL"
-                               , "CASCADE"
-                               , "CASE"
-                               , "CATEGORY"
-                               , "CHAINED"
-                               , "CHANGE"
-                               , "CHECK"
-                               , "CHECKPOINT"
-                               , "CHILD"
-                               , "CHOOSE"
-                               , "CHUNK"
-                               , "CLASS"
-                               , "CLEAR"
-                               , "CLONE"
-                               , "CLOSE"
-                               , "CLOSE_CACHED_OPEN_CURSORS"
-                               , "CLUSTER"
-                               , "COALESCE"
-                               , "COLUMN"
-                               , "COLUMN_VALUE"
-                               , "COLUMNS"
-                               , "COMMENT"
-                               , "COMMIT"
-                               , "COMMITTED"
-                               , "COMPATIBILITY"
-                               , "COMPILE"
-                               , "COMPLETE"
-                               , "COMPOSITE_LIMIT"
-                               , "COMPRESS"
-                               , "COMPUTE"
-                               , "CONNECT"
-                               , "CONNECT_TIME"
-                               , "CONSIDER"
-                               , "CONSISTENT"
-                               , "CONSTANT"
-                               , "CONSTRAINT"
-                               , "CONSTRAINTS"
-                               , "CONTAINER"
-                               , "CONTENTS"
-                               , "CONTEXT"
-                               , "CONTINUE"
-                               , "CONTROLFILE"
-                               , "COPY"
-                               , "COST"
-                               , "CPU_PER_CALL"
-                               , "CPU_PER_SESSION"
-                               , "CREATE"
-                               , "CREATE_STORED_OUTLINES"
-                               , "CROSS"
-                               , "CUBE"
-                               , "CURRENT"
-                               , "CURSOR"
-                               , "CYCLE"
-                               , "DANGLING"
-                               , "DATA"
-                               , "DATABASE"
-                               , "DATAFILE"
-                               , "DATAFILES"
-                               , "DBA"
-                               , "DDL"
-                               , "DEALLOCATE"
-                               , "DEBUG"
-                               , "DECLARE"
-                               , "DEFAULT"
-                               , "DEFERRABLE"
-                               , "DEFERRED"
-                               , "DEFINER"
-                               , "DEGREE"
-                               , "DELETE"
-                               , "DEMAND"
-                               , "DESC"
-                               , "DETERMINES"
-                               , "DICTIONARY"
-                               , "DIMENSION"
-                               , "DIRECTORY"
-                               , "DISABLE"
-                               , "DISASSOCIATE"
-                               , "DISCONNECT"
-                               , "DISKGROUP"
-                               , "DISMOUNT"
-                               , "DISTINCT"
-                               , "DISTRIBUTED"
-                               , "DOMAIN"
-                               , "DROP"
-                               , "DYNAMIC"
-                               , "EACH"
-                               , "ELSE"
-                               , "ELSIF"
-                               , "EMPTY"
-                               , "ENABLE"
-                               , "END"
-                               , "ENFORCE"
-                               , "ENTRY"
-                               , "ESCAPE"
-                               , "ESTIMATE"
-                               , "EVENTS"
-                               , "EXCEPT"
-                               , "EXCEPTION"
-                               , "EXCEPTIONS"
-                               , "EXCHANGE"
-                               , "EXCLUDING"
-                               , "EXCLUSIVE"
-                               , "EXEC"
-                               , "EXECUTE"
-                               , "EXISTS"
-                               , "EXPIRE"
-                               , "EXPLAIN"
-                               , "EXPLOSION"
-                               , "EXTENDS"
-                               , "EXTENT"
-                               , "EXTENTS"
-                               , "EXTERNALLY"
-                               , "FAILED_LOGIN_ATTEMPTS"
-                               , "FALSE"
-                               , "FAST"
-                               , "FILE"
-                               , "FILTER"
-                               , "FIRST_ROWS"
-                               , "FLAGGER"
-                               , "FLASHBACK"
-                               , "FLUSH"
-                               , "FOLLOWING"
-                               , "FOR"
-                               , "FORCE"
-                               , "FOREIGN"
-                               , "FREELIST"
-                               , "FREELISTS"
-                               , "FRESH"
-                               , "FROM"
-                               , "FULL"
-                               , "FUNCTION"
-                               , "FUNCTIONS"
-                               , "GENERATED"
-                               , "GLOBAL"
-                               , "GLOBAL_NAME"
-                               , "GLOBALLY"
-                               , "GRANT"
-                               , "GROUP"
-                               , "GROUPS"
-                               , "HASH"
-                               , "HASHKEYS"
-                               , "HAVING"
-                               , "HEADER"
-                               , "HEAP"
-                               , "HIERARCHY"
-                               , "HOUR"
-                               , "ID"
-                               , "IDENTIFIED"
-                               , "IDENTIFIER"
-                               , "IDGENERATORS"
-                               , "IDLE_TIME"
-                               , "IF"
-                               , "IMMEDIATE"
-                               , "IN"
-                               , "INCLUDING"
-                               , "INCREMENT"
-                               , "INCREMENTAL"
-                               , "INDEX"
-                               , "INDEXED"
-                               , "INDEXES"
-                               , "INDEXTYPE"
-                               , "INDEXTYPES"
-                               , "INDICATOR"
-                               , "INITIAL"
-                               , "INITIALIZED"
-                               , "INITIALLY"
-                               , "INITRANS"
-                               , "INNER"
-                               , "INSERT"
-                               , "INSTANCE"
-                               , "INSTANCES"
-                               , "INSTEAD"
-                               , "INTERMEDIATE"
-                               , "INTERSECT"
-                               , "INTO"
-                               , "INVALIDATE"
-                               , "IS"
-                               , "ISOLATION"
-                               , "ISOLATION_LEVEL"
-                               , "JAVA"
-                               , "JOIN"
-                               , "KEEP"
-                               , "KEY"
-                               , "KILL"
-                               , "LABEL"
-                               , "LAYER"
-                               , "LEADING"
-                               , "LEFT"
-                               , "LESS"
-                               , "LEVEL"
-                               , "LIBRARY"
-                               , "LIKE"
-                               , "LIMIT"
-                               , "LINK"
-                               , "LIST"
-                               , "LOCAL"
-                               , "LOCATOR"
-                               , "LOCK"
-                               , "LOCKED"
-                               , "LOGFILE"
-                               , "LOGGING"
-                               , "LOGICAL_READS_PER_CALL"
-                               , "LOGICAL_READS_PER_SESSION"
-                               , "LOGOFF"
-                               , "LOGON"
-                               , "LOOP"
-                               , "MANAGE"
-                               , "MANAGED"
-                               , "MANAGEMENT"
-                               , "MASTER"
-                               , "MATERIALIZED"
-                               , "MAXARCHLOGS"
-                               , "MAXDATAFILES"
-                               , "MAXEXTENTS"
-                               , "MAXINSTANCES"
-                               , "MAXLOGFILES"
-                               , "MAXLOGHISTORY"
-                               , "MAXLOGMEMBERS"
-                               , "MAXSIZE"
-                               , "MAXTRANS"
-                               , "MAXVALUE"
-                               , "MEMBER"
-                               , "MERGE"
-                               , "METHOD"
-                               , "MINEXTENTS"
-                               , "MINIMIZE"
-                               , "MINIMUM"
-                               , "MINUS"
-                               , "MINUTE"
-                               , "MINVALUE"
-                               , "MODE"
-                               , "MODIFY"
-                               , "MONITORING"
-                               , "MOUNT"
-                               , "MOVE"
-                               , "MOVEMENT"
-                               , "MTS_DISPATCHERS"
-                               , "MULTISET"
-                               , "NAMED"
-                               , "NATURAL"
-                               , "NEEDED"
-                               , "NESTED"
-                               , "NESTED_TABLE_ID"
-                               , "NETWORK"
-                               , "NEVER"
-                               , "NEW"
-                               , "NEXT"
-                               , "NLS_CALENDAR"
-                               , "NLS_CHARACTERSET"
-                               , "NLS_COMP"
-                               , "NLS_CURRENCY"
-                               , "NLS_DATE_FORMAT"
-                               , "NLS_DATE_LANGUAGE"
-                               , "NLS_ISO_CURRENCY"
-                               , "NLS_LANG"
-                               , "NLS_LANGUAGE"
-                               , "NLS_NUMERIC_CHARACTERS"
-                               , "NLS_SORT"
-                               , "NLS_SPECIAL_CHARS"
-                               , "NLS_TERRITORY"
-                               , "NO"
-                               , "NOARCHIVELOG"
-                               , "NOAUDIT"
-                               , "NOCACHE"
-                               , "NOCOMPRESS"
-                               , "NOCYCLE"
-                               , "NOFORCE"
-                               , "NOLOGGING"
-                               , "NOMAXVALUE"
-                               , "NOMINIMIZE"
-                               , "NOMINVALUE"
-                               , "NOMONITORING"
-                               , "NONE"
-                               , "NOORDER"
-                               , "NOOVERRIDE"
-                               , "NOPARALLEL"
-                               , "NORELY"
-                               , "NORESETLOGS"
-                               , "NOREVERSE"
-                               , "NORMAL"
-                               , "NOSEGMENT"
-                               , "NOSORT"
-                               , "NOT"
-                               , "NOTHING"
-                               , "NOVALIDATE"
-                               , "NOWAIT"
-                               , "NULL"
-                               , "NULLS"
-                               , "OBJNO"
-                               , "OBJNO_REUSE"
-                               , "OF"
-                               , "OFF"
-                               , "OFFLINE"
-                               , "OID"
-                               , "OIDINDEX"
-                               , "OLD"
-                               , "ON"
-                               , "ONLINE"
-                               , "ONLY"
-                               , "OPCODE"
-                               , "OPEN"
-                               , "OPERATOR"
-                               , "OPTIMAL"
-                               , "OPTIMIZER_GOAL"
-                               , "OPTION"
-                               , "OR"
-                               , "ORDER"
-                               , "ORGANIZATION"
-                               , "OUT"
-                               , "OUTER"
-                               , "OUTLINE"
-                               , "OVER"
-                               , "OVERFLOW"
-                               , "OVERLAPS"
-                               , "OWN"
-                               , "PACKAGE"
-                               , "PACKAGES"
-                               , "PARALLEL"
-                               , "PARAMETERS"
-                               , "PARENT"
-                               , "PARTITION"
-                               , "PARTITION_HASH"
-                               , "PARTITION_RANGE"
-                               , "PARTITIONS"
-                               , "PASSWORD"
-                               , "PASSWORD_GRACE_TIME"
-                               , "PASSWORD_LIFE_TIME"
-                               , "PASSWORD_LOCK_TIME"
-                               , "PASSWORD_REUSE_MAX"
-                               , "PASSWORD_REUSE_TIME"
-                               , "PASSWORD_VERIFY_FUNCTION"
-                               , "PCTFREE"
-                               , "PCTINCREASE"
-                               , "PCTTHRESHOLD"
-                               , "PCTUSED"
-                               , "PCTVERSION"
-                               , "PERCENT"
-                               , "PERMANENT"
-                               , "PLAN"
-                               , "PLSQL_DEBUG"
-                               , "POST_TRANSACTION"
-                               , "PREBUILT"
-                               , "PRECEDING"
-                               , "PREPARE"
-                               , "PRESENT"
-                               , "PRESERVE"
-                               , "PREVIOUS"
-                               , "PRIMARY"
-                               , "PRIOR"
-                               , "PRIVATE"
-                               , "PRIVATE_SGA"
-                               , "PRIVILEGE"
-                               , "PRIVILEGES"
-                               , "PROCEDURE"
-                               , "PROFILE"
-                               , "PUBLIC"
-                               , "PURGE"
-                               , "QUERY"
-                               , "QUEUE"
-                               , "QUOTA"
-                               , "RANDOM"
-                               , "RANGE"
-                               , "RBA"
-                               , "READ"
-                               , "READS"
-                               , "REBUILD"
-                               , "RECORDS_PER_BLOCK"
-                               , "RECOVER"
-                               , "RECOVERABLE"
-                               , "RECOVERY"
-                               , "RECYCLE"
-                               , "REDUCED"
-                               , "REFERENCES"
-                               , "REFERENCING"
-                               , "REFRESH"
-                               , "RELY"
-                               , "RENAME"
-                               , "REPLACE"
-                               , "RESET"
-                               , "RESETLOGS"
-                               , "RESIZE"
-                               , "RESOLVE"
-                               , "RESOLVER"
-                               , "RESOURCE"
-                               , "RESTRICT"
-                               , "RESTRICTED"
-                               , "RESUME"
-                               , "RETURN"
-                               , "RETURNING"
-                               , "REUSE"
-                               , "REVERSE"
-                               , "REVOKE"
-                               , "REWRITE"
-                               , "RIGHT"
-                               , "ROLE"
-                               , "ROLES"
-                               , "ROLLBACK"
-                               , "ROLLUP"
-                               , "ROW"
-                               , "ROWNUM"
-                               , "ROWS"
-                               , "RULE"
-                               , "SAMPLE"
-                               , "SAVEPOINT"
-                               , "SCAN"
-                               , "SCAN_INSTANCES"
-                               , "SCHEMA"
-                               , "SCN"
-                               , "SCOPE"
-                               , "SD_ALL"
-                               , "SD_INHIBIT"
-                               , "SD_SHOW"
-                               , "SEG_BLOCK"
-                               , "SEG_FILE"
-                               , "SEGMENT"
-                               , "SELECT"
-                               , "SELECTIVITY"
-                               , "SEQUENCE"
-                               , "SERIALIZABLE"
-                               , "SERVERERROR"
-                               , "SESSION"
-                               , "SESSION_CACHED_CURSORS"
-                               , "SESSIONS_PER_USER"
-                               , "SET"
-                               , "SHARE"
-                               , "SHARED"
-                               , "SHARED_POOL"
-                               , "SHRINK"
-                               , "SHUTDOWN"
-                               , "SINGLETASK"
-                               , "SIZE"
-                               , "SKIP"
-                               , "SKIP_UNUSABLE_INDEXES"
-                               , "SNAPSHOT"
-                               , "SOME"
-                               , "SORT"
-                               , "SOURCE"
-                               , "SPECIFICATION"
-                               , "SPLIT"
-                               , "SQL_TRACE"
-                               , "STANDBY"
-                               , "START"
-                               , "STARTUP"
-                               , "STATEMENT_ID"
-                               , "STATIC"
-                               , "STATISTICS"
-                               , "STOP"
-                               , "STORAGE"
-                               , "STORE"
-                               , "STRUCTURE"
-                               , "SUBMULTISET"
-                               , "SUBPARTITION"
-                               , "SUBPARTITIONS"
-                               , "SUCCESSFUL"
-                               , "SUMMARY"
-                               , "SUPPLEMENTAL"
-                               , "SUSPEND"
-                               , "SWITCH"
-                               , "SYNONYM"
-                               , "SYS_OP_BITVEC"
-                               , "SYS_OP_ENFORCE_NOT_NULL$"
-                               , "SYS_OP_NOEXPAND"
-                               , "SYS_OP_NTCIMG$"
-                               , "SYSDBA"
-                               , "SYSOPER"
-                               , "SYSTEM"
-                               , "TABLE"
-                               , "TABLES"
-                               , "TABLESPACE"
-                               , "TABLESPACE_NO"
-                               , "TABNO"
-                               , "TEMPFILE"
-                               , "TEMPORARY"
-                               , "THAN"
-                               , "THE"
-                               , "THEN"
-                               , "THREAD"
-                               , "THROUGH"
-                               , "TIME_ZONE"
-                               , "TIMEOUT"
-                               , "TIMEZONE_HOUR"
-                               , "TIMEZONE_MINUTE"
-                               , "TO"
-                               , "TOPLEVEL"
-                               , "TRACE"
-                               , "TRACING"
-                               , "TRAILING"
-                               , "TRANSACTION"
-                               , "TRANSITIONAL"
-                               , "TRIGGER"
-                               , "TRIGGERS"
-                               , "TRUE"
-                               , "TRUNCATE"
-                               , "TYPE"
-                               , "TYPES"
-                               , "UNARCHIVED"
-                               , "UNBOUND"
-                               , "UNBOUNDED"
-                               , "UNDO"
-                               , "UNIFORM"
-                               , "UNION"
-                               , "UNIQUE"
-                               , "UNLIMITED"
-                               , "UNLOCK"
-                               , "UNRECOVERABLE"
-                               , "UNTIL"
-                               , "UNUSABLE"
-                               , "UNUSED"
-                               , "UPD_INDEXES"
-                               , "UPDATABLE"
-                               , "UPDATE"
-                               , "UPPPER"
-                               , "USAGE"
-                               , "USE"
-                               , "USE_STORED_OUTLINES"
-                               , "USER_DEFINED"
-                               , "USING"
-                               , "VALIDATE"
-                               , "VALIDATION"
-                               , "VALUES"
-                               , "VIEW"
-                               , "WHEN"
-                               , "WHENEVER"
-                               , "WHERE"
-                               , "WHILE"
-                               , "WITH"
-                               , "WITHOUT"
-                               , "WORK"
-                               , "WRITE"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims = Data.Set.fromList "\t\n %&(),;?[\\]{}"
-                              }
-                            (makeWordSet
-                               False
-                               [ "!="
-                               , "*"
-                               , "**"
-                               , "+"
-                               , "-"
-                               , ".."
-                               , "/"
-                               , ":="
-                               , "<"
-                               , "<="
-                               , "<>"
-                               , "="
-                               , "=>"
-                               , ">"
-                               , ">="
-                               , "^="
-                               , "||"
-                               , "~="
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims = Data.Set.fromList "\t\n %&(),;?[\\]{}"
-                              }
-                            (makeWordSet
-                               False
-                               [ "ABS"
-                               , "ACOS"
-                               , "ADD_MONTHS"
-                               , "ASCII"
-                               , "ASCIISTR"
-                               , "ASIN"
-                               , "ATAN"
-                               , "ATAN2"
-                               , "AVG"
-                               , "BFILENAME"
-                               , "BIN_TO_NUM"
-                               , "BITAND"
-                               , "CARDINALITY"
-                               , "CAST"
-                               , "CEIL"
-                               , "CHARTOROWID"
-                               , "CHR"
-                               , "COALESCE"
-                               , "COLLECT"
-                               , "COMPOSE"
-                               , "CONCAT"
-                               , "CONVERT"
-                               , "CORR"
-                               , "CORR_K"
-                               , "CORR_S"
-                               , "COS"
-                               , "COSH"
-                               , "COUNT"
-                               , "COVAR_POP"
-                               , "COVAR_SAMP"
-                               , "CUME_DIST"
-                               , "CURRENT_DATE"
-                               , "CURRENT_TIMESTAMP"
-                               , "CV"
-                               , "DBTIMEZONE"
-                               , "DECODE"
-                               , "DECOMPOSE"
-                               , "DENSE_RANK"
-                               , "DEPTH"
-                               , "DEREF"
-                               , "DUMP"
-                               , "EMPTY_BLOB"
-                               , "EMPTY_CLOB"
-                               , "EXISTSNODE"
-                               , "EXP"
-                               , "EXTRACT"
-                               , "EXTRACTVALUE"
-                               , "FIRST"
-                               , "FIRST_VALUE"
-                               , "FLOOR"
-                               , "FROM_TZ"
-                               , "GREATEST"
-                               , "GROUP_ID"
-                               , "GROUPING"
-                               , "GROUPING_ID"
-                               , "HEXTORAW"
-                               , "INITCAP"
-                               , "INSTR"
-                               , "INSTRB"
-                               , "LAG"
-                               , "LAST"
-                               , "LAST_DAY"
-                               , "LAST_VALUE"
-                               , "LEAD"
-                               , "LEAST"
-                               , "LENGTH"
-                               , "LENGTHB"
-                               , "LN"
-                               , "LNNVL"
-                               , "LOCALTIMESTAMP"
-                               , "LOG"
-                               , "LOWER"
-                               , "LPAD"
-                               , "LTRIM"
-                               , "MAKE_REF"
-                               , "MAX"
-                               , "MEDIAN"
-                               , "MIN"
-                               , "MOD"
-                               , "MONTHS_BETWEEN"
-                               , "NANVL"
-                               , "NCHR"
-                               , "NEW_TIME"
-                               , "NEXT_DAY"
-                               , "NLS_CHARSET_DECL_LEN"
-                               , "NLS_CHARSET_ID"
-                               , "NLS_CHARSET_NAME"
-                               , "NLS_INITCAP"
-                               , "NLS_LOWER"
-                               , "NLS_UPPER"
-                               , "NLSSORT"
-                               , "NTILE"
-                               , "NULLIF"
-                               , "NUMTODSINTERVAL"
-                               , "NUMTOYMINTERVAL"
-                               , "NVL"
-                               , "NVL2"
-                               , "ORA_HASH"
-                               , "ORA_ROWSCN"
-                               , "PERCENT_RANK"
-                               , "PERCENTILE_CONT"
-                               , "PERCENTILE_DISC"
-                               , "POWER"
-                               , "POWERMULTISET"
-                               , "POWERMULTISET_BY_CARDINALITY"
-                               , "PRESENTNNV"
-                               , "PRESENTV"
-                               , "RANK"
-                               , "RATIO_TO_REPORT"
-                               , "RAWTOHEX"
-                               , "RAWTONHEX"
-                               , "REF"
-                               , "REFTOHEX"
-                               , "REGEXP_INSTR"
-                               , "REGEXP_LIKE"
-                               , "REGEXP_REPLACE"
-                               , "REGEXP_SUBSTR"
-                               , "REGR_AVGX"
-                               , "REGR_AVGY"
-                               , "REGR_COUNT"
-                               , "REGR_INTERCEPT"
-                               , "REGR_R2"
-                               , "REGR_SLOPE"
-                               , "REGR_SXX"
-                               , "REGR_SXY"
-                               , "REGR_SYY"
-                               , "REMAINDER"
-                               , "ROUND"
-                               , "ROW_NUMBER"
-                               , "ROWIDTOCHAR"
-                               , "ROWIDTONCHAR"
-                               , "RPAD"
-                               , "RTRIM"
-                               , "SCN_TO_TIMESTAMP"
-                               , "SESSIONTIMEZONE"
-                               , "SIGN"
-                               , "SIN"
-                               , "SINH"
-                               , "SOUNDEX"
-                               , "SQRT"
-                               , "STATS_BINOMIAL_TEST"
-                               , "STATS_CROSSTAB"
-                               , "STATS_F_TEST"
-                               , "STATS_KS_TEST"
-                               , "STATS_MODE"
-                               , "STATS_MW_TEST"
-                               , "STATS_ONE_WAY_ANOVA"
-                               , "STATS_T_TEST_INDEP"
-                               , "STATS_T_TEST_INDEPU"
-                               , "STATS_T_TEST_ONE"
-                               , "STATS_T_TEST_PAIRED"
-                               , "STATS_WSR_TEST"
-                               , "STDDEV"
-                               , "STDDEV_POP"
-                               , "STDDEV_SAMP"
-                               , "SUBSTR"
-                               , "SUBSTRB"
-                               , "SUM"
-                               , "SYS_CONNECT_BY_PATH"
-                               , "SYS_CONTEXT"
-                               , "SYS_DBURIGEN"
-                               , "SYS_EXTRACT_UTC"
-                               , "SYS_GUID"
-                               , "SYS_TYPEID"
-                               , "SYS_XMLAGG"
-                               , "SYS_XMLGEN"
-                               , "SYSDATE"
-                               , "SYSTIMESTAMP"
-                               , "TAN"
-                               , "TANH"
-                               , "TIMESTAMP_TO_SCN"
-                               , "TO_BINARY_DOUBLE"
-                               , "TO_BINARY_FLOAT"
-                               , "TO_CHAR"
-                               , "TO_CLOB"
-                               , "TO_DATE"
-                               , "TO_DSINTERVAL"
-                               , "TO_LOB"
-                               , "TO_MULTI_BYTE"
-                               , "TO_NCHAR"
-                               , "TO_NCLOB"
-                               , "TO_NUMBER"
-                               , "TO_SINGLE_BYTE"
-                               , "TO_TIMESTAMP"
-                               , "TO_TIMESTAMP_TZ"
-                               , "TO_YMINTERVAL"
-                               , "TRANSLATE"
-                               , "TREAT"
-                               , "TRIM"
-                               , "TRUNC"
-                               , "TZ_OFFSET"
-                               , "UID"
-                               , "UNISTR"
-                               , "UPDATEXML"
-                               , "UPPER"
-                               , "USER"
-                               , "USERENV"
-                               , "VALUE"
-                               , "VAR_POP"
-                               , "VAR_SAMP"
-                               , "VARIANCE"
-                               , "VSIZE"
-                               , "WIDTH_BUCKET"
-                               , "XMLAGG"
-                               , "XMLCOLATTVAL"
-                               , "XMLCONCAT"
-                               , "XMLELEMENT"
-                               , "XMLFOREST"
-                               , "XMLSEQUENCE"
-                               , "XMLTRANSFORM"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims = Data.Set.fromList "\t\n %&(),;?[\\]{}"
-                              }
-                            (makeWordSet
-                               False
-                               [ "ANYDATA"
-                               , "ANYDATASET"
-                               , "ANYTYPE"
-                               , "ARRAY"
-                               , "BFILE"
-                               , "BINARY_DOUBLE"
-                               , "BINARY_FLOAT"
-                               , "BINARY_INTEGER"
-                               , "BLOB"
-                               , "BOOLEAN"
-                               , "CFILE"
-                               , "CHAR"
-                               , "CHARACTER"
-                               , "CLOB"
-                               , "DATE"
-                               , "DAY"
-                               , "DBURITYPE"
-                               , "DEC"
-                               , "DECIMAL"
-                               , "DOUBLE"
-                               , "FLOAT"
-                               , "FLOB"
-                               , "HTTPURITYPE"
-                               , "INT"
-                               , "INTEGER"
-                               , "INTERVAL"
-                               , "LOB"
-                               , "LONG"
-                               , "MLSLABEL"
-                               , "MONTH"
-                               , "NATIONAL"
-                               , "NCHAR"
-                               , "NCLOB"
-                               , "NUMBER"
-                               , "NUMERIC"
-                               , "NVARCHAR"
-                               , "OBJECT"
-                               , "PLS_INTEGER"
-                               , "PRECISION"
-                               , "RAW"
-                               , "REAL"
-                               , "RECORD"
-                               , "ROWID"
-                               , "SECOND"
-                               , "SINGLE"
-                               , "SMALLINT"
-                               , "TIME"
-                               , "TIMESTAMP"
-                               , "URIFACTORYTYPE"
-                               , "URITYPE"
-                               , "UROWID"
-                               , "VARCHAR"
-                               , "VARCHAR2"
-                               , "VARRAY"
-                               , "VARYING"
-                               , "XMLTYPE"
-                               , "YEAR"
-                               , "ZONE"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "%(?:bulk_(?:exceptions|rowcount)|found|isopen|notfound|rowcount|rowtype|type)\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "%(?:bulk_(?:exceptions|rowcount)|found|isopen|notfound|rowcount|rowtype|type)\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "SQL" , "String literal" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '-' '-'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "SQL" , "Singleline PL/SQL-style comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "SQL" , "Multiline C-style comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "rem\\b"
-                              , reCompiled = Just (compileRegex False "rem\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "SQL" , "SQL*Plus remark directive" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "SQL" , "User-defined identifier" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(:|&&?)\\w+"
-                              , reCompiled = Just (compileRegex False "(:|&&?)\\w+")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "/$"
-                              , reCompiled = Just (compileRegex False "/$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@@?[^@ \\t\\r\\n]"
-                              , reCompiled = Just (compileRegex False "@@?[^@ \\t\\r\\n]")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch =
-                          [ Push ( "SQL" , "SQL*Plus directive to include file" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SQL*Plus directive to include file"
-          , Context
-              { cName = "SQL*Plus directive to include file"
-              , cSyntax = "SQL"
-              , cRules = []
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SQL*Plus remark directive"
-          , Context
-              { cName = "SQL*Plus remark directive"
-              , cSyntax = "SQL"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Singleline PL/SQL-style comment"
-          , Context
-              { cName = "Singleline PL/SQL-style comment"
-              , cSyntax = "SQL"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String literal"
-          , Context
-              { cName = "String literal"
-              , cSyntax = "SQL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "&&?\\w+"
-                              , reCompiled = Just (compileRegex False "&&?\\w+")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\'' '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "User-defined identifier"
-          , Context
-              { cName = "User-defined identifier"
-              , cSyntax = "SQL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Yury Lebedev (yurylebedev@mail.ru)"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.sql" , "*.SQL" , "*.ddl" , "*.DDL" ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"SQL\", sFilename = \"sql.xml\", sShortname = \"Sql\", sContexts = fromList [(\"Multiline C-style comment\",Context {cName = \"Multiline C-style comment\", cSyntax = \"SQL\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"SQL\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n %&(),;?[\\\\]{}\"}) (CaseInsensitiveWords (fromList [\"ACCESS\",\"ACCOUNT\",\"ADD\",\"ADMIN\",\"ADMINISTER\",\"ADVISE\",\"AFTER\",\"AGENT\",\"ALL\",\"ALL_ROWS\",\"ALLOCATE\",\"ALTER\",\"ANALYZE\",\"ANCILLARY\",\"AND\",\"ANY\",\"ARCHIVE\",\"ARCHIVELOG\",\"AS\",\"ASC\",\"ASSERTION\",\"ASSOCIATE\",\"AT\",\"ATTRIBUTE\",\"ATTRIBUTES\",\"AUDIT\",\"AUTHENTICATED\",\"AUTHID\",\"AUTHORIZATION\",\"AUTOALLOCATE\",\"AUTOEXTEND\",\"AUTOMATIC\",\"BACKUP\",\"BECOME\",\"BEFORE\",\"BEGIN\",\"BEHALF\",\"BETWEEN\",\"BINDING\",\"BITMAP\",\"BLOCK\",\"BLOCK_RANGE\",\"BODY\",\"BOTH\",\"BOUND\",\"BREAK\",\"BROADCAST\",\"BTITLE\",\"BUFFER_POOL\",\"BUILD\",\"BULK\",\"BY\",\"CACHE\",\"CACHE_INSTANCES\",\"CALL\",\"CANCEL\",\"CASCADE\",\"CASE\",\"CATEGORY\",\"CHAINED\",\"CHANGE\",\"CHECK\",\"CHECKPOINT\",\"CHILD\",\"CHOOSE\",\"CHUNK\",\"CLASS\",\"CLEAR\",\"CLONE\",\"CLOSE\",\"CLOSE_CACHED_OPEN_CURSORS\",\"CLUSTER\",\"COALESCE\",\"COLUMN\",\"COLUMN_VALUE\",\"COLUMNS\",\"COMMENT\",\"COMMIT\",\"COMMITTED\",\"COMPATIBILITY\",\"COMPILE\",\"COMPLETE\",\"COMPOSITE_LIMIT\",\"COMPRESS\",\"COMPUTE\",\"CONNECT\",\"CONNECT_TIME\",\"CONSIDER\",\"CONSISTENT\",\"CONSTANT\",\"CONSTRAINT\",\"CONSTRAINTS\",\"CONTAINER\",\"CONTENTS\",\"CONTEXT\",\"CONTINUE\",\"CONTROLFILE\",\"COPY\",\"COST\",\"CPU_PER_CALL\",\"CPU_PER_SESSION\",\"CREATE\",\"CREATE_STORED_OUTLINES\",\"CROSS\",\"CUBE\",\"CURRENT\",\"CURSOR\",\"CYCLE\",\"DANGLING\",\"DATA\",\"DATABASE\",\"DATAFILE\",\"DATAFILES\",\"DBA\",\"DDL\",\"DEALLOCATE\",\"DEBUG\",\"DECLARE\",\"DEFAULT\",\"DEFERRABLE\",\"DEFERRED\",\"DEFINER\",\"DEGREE\",\"DELETE\",\"DEMAND\",\"DESC\",\"DETERMINES\",\"DICTIONARY\",\"DIMENSION\",\"DIRECTORY\",\"DISABLE\",\"DISASSOCIATE\",\"DISCONNECT\",\"DISKGROUP\",\"DISMOUNT\",\"DISTINCT\",\"DISTRIBUTED\",\"DOMAIN\",\"DROP\",\"DYNAMIC\",\"EACH\",\"ELSE\",\"ELSIF\",\"EMPTY\",\"ENABLE\",\"END\",\"ENFORCE\",\"ENTRY\",\"ESCAPE\",\"ESTIMATE\",\"EVENTS\",\"EXCEPT\",\"EXCEPTION\",\"EXCEPTIONS\",\"EXCHANGE\",\"EXCLUDING\",\"EXCLUSIVE\",\"EXEC\",\"EXECUTE\",\"EXISTS\",\"EXPIRE\",\"EXPLAIN\",\"EXPLOSION\",\"EXTENDS\",\"EXTENT\",\"EXTENTS\",\"EXTERNALLY\",\"FAILED_LOGIN_ATTEMPTS\",\"FALSE\",\"FAST\",\"FILE\",\"FILTER\",\"FIRST_ROWS\",\"FLAGGER\",\"FLASHBACK\",\"FLUSH\",\"FOLLOWING\",\"FOR\",\"FORCE\",\"FOREIGN\",\"FREELIST\",\"FREELISTS\",\"FRESH\",\"FROM\",\"FULL\",\"FUNCTION\",\"FUNCTIONS\",\"GENERATED\",\"GLOBAL\",\"GLOBAL_NAME\",\"GLOBALLY\",\"GRANT\",\"GROUP\",\"GROUPS\",\"HASH\",\"HASHKEYS\",\"HAVING\",\"HEADER\",\"HEAP\",\"HIERARCHY\",\"HOUR\",\"ID\",\"IDENTIFIED\",\"IDENTIFIER\",\"IDGENERATORS\",\"IDLE_TIME\",\"IF\",\"IMMEDIATE\",\"IN\",\"INCLUDING\",\"INCREMENT\",\"INCREMENTAL\",\"INDEX\",\"INDEXED\",\"INDEXES\",\"INDEXTYPE\",\"INDEXTYPES\",\"INDICATOR\",\"INITIAL\",\"INITIALIZED\",\"INITIALLY\",\"INITRANS\",\"INNER\",\"INSERT\",\"INSTANCE\",\"INSTANCES\",\"INSTEAD\",\"INTERMEDIATE\",\"INTERSECT\",\"INTO\",\"INVALIDATE\",\"IS\",\"ISOLATION\",\"ISOLATION_LEVEL\",\"JAVA\",\"JOIN\",\"KEEP\",\"KEY\",\"KILL\",\"LABEL\",\"LAYER\",\"LEADING\",\"LEFT\",\"LESS\",\"LEVEL\",\"LIBRARY\",\"LIKE\",\"LIMIT\",\"LINK\",\"LIST\",\"LOCAL\",\"LOCATOR\",\"LOCK\",\"LOCKED\",\"LOGFILE\",\"LOGGING\",\"LOGICAL_READS_PER_CALL\",\"LOGICAL_READS_PER_SESSION\",\"LOGOFF\",\"LOGON\",\"LOOP\",\"MANAGE\",\"MANAGED\",\"MANAGEMENT\",\"MASTER\",\"MATERIALIZED\",\"MAXARCHLOGS\",\"MAXDATAFILES\",\"MAXEXTENTS\",\"MAXINSTANCES\",\"MAXLOGFILES\",\"MAXLOGHISTORY\",\"MAXLOGMEMBERS\",\"MAXSIZE\",\"MAXTRANS\",\"MAXVALUE\",\"MEMBER\",\"MERGE\",\"METHOD\",\"MINEXTENTS\",\"MINIMIZE\",\"MINIMUM\",\"MINUS\",\"MINUTE\",\"MINVALUE\",\"MODE\",\"MODIFY\",\"MONITORING\",\"MOUNT\",\"MOVE\",\"MOVEMENT\",\"MTS_DISPATCHERS\",\"MULTISET\",\"NAMED\",\"NATURAL\",\"NEEDED\",\"NESTED\",\"NESTED_TABLE_ID\",\"NETWORK\",\"NEVER\",\"NEW\",\"NEXT\",\"NLS_CALENDAR\",\"NLS_CHARACTERSET\",\"NLS_COMP\",\"NLS_CURRENCY\",\"NLS_DATE_FORMAT\",\"NLS_DATE_LANGUAGE\",\"NLS_ISO_CURRENCY\",\"NLS_LANG\",\"NLS_LANGUAGE\",\"NLS_NUMERIC_CHARACTERS\",\"NLS_SORT\",\"NLS_SPECIAL_CHARS\",\"NLS_TERRITORY\",\"NO\",\"NOARCHIVELOG\",\"NOAUDIT\",\"NOCACHE\",\"NOCOMPRESS\",\"NOCYCLE\",\"NOFORCE\",\"NOLOGGING\",\"NOMAXVALUE\",\"NOMINIMIZE\",\"NOMINVALUE\",\"NOMONITORING\",\"NONE\",\"NOORDER\",\"NOOVERRIDE\",\"NOPARALLEL\",\"NORELY\",\"NORESETLOGS\",\"NOREVERSE\",\"NORMAL\",\"NOSEGMENT\",\"NOSORT\",\"NOT\",\"NOTHING\",\"NOVALIDATE\",\"NOWAIT\",\"NULL\",\"NULLS\",\"OBJNO\",\"OBJNO_REUSE\",\"OF\",\"OFF\",\"OFFLINE\",\"OID\",\"OIDINDEX\",\"OLD\",\"ON\",\"ONLINE\",\"ONLY\",\"OPCODE\",\"OPEN\",\"OPERATOR\",\"OPTIMAL\",\"OPTIMIZER_GOAL\",\"OPTION\",\"OR\",\"ORDER\",\"ORGANIZATION\",\"OUT\",\"OUTER\",\"OUTLINE\",\"OVER\",\"OVERFLOW\",\"OVERLAPS\",\"OWN\",\"PACKAGE\",\"PACKAGES\",\"PARALLEL\",\"PARAMETERS\",\"PARENT\",\"PARTITION\",\"PARTITION_HASH\",\"PARTITION_RANGE\",\"PARTITIONS\",\"PASSWORD\",\"PASSWORD_GRACE_TIME\",\"PASSWORD_LIFE_TIME\",\"PASSWORD_LOCK_TIME\",\"PASSWORD_REUSE_MAX\",\"PASSWORD_REUSE_TIME\",\"PASSWORD_VERIFY_FUNCTION\",\"PCTFREE\",\"PCTINCREASE\",\"PCTTHRESHOLD\",\"PCTUSED\",\"PCTVERSION\",\"PERCENT\",\"PERMANENT\",\"PLAN\",\"PLSQL_DEBUG\",\"POST_TRANSACTION\",\"PREBUILT\",\"PRECEDING\",\"PREPARE\",\"PRESENT\",\"PRESERVE\",\"PREVIOUS\",\"PRIMARY\",\"PRIOR\",\"PRIVATE\",\"PRIVATE_SGA\",\"PRIVILEGE\",\"PRIVILEGES\",\"PROCEDURE\",\"PROFILE\",\"PUBLIC\",\"PURGE\",\"QUERY\",\"QUEUE\",\"QUOTA\",\"RANDOM\",\"RANGE\",\"RBA\",\"READ\",\"READS\",\"REBUILD\",\"RECORDS_PER_BLOCK\",\"RECOVER\",\"RECOVERABLE\",\"RECOVERY\",\"RECYCLE\",\"REDUCED\",\"REFERENCES\",\"REFERENCING\",\"REFRESH\",\"RELY\",\"RENAME\",\"REPLACE\",\"RESET\",\"RESETLOGS\",\"RESIZE\",\"RESOLVE\",\"RESOLVER\",\"RESOURCE\",\"RESTRICT\",\"RESTRICTED\",\"RESUME\",\"RETURN\",\"RETURNING\",\"REUSE\",\"REVERSE\",\"REVOKE\",\"REWRITE\",\"RIGHT\",\"ROLE\",\"ROLES\",\"ROLLBACK\",\"ROLLUP\",\"ROW\",\"ROWNUM\",\"ROWS\",\"RULE\",\"SAMPLE\",\"SAVEPOINT\",\"SCAN\",\"SCAN_INSTANCES\",\"SCHEMA\",\"SCN\",\"SCOPE\",\"SD_ALL\",\"SD_INHIBIT\",\"SD_SHOW\",\"SEG_BLOCK\",\"SEG_FILE\",\"SEGMENT\",\"SELECT\",\"SELECTIVITY\",\"SEQUENCE\",\"SERIALIZABLE\",\"SERVERERROR\",\"SESSION\",\"SESSION_CACHED_CURSORS\",\"SESSIONS_PER_USER\",\"SET\",\"SHARE\",\"SHARED\",\"SHARED_POOL\",\"SHRINK\",\"SHUTDOWN\",\"SINGLETASK\",\"SIZE\",\"SKIP\",\"SKIP_UNUSABLE_INDEXES\",\"SNAPSHOT\",\"SOME\",\"SORT\",\"SOURCE\",\"SPECIFICATION\",\"SPLIT\",\"SQL_TRACE\",\"STANDBY\",\"START\",\"STARTUP\",\"STATEMENT_ID\",\"STATIC\",\"STATISTICS\",\"STOP\",\"STORAGE\",\"STORE\",\"STRUCTURE\",\"SUBMULTISET\",\"SUBPARTITION\",\"SUBPARTITIONS\",\"SUCCESSFUL\",\"SUMMARY\",\"SUPPLEMENTAL\",\"SUSPEND\",\"SWITCH\",\"SYNONYM\",\"SYS_OP_BITVEC\",\"SYS_OP_ENFORCE_NOT_NULL$\",\"SYS_OP_NOEXPAND\",\"SYS_OP_NTCIMG$\",\"SYSDBA\",\"SYSOPER\",\"SYSTEM\",\"TABLE\",\"TABLES\",\"TABLESPACE\",\"TABLESPACE_NO\",\"TABNO\",\"TEMPFILE\",\"TEMPORARY\",\"THAN\",\"THE\",\"THEN\",\"THREAD\",\"THROUGH\",\"TIME_ZONE\",\"TIMEOUT\",\"TIMEZONE_HOUR\",\"TIMEZONE_MINUTE\",\"TO\",\"TOPLEVEL\",\"TRACE\",\"TRACING\",\"TRAILING\",\"TRANSACTION\",\"TRANSITIONAL\",\"TRIGGER\",\"TRIGGERS\",\"TRUE\",\"TRUNCATE\",\"TYPE\",\"TYPES\",\"UNARCHIVED\",\"UNBOUND\",\"UNBOUNDED\",\"UNDO\",\"UNIFORM\",\"UNION\",\"UNIQUE\",\"UNLIMITED\",\"UNLOCK\",\"UNRECOVERABLE\",\"UNTIL\",\"UNUSABLE\",\"UNUSED\",\"UPD_INDEXES\",\"UPDATABLE\",\"UPDATE\",\"UPPPER\",\"USAGE\",\"USE\",\"USE_STORED_OUTLINES\",\"USER_DEFINED\",\"USING\",\"VALIDATE\",\"VALIDATION\",\"VALUES\",\"VIEW\",\"WHEN\",\"WHENEVER\",\"WHERE\",\"WHILE\",\"WITH\",\"WITHOUT\",\"WORK\",\"WRITE\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n %&(),;?[\\\\]{}\"}) (CaseInsensitiveWords (fromList [\"!=\",\"*\",\"**\",\"+\",\"-\",\"..\",\"/\",\":=\",\"<\",\"<=\",\"<>\",\"=\",\"=>\",\">\",\">=\",\"^=\",\"||\",\"~=\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n %&(),;?[\\\\]{}\"}) (CaseInsensitiveWords (fromList [\"ABS\",\"ACOS\",\"ADD_MONTHS\",\"ASCII\",\"ASCIISTR\",\"ASIN\",\"ATAN\",\"ATAN2\",\"AVG\",\"BFILENAME\",\"BIN_TO_NUM\",\"BITAND\",\"CARDINALITY\",\"CAST\",\"CEIL\",\"CHARTOROWID\",\"CHR\",\"COALESCE\",\"COLLECT\",\"COMPOSE\",\"CONCAT\",\"CONVERT\",\"CORR\",\"CORR_K\",\"CORR_S\",\"COS\",\"COSH\",\"COUNT\",\"COVAR_POP\",\"COVAR_SAMP\",\"CUME_DIST\",\"CURRENT_DATE\",\"CURRENT_TIMESTAMP\",\"CV\",\"DBTIMEZONE\",\"DECODE\",\"DECOMPOSE\",\"DENSE_RANK\",\"DEPTH\",\"DEREF\",\"DUMP\",\"EMPTY_BLOB\",\"EMPTY_CLOB\",\"EXISTSNODE\",\"EXP\",\"EXTRACT\",\"EXTRACTVALUE\",\"FIRST\",\"FIRST_VALUE\",\"FLOOR\",\"FROM_TZ\",\"GREATEST\",\"GROUP_ID\",\"GROUPING\",\"GROUPING_ID\",\"HEXTORAW\",\"INITCAP\",\"INSTR\",\"INSTRB\",\"LAG\",\"LAST\",\"LAST_DAY\",\"LAST_VALUE\",\"LEAD\",\"LEAST\",\"LENGTH\",\"LENGTHB\",\"LN\",\"LNNVL\",\"LOCALTIMESTAMP\",\"LOG\",\"LOWER\",\"LPAD\",\"LTRIM\",\"MAKE_REF\",\"MAX\",\"MEDIAN\",\"MIN\",\"MOD\",\"MONTHS_BETWEEN\",\"NANVL\",\"NCHR\",\"NEW_TIME\",\"NEXT_DAY\",\"NLS_CHARSET_DECL_LEN\",\"NLS_CHARSET_ID\",\"NLS_CHARSET_NAME\",\"NLS_INITCAP\",\"NLS_LOWER\",\"NLS_UPPER\",\"NLSSORT\",\"NTILE\",\"NULLIF\",\"NUMTODSINTERVAL\",\"NUMTOYMINTERVAL\",\"NVL\",\"NVL2\",\"ORA_HASH\",\"ORA_ROWSCN\",\"PERCENT_RANK\",\"PERCENTILE_CONT\",\"PERCENTILE_DISC\",\"POWER\",\"POWERMULTISET\",\"POWERMULTISET_BY_CARDINALITY\",\"PRESENTNNV\",\"PRESENTV\",\"RANK\",\"RATIO_TO_REPORT\",\"RAWTOHEX\",\"RAWTONHEX\",\"REF\",\"REFTOHEX\",\"REGEXP_INSTR\",\"REGEXP_LIKE\",\"REGEXP_REPLACE\",\"REGEXP_SUBSTR\",\"REGR_AVGX\",\"REGR_AVGY\",\"REGR_COUNT\",\"REGR_INTERCEPT\",\"REGR_R2\",\"REGR_SLOPE\",\"REGR_SXX\",\"REGR_SXY\",\"REGR_SYY\",\"REMAINDER\",\"ROUND\",\"ROW_NUMBER\",\"ROWIDTOCHAR\",\"ROWIDTONCHAR\",\"RPAD\",\"RTRIM\",\"SCN_TO_TIMESTAMP\",\"SESSIONTIMEZONE\",\"SIGN\",\"SIN\",\"SINH\",\"SOUNDEX\",\"SQRT\",\"STATS_BINOMIAL_TEST\",\"STATS_CROSSTAB\",\"STATS_F_TEST\",\"STATS_KS_TEST\",\"STATS_MODE\",\"STATS_MW_TEST\",\"STATS_ONE_WAY_ANOVA\",\"STATS_T_TEST_INDEP\",\"STATS_T_TEST_INDEPU\",\"STATS_T_TEST_ONE\",\"STATS_T_TEST_PAIRED\",\"STATS_WSR_TEST\",\"STDDEV\",\"STDDEV_POP\",\"STDDEV_SAMP\",\"SUBSTR\",\"SUBSTRB\",\"SUM\",\"SYS_CONNECT_BY_PATH\",\"SYS_CONTEXT\",\"SYS_DBURIGEN\",\"SYS_EXTRACT_UTC\",\"SYS_GUID\",\"SYS_TYPEID\",\"SYS_XMLAGG\",\"SYS_XMLGEN\",\"SYSDATE\",\"SYSTIMESTAMP\",\"TAN\",\"TANH\",\"TIMESTAMP_TO_SCN\",\"TO_BINARY_DOUBLE\",\"TO_BINARY_FLOAT\",\"TO_CHAR\",\"TO_CLOB\",\"TO_DATE\",\"TO_DSINTERVAL\",\"TO_LOB\",\"TO_MULTI_BYTE\",\"TO_NCHAR\",\"TO_NCLOB\",\"TO_NUMBER\",\"TO_SINGLE_BYTE\",\"TO_TIMESTAMP\",\"TO_TIMESTAMP_TZ\",\"TO_YMINTERVAL\",\"TRANSLATE\",\"TREAT\",\"TRIM\",\"TRUNC\",\"TZ_OFFSET\",\"UID\",\"UNISTR\",\"UPDATEXML\",\"UPPER\",\"USER\",\"USERENV\",\"VALUE\",\"VAR_POP\",\"VAR_SAMP\",\"VARIANCE\",\"VSIZE\",\"WIDTH_BUCKET\",\"XMLAGG\",\"XMLCOLATTVAL\",\"XMLCONCAT\",\"XMLELEMENT\",\"XMLFOREST\",\"XMLSEQUENCE\",\"XMLTRANSFORM\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n %&(),;?[\\\\]{}\"}) (CaseInsensitiveWords (fromList [\"ANYDATA\",\"ANYDATASET\",\"ANYTYPE\",\"ARRAY\",\"BFILE\",\"BINARY_DOUBLE\",\"BINARY_FLOAT\",\"BINARY_INTEGER\",\"BLOB\",\"BOOLEAN\",\"CFILE\",\"CHAR\",\"CHARACTER\",\"CLOB\",\"DATE\",\"DAY\",\"DBURITYPE\",\"DEC\",\"DECIMAL\",\"DOUBLE\",\"FLOAT\",\"FLOB\",\"HTTPURITYPE\",\"INT\",\"INTEGER\",\"INTERVAL\",\"LOB\",\"LONG\",\"MLSLABEL\",\"MONTH\",\"NATIONAL\",\"NCHAR\",\"NCLOB\",\"NUMBER\",\"NUMERIC\",\"NVARCHAR\",\"OBJECT\",\"PLS_INTEGER\",\"PRECISION\",\"RAW\",\"REAL\",\"RECORD\",\"ROWID\",\"SECOND\",\"SINGLE\",\"SMALLINT\",\"TIME\",\"TIMESTAMP\",\"URIFACTORYTYPE\",\"URITYPE\",\"UROWID\",\"VARCHAR\",\"VARCHAR2\",\"VARRAY\",\"VARYING\",\"XMLTYPE\",\"YEAR\",\"ZONE\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%(?:bulk_(?:exceptions|rowcount)|found|isopen|notfound|rowcount|rowtype|type)\\\\b\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"SQL\",\"String literal\")]},Rule {rMatcher = Detect2Chars '-' '-', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"SQL\",\"Singleline PL/SQL-style comment\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"SQL\",\"Multiline C-style comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"rem\\\\b\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"SQL\",\"SQL*Plus remark directive\")]},Rule {rMatcher = DetectChar '\"', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"SQL\",\"User-defined identifier\")]},Rule {rMatcher = RegExpr (RE {reString = \"(:|&&?)\\\\w+\", reCaseSensitive = False}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"/$\", reCaseSensitive = False}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"@@?[^@ \\\\t\\\\r\\\\n]\", reCaseSensitive = False}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"SQL\",\"SQL*Plus directive to include file\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SQL*Plus directive to include file\",Context {cName = \"SQL*Plus directive to include file\", cSyntax = \"SQL\", cRules = [], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SQL*Plus remark directive\",Context {cName = \"SQL*Plus remark directive\", cSyntax = \"SQL\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Singleline PL/SQL-style comment\",Context {cName = \"Singleline PL/SQL-style comment\", cSyntax = \"SQL\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String literal\",Context {cName = \"String literal\", cSyntax = \"SQL\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = HlCStringChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"&&?\\\\w+\", reCaseSensitive = False}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\'' '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"User-defined identifier\",Context {cName = \"User-defined identifier\", cSyntax = \"SQL\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Yury Lebedev (yurylebedev@mail.ru)\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [\"*.sql\",\"*.SQL\",\"*.ddl\",\"*.DDL\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/SqlMysql.hs b/src/Skylighting/Syntax/SqlMysql.hs
--- a/src/Skylighting/Syntax/SqlMysql.hs
+++ b/src/Skylighting/Syntax/SqlMysql.hs
@@ -2,981 +2,6 @@
 module Skylighting.Syntax.SqlMysql (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "SQL (MySQL)"
-  , sFilename = "sql-mysql.xml"
-  , sShortname = "SqlMysql"
-  , sContexts =
-      fromList
-        [ ( "MultiLineComment"
-          , Context
-              { cName = "MultiLineComment"
-              , cSyntax = "SQL (MySQL)"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Name"
-          , Context
-              { cName = "Name"
-              , cSyntax = "SQL (MySQL)"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "SQL (MySQL)"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "SET(?=\\s*\\()"
-                              , reCompiled = Just (compileRegex False "SET(?=\\s*\\()")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bCHARACTER SET\\b"
-                              , reCompiled = Just (compileRegex False "\\bCHARACTER SET\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims = Data.Set.fromList "\t\n %&(),;?[\\]{}"
-                              }
-                            (makeWordSet
-                               False
-                               [ "ACCESS"
-                               , "ADD"
-                               , "ALL"
-                               , "ALTER"
-                               , "ANALYZE"
-                               , "AND"
-                               , "AS"
-                               , "ASC"
-                               , "AUTO_INCREMENT"
-                               , "BDB"
-                               , "BERKELEYDB"
-                               , "BETWEEN"
-                               , "BOTH"
-                               , "BY"
-                               , "CASCADE"
-                               , "CASE"
-                               , "CHANGE"
-                               , "CHARSET"
-                               , "COLUMN"
-                               , "COLUMNS"
-                               , "CONSTRAINT"
-                               , "CREATE"
-                               , "CROSS"
-                               , "CURRENT_DATE"
-                               , "CURRENT_TIME"
-                               , "CURRENT_TIMESTAMP"
-                               , "DATABASE"
-                               , "DATABASES"
-                               , "DAY_HOUR"
-                               , "DAY_MINUTE"
-                               , "DAY_SECOND"
-                               , "DEC"
-                               , "DEFAULT"
-                               , "DELAYED"
-                               , "DELETE"
-                               , "DESC"
-                               , "DESCRIBE"
-                               , "DISTINCT"
-                               , "DISTINCTROW"
-                               , "DROP"
-                               , "ELSE"
-                               , "ENCLOSED"
-                               , "ESCAPED"
-                               , "EXISTS"
-                               , "EXPLAIN"
-                               , "FIELDS"
-                               , "FOR"
-                               , "FOREIGN"
-                               , "FROM"
-                               , "FULLTEXT"
-                               , "FUNCTION"
-                               , "GRANT"
-                               , "GROUP"
-                               , "HAVING"
-                               , "HIGH_PRIORITY"
-                               , "IF"
-                               , "IGNORE"
-                               , "IN"
-                               , "INDEX"
-                               , "INFILE"
-                               , "INNER"
-                               , "INNODB"
-                               , "INSERT"
-                               , "INTERVAL"
-                               , "INTO"
-                               , "IS"
-                               , "JOIN"
-                               , "KEY"
-                               , "KEYS"
-                               , "KILL"
-                               , "LEADING"
-                               , "LEFT"
-                               , "LIKE"
-                               , "LIMIT"
-                               , "LINES"
-                               , "LOAD"
-                               , "LOCK"
-                               , "LOW_PRIORITY"
-                               , "MASTER_SERVER_ID"
-                               , "MATCH"
-                               , "MRG_MYISAM"
-                               , "NATIONAL"
-                               , "NATURAL"
-                               , "NOT"
-                               , "NULL"
-                               , "NUMERIC"
-                               , "ON"
-                               , "OPTIMIZE"
-                               , "OPTION"
-                               , "OPTIONALLY"
-                               , "OR"
-                               , "ORDER"
-                               , "OUTER"
-                               , "OUTFILE"
-                               , "PARTIAL"
-                               , "PRECISION"
-                               , "PRIMARY"
-                               , "PRIVILEGES"
-                               , "PROCEDURE"
-                               , "PURGE"
-                               , "READ"
-                               , "REFERENCES"
-                               , "REGEXP"
-                               , "RENAME"
-                               , "REPLACE"
-                               , "REQUIRE"
-                               , "RESTRICT"
-                               , "RETURNS"
-                               , "REVOKE"
-                               , "RIGHT"
-                               , "RLIKE"
-                               , "SELECT"
-                               , "SET"
-                               , "SHOW"
-                               , "SONAME"
-                               , "SQL_BIG_RESULT"
-                               , "SQL_CALC_FOUND_ROWS"
-                               , "SQL_SMALL_RESULT"
-                               , "SSL"
-                               , "STARTING"
-                               , "STRAIGHT_JOIN"
-                               , "STRIPED"
-                               , "TABLE"
-                               , "TABLES"
-                               , "TERMINATED"
-                               , "THEN"
-                               , "TO"
-                               , "TRAILING"
-                               , "TRUNCATE"
-                               , "TYPE"
-                               , "UNION"
-                               , "UNIQUE"
-                               , "UNLOCK"
-                               , "UNSIGNED"
-                               , "UPDATE"
-                               , "USAGE"
-                               , "USE"
-                               , "USER_RESOURCES"
-                               , "USING"
-                               , "VALUES"
-                               , "VARYING"
-                               , "WHEN"
-                               , "WHERE"
-                               , "WHILE"
-                               , "WITH"
-                               , "WRITE"
-                               , "XOR"
-                               , "YEAR_MONTH"
-                               , "ZEROFILL"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims = Data.Set.fromList "\t\n %&(),;?[\\]{}"
-                              }
-                            (makeWordSet
-                               False
-                               [ "!="
-                               , "*"
-                               , "**"
-                               , "+"
-                               , "-"
-                               , ".."
-                               , "/"
-                               , ":="
-                               , "<"
-                               , "<="
-                               , "<>"
-                               , "="
-                               , "=>"
-                               , ">"
-                               , ">="
-                               , "^="
-                               , "||"
-                               , "~="
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims = Data.Set.fromList "\t\n %&(),;?[\\]{}"
-                              }
-                            (makeWordSet
-                               False
-                               [ "ABS"
-                               , "ACOS"
-                               , "ADDDATE"
-                               , "AES_DECRYPT"
-                               , "AES_ENCRYPT"
-                               , "ASCII"
-                               , "ASIN"
-                               , "ATAN"
-                               , "ATAN2"
-                               , "AVG"
-                               , "BENCHMARK"
-                               , "BIN"
-                               , "BIT_AND"
-                               , "BIT_COUNT"
-                               , "BIT_LENGTH"
-                               , "BIT_OR"
-                               , "CAST"
-                               , "CEILING"
-                               , "CHAR"
-                               , "CHAR_LENGTH"
-                               , "CHARACTER_LENGTH"
-                               , "CONCAT"
-                               , "CONCAT_WS"
-                               , "CONNECTION_ID"
-                               , "CONV"
-                               , "CONVERT"
-                               , "COS"
-                               , "COT"
-                               , "COUNT"
-                               , "CURDATE"
-                               , "CURRENT_DATE"
-                               , "CURRENT_TIME"
-                               , "CURRENT_TIMESTAMP"
-                               , "CURTIME"
-                               , "DATABASE"
-                               , "DATE_ADD"
-                               , "DATE_FORMAT"
-                               , "DATE_SUB"
-                               , "DAYNAME"
-                               , "DAYOFMONTH"
-                               , "DAYOFWEEK"
-                               , "DAYOFYEAR"
-                               , "DECODE"
-                               , "DEGREES"
-                               , "DES_DECRYPT"
-                               , "DES_ENCRYPT"
-                               , "ELT"
-                               , "ENCODE"
-                               , "ENCRYPT"
-                               , "EXP"
-                               , "EXPORT_SET"
-                               , "EXTRACT"
-                               , "FIELD"
-                               , "FIND_IN_SET"
-                               , "FLOOR"
-                               , "FORMAT"
-                               , "FOUND_ROWS"
-                               , "FROM_DAYS"
-                               , "FROM_UNIXTIME"
-                               , "GET_LOCK"
-                               , "GREATEST"
-                               , "HEX"
-                               , "HOUR"
-                               , "INET_ATON"
-                               , "INET_NTOA"
-                               , "INSERT"
-                               , "INSTR"
-                               , "IS_FREE_LOCK"
-                               , "LAST_INSERT_ID"
-                               , "LCASE"
-                               , "LEAST"
-                               , "LEFT"
-                               , "LENGTH"
-                               , "LN"
-                               , "LOAD_FILE"
-                               , "LOCATE"
-                               , "LOG"
-                               , "LOG10"
-                               , "LOG2"
-                               , "LOWER"
-                               , "LPAD"
-                               , "LTRIM"
-                               , "MAKE_SET"
-                               , "MASTER_POS_WAIT"
-                               , "MAX"
-                               , "MD5"
-                               , "MID"
-                               , "MIN"
-                               , "MINUTE"
-                               , "MOD"
-                               , "MONTH"
-                               , "MONTHNAME"
-                               , "NOW"
-                               , "OCT"
-                               , "OCTET_LENGTH"
-                               , "ORD"
-                               , "PASSWORD"
-                               , "PERIOD_ADD"
-                               , "PERIOD_DIFF"
-                               , "PI"
-                               , "POSITION"
-                               , "POW"
-                               , "POWER"
-                               , "QUARTER"
-                               , "QUOTE"
-                               , "RADIANS"
-                               , "RAND"
-                               , "RELEASE_LOCK"
-                               , "REPEAT"
-                               , "REPLACE"
-                               , "REVERSE"
-                               , "RIGHT"
-                               , "ROUND"
-                               , "RPAD"
-                               , "RTRIM"
-                               , "SEC_TO_TIME"
-                               , "SECOND"
-                               , "SESSION_USER"
-                               , "SHA"
-                               , "SHA1"
-                               , "SIGN"
-                               , "SIN"
-                               , "SOUNDEX"
-                               , "SPACE"
-                               , "SQRT"
-                               , "STD"
-                               , "STDDEV"
-                               , "SUBDATE"
-                               , "SUBSTRING"
-                               , "SUBSTRING_INDEX"
-                               , "SUM"
-                               , "SYSDATE"
-                               , "SYSTEM_USER"
-                               , "TAN"
-                               , "TIME_FORMAT"
-                               , "TIME_TO_SEC"
-                               , "TO_DAYS"
-                               , "TRIM"
-                               , "UCASE"
-                               , "UNIX_TIMESTAMP"
-                               , "UPPER"
-                               , "USER"
-                               , "VERSION"
-                               , "WEEK"
-                               , "WEEKDAY"
-                               , "YEAR"
-                               , "YEARWEEK"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims = Data.Set.fromList "\t\n %&(),;?[\\]{}"
-                              }
-                            (makeWordSet
-                               False
-                               [ "BIGINT"
-                               , "BINARY"
-                               , "BIT"
-                               , "BLOB"
-                               , "BOOL"
-                               , "BOOLEAN"
-                               , "CHAR"
-                               , "CHARACTER"
-                               , "DATE"
-                               , "DATETIME"
-                               , "DEC"
-                               , "DECIMAL"
-                               , "DOUBLE"
-                               , "ENUM"
-                               , "FIXED"
-                               , "FLOAT"
-                               , "INT"
-                               , "INTEGER"
-                               , "LONG"
-                               , "LONGBLOB"
-                               , "LONGTEXT"
-                               , "MEDIUMBLOB"
-                               , "MEDIUMINT"
-                               , "MEDIUMTEXT"
-                               , "MIDDLEINT"
-                               , "NUMERIC"
-                               , "REAL"
-                               , "SERIAL"
-                               , "SMALLINT"
-                               , "TEXT"
-                               , "TIME"
-                               , "TIMESTAMP"
-                               , "TINYBLOB"
-                               , "TINYINT"
-                               , "TINYTEXT"
-                               , "VARBINARY"
-                               , "VARCHAR"
-                               , "YEAR"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "%(?:bulk_(?:exceptions|rowcount)|found|isopen|notfound|rowcount|rowtype|type)\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "%(?:bulk_(?:exceptions|rowcount)|found|isopen|notfound|rowcount|rowtype|type)\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCHex
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "SQL (MySQL)" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "SQL (MySQL)" , "String2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "SQL (MySQL)" , "Name" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "SQL (MySQL)" , "SingleLineComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '-' '-'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "SQL (MySQL)" , "SingleLineComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "SQL (MySQL)" , "MultiLineComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "rem\\b"
-                              , reCompiled = Just (compileRegex False "rem\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "SQL (MySQL)" , "SingleLineComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ":&"
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "/$"
-                              , reCompiled = Just (compileRegex False "/$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@@?[^@ \\t\\r\\n]"
-                              , reCompiled = Just (compileRegex False "@@?[^@ \\t\\r\\n]")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "SQL (MySQL)" , "Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '.'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Preprocessor"
-          , Context
-              { cName = "Preprocessor"
-              , cSyntax = "SQL (MySQL)"
-              , cRules = []
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SingleLineComment"
-          , Context
-              { cName = "SingleLineComment"
-              , cSyntax = "SQL (MySQL)"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "SQL (MySQL)"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '&'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String2"
-          , Context
-              { cName = "String2"
-              , cSyntax = "SQL (MySQL)"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '&'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Shane Wright (me@shanewright.co.uk)"
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.sql" , "*.SQL" , "*.ddl" , "*.DDL" ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"SQL (MySQL)\", sFilename = \"sql-mysql.xml\", sShortname = \"SqlMysql\", sContexts = fromList [(\"MultiLineComment\",Context {cName = \"MultiLineComment\", cSyntax = \"SQL (MySQL)\", cRules = [Rule {rMatcher = LineContinue, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Name\",Context {cName = \"Name\", cSyntax = \"SQL (MySQL)\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = HlCStringChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '`', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"SQL (MySQL)\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"SET(?=\\\\s*\\\\()\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bCHARACTER SET\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n %&(),;?[\\\\]{}\"}) (CaseInsensitiveWords (fromList [\"ACCESS\",\"ADD\",\"ALL\",\"ALTER\",\"ANALYZE\",\"AND\",\"AS\",\"ASC\",\"AUTO_INCREMENT\",\"BDB\",\"BERKELEYDB\",\"BETWEEN\",\"BOTH\",\"BY\",\"CASCADE\",\"CASE\",\"CHANGE\",\"CHARSET\",\"COLUMN\",\"COLUMNS\",\"CONSTRAINT\",\"CREATE\",\"CROSS\",\"CURRENT_DATE\",\"CURRENT_TIME\",\"CURRENT_TIMESTAMP\",\"DATABASE\",\"DATABASES\",\"DAY_HOUR\",\"DAY_MINUTE\",\"DAY_SECOND\",\"DEC\",\"DEFAULT\",\"DELAYED\",\"DELETE\",\"DESC\",\"DESCRIBE\",\"DISTINCT\",\"DISTINCTROW\",\"DROP\",\"ELSE\",\"ENCLOSED\",\"ESCAPED\",\"EXISTS\",\"EXPLAIN\",\"FIELDS\",\"FOR\",\"FOREIGN\",\"FROM\",\"FULLTEXT\",\"FUNCTION\",\"GRANT\",\"GROUP\",\"HAVING\",\"HIGH_PRIORITY\",\"IF\",\"IGNORE\",\"IN\",\"INDEX\",\"INFILE\",\"INNER\",\"INNODB\",\"INSERT\",\"INTERVAL\",\"INTO\",\"IS\",\"JOIN\",\"KEY\",\"KEYS\",\"KILL\",\"LEADING\",\"LEFT\",\"LIKE\",\"LIMIT\",\"LINES\",\"LOAD\",\"LOCK\",\"LOW_PRIORITY\",\"MASTER_SERVER_ID\",\"MATCH\",\"MRG_MYISAM\",\"NATIONAL\",\"NATURAL\",\"NOT\",\"NULL\",\"NUMERIC\",\"ON\",\"OPTIMIZE\",\"OPTION\",\"OPTIONALLY\",\"OR\",\"ORDER\",\"OUTER\",\"OUTFILE\",\"PARTIAL\",\"PRECISION\",\"PRIMARY\",\"PRIVILEGES\",\"PROCEDURE\",\"PURGE\",\"READ\",\"REFERENCES\",\"REGEXP\",\"RENAME\",\"REPLACE\",\"REQUIRE\",\"RESTRICT\",\"RETURNS\",\"REVOKE\",\"RIGHT\",\"RLIKE\",\"SELECT\",\"SET\",\"SHOW\",\"SONAME\",\"SQL_BIG_RESULT\",\"SQL_CALC_FOUND_ROWS\",\"SQL_SMALL_RESULT\",\"SSL\",\"STARTING\",\"STRAIGHT_JOIN\",\"STRIPED\",\"TABLE\",\"TABLES\",\"TERMINATED\",\"THEN\",\"TO\",\"TRAILING\",\"TRUNCATE\",\"TYPE\",\"UNION\",\"UNIQUE\",\"UNLOCK\",\"UNSIGNED\",\"UPDATE\",\"USAGE\",\"USE\",\"USER_RESOURCES\",\"USING\",\"VALUES\",\"VARYING\",\"WHEN\",\"WHERE\",\"WHILE\",\"WITH\",\"WRITE\",\"XOR\",\"YEAR_MONTH\",\"ZEROFILL\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n %&(),;?[\\\\]{}\"}) (CaseInsensitiveWords (fromList [\"!=\",\"*\",\"**\",\"+\",\"-\",\"..\",\"/\",\":=\",\"<\",\"<=\",\"<>\",\"=\",\"=>\",\">\",\">=\",\"^=\",\"||\",\"~=\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n %&(),;?[\\\\]{}\"}) (CaseInsensitiveWords (fromList [\"ABS\",\"ACOS\",\"ADDDATE\",\"AES_DECRYPT\",\"AES_ENCRYPT\",\"ASCII\",\"ASIN\",\"ATAN\",\"ATAN2\",\"AVG\",\"BENCHMARK\",\"BIN\",\"BIT_AND\",\"BIT_COUNT\",\"BIT_LENGTH\",\"BIT_OR\",\"CAST\",\"CEILING\",\"CHAR\",\"CHAR_LENGTH\",\"CHARACTER_LENGTH\",\"CONCAT\",\"CONCAT_WS\",\"CONNECTION_ID\",\"CONV\",\"CONVERT\",\"COS\",\"COT\",\"COUNT\",\"CURDATE\",\"CURRENT_DATE\",\"CURRENT_TIME\",\"CURRENT_TIMESTAMP\",\"CURTIME\",\"DATABASE\",\"DATE_ADD\",\"DATE_FORMAT\",\"DATE_SUB\",\"DAYNAME\",\"DAYOFMONTH\",\"DAYOFWEEK\",\"DAYOFYEAR\",\"DECODE\",\"DEGREES\",\"DES_DECRYPT\",\"DES_ENCRYPT\",\"ELT\",\"ENCODE\",\"ENCRYPT\",\"EXP\",\"EXPORT_SET\",\"EXTRACT\",\"FIELD\",\"FIND_IN_SET\",\"FLOOR\",\"FORMAT\",\"FOUND_ROWS\",\"FROM_DAYS\",\"FROM_UNIXTIME\",\"GET_LOCK\",\"GREATEST\",\"HEX\",\"HOUR\",\"INET_ATON\",\"INET_NTOA\",\"INSERT\",\"INSTR\",\"IS_FREE_LOCK\",\"LAST_INSERT_ID\",\"LCASE\",\"LEAST\",\"LEFT\",\"LENGTH\",\"LN\",\"LOAD_FILE\",\"LOCATE\",\"LOG\",\"LOG10\",\"LOG2\",\"LOWER\",\"LPAD\",\"LTRIM\",\"MAKE_SET\",\"MASTER_POS_WAIT\",\"MAX\",\"MD5\",\"MID\",\"MIN\",\"MINUTE\",\"MOD\",\"MONTH\",\"MONTHNAME\",\"NOW\",\"OCT\",\"OCTET_LENGTH\",\"ORD\",\"PASSWORD\",\"PERIOD_ADD\",\"PERIOD_DIFF\",\"PI\",\"POSITION\",\"POW\",\"POWER\",\"QUARTER\",\"QUOTE\",\"RADIANS\",\"RAND\",\"RELEASE_LOCK\",\"REPEAT\",\"REPLACE\",\"REVERSE\",\"RIGHT\",\"ROUND\",\"RPAD\",\"RTRIM\",\"SEC_TO_TIME\",\"SECOND\",\"SESSION_USER\",\"SHA\",\"SHA1\",\"SIGN\",\"SIN\",\"SOUNDEX\",\"SPACE\",\"SQRT\",\"STD\",\"STDDEV\",\"SUBDATE\",\"SUBSTRING\",\"SUBSTRING_INDEX\",\"SUM\",\"SYSDATE\",\"SYSTEM_USER\",\"TAN\",\"TIME_FORMAT\",\"TIME_TO_SEC\",\"TO_DAYS\",\"TRIM\",\"UCASE\",\"UNIX_TIMESTAMP\",\"UPPER\",\"USER\",\"VERSION\",\"WEEK\",\"WEEKDAY\",\"YEAR\",\"YEARWEEK\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n %&(),;?[\\\\]{}\"}) (CaseInsensitiveWords (fromList [\"BIGINT\",\"BINARY\",\"BIT\",\"BLOB\",\"BOOL\",\"BOOLEAN\",\"CHAR\",\"CHARACTER\",\"DATE\",\"DATETIME\",\"DEC\",\"DECIMAL\",\"DOUBLE\",\"ENUM\",\"FIXED\",\"FLOAT\",\"INT\",\"INTEGER\",\"LONG\",\"LONGBLOB\",\"LONGTEXT\",\"MEDIUMBLOB\",\"MEDIUMINT\",\"MEDIUMTEXT\",\"MIDDLEINT\",\"NUMERIC\",\"REAL\",\"SERIAL\",\"SMALLINT\",\"TEXT\",\"TIME\",\"TIMESTAMP\",\"TINYBLOB\",\"TINYINT\",\"TINYTEXT\",\"VARBINARY\",\"VARCHAR\",\"YEAR\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%(?:bulk_(?:exceptions|rowcount)|found|isopen|notfound|rowcount|rowtype|type)\\\\b\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCHex, rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"SQL (MySQL)\",\"String\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"SQL (MySQL)\",\"String2\")]},Rule {rMatcher = DetectChar '`', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"SQL (MySQL)\",\"Name\")]},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"SQL (MySQL)\",\"SingleLineComment\")]},Rule {rMatcher = Detect2Chars '-' '-', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"SQL (MySQL)\",\"SingleLineComment\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"SQL (MySQL)\",\"MultiLineComment\")]},Rule {rMatcher = RegExpr (RE {reString = \"rem\\\\b\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"SQL (MySQL)\",\"SingleLineComment\")]},Rule {rMatcher = AnyChar \":&\", rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"/$\", reCaseSensitive = False}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"@@?[^@ \\\\t\\\\r\\\\n]\", reCaseSensitive = False}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"SQL (MySQL)\",\"Preprocessor\")]},Rule {rMatcher = DetectChar '.', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Preprocessor\",Context {cName = \"Preprocessor\", cSyntax = \"SQL (MySQL)\", cRules = [], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SingleLineComment\",Context {cName = \"SingleLineComment\", cSyntax = \"SQL (MySQL)\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"SQL (MySQL)\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = HlCStringChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '&', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String2\",Context {cName = \"String2\", cSyntax = \"SQL (MySQL)\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = HlCStringChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '&', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Shane Wright (me@shanewright.co.uk)\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.sql\",\"*.SQL\",\"*.ddl\",\"*.DDL\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/SqlPostgresql.hs b/src/Skylighting/Syntax/SqlPostgresql.hs
--- a/src/Skylighting/Syntax/SqlPostgresql.hs
+++ b/src/Skylighting/Syntax/SqlPostgresql.hs
@@ -2,1454 +2,6 @@
 module Skylighting.Syntax.SqlPostgresql (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "SQL (PostgreSQL)"
-  , sFilename = "sql-postgresql.xml"
-  , sShortname = "SqlPostgresql"
-  , sContexts =
-      fromList
-        [ ( "CreateFunction"
-          , Context
-              { cName = "CreateFunction"
-              , cSyntax = "SQL (PostgreSQL)"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$([^\\$\\n\\r]*)\\$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "SQL (PostgreSQL)" , "FunctionBody" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "SQL (PostgreSQL)" , "Normal" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FunctionBody"
-          , Context
-              { cName = "FunctionBody"
-              , cSyntax = "SQL (PostgreSQL)"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$%1\\$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "SQL (PostgreSQL)" , "Normal" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "Identifier"
-          , Context
-              { cName = "Identifier"
-              , cSyntax = "SQL (PostgreSQL)"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "MultiLineComment"
-          , Context
-              { cName = "MultiLineComment"
-              , cSyntax = "SQL (PostgreSQL)"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "MultiLineString"
-          , Context
-              { cName = "MultiLineString"
-              , cSyntax = "SQL (PostgreSQL)"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$%1\\$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "SQL (PostgreSQL)"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "create\\s+(or\\s+replace\\s+)?function"
-                              , reCompiled =
-                                  Just (compileRegex False "create\\s+(or\\s+replace\\s+)?function")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "SQL (PostgreSQL)" , "CreateFunction" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "do\\s+\\$([^\\$\\n\\r]*)\\$"
-                              , reCompiled =
-                                  Just (compileRegex False "do\\s+\\$([^\\$\\n\\r]*)\\$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "SQL (PostgreSQL)" , "FunctionBody" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims = Data.Set.fromList "\t\n (),;[\\]{}"
-                              }
-                            (makeWordSet
-                               False
-                               [ "ABORT"
-                               , "ACCESS"
-                               , "ACTION"
-                               , "ADD"
-                               , "ADMIN"
-                               , "AFTER"
-                               , "AGGREGATE"
-                               , "ALIAS"
-                               , "ALL"
-                               , "ALLOCATE"
-                               , "ALTER"
-                               , "ANALYSE"
-                               , "ANALYZE"
-                               , "ANY"
-                               , "ARE"
-                               , "AS"
-                               , "ASC"
-                               , "ASENSITIVE"
-                               , "ASSERTION"
-                               , "ASSIGNMENT"
-                               , "ASYMMETRIC"
-                               , "AT"
-                               , "ATOMIC"
-                               , "AUTHORIZATION"
-                               , "BACKWARD"
-                               , "BEFORE"
-                               , "BEGIN"
-                               , "BETWEEN"
-                               , "BINARY"
-                               , "BOTH"
-                               , "BREADTH"
-                               , "BY"
-                               , "C"
-                               , "CACHE"
-                               , "CALL"
-                               , "CALLED"
-                               , "CARDINALITY"
-                               , "CASCADE"
-                               , "CASCADED"
-                               , "CASE"
-                               , "CAST"
-                               , "CATALOG"
-                               , "CATALOG_NAME"
-                               , "CHAIN"
-                               , "CHAR_LENGTH"
-                               , "CHARACTER_LENGTH"
-                               , "CHARACTER_SET_CATALOG"
-                               , "CHARACTER_SET_NAME"
-                               , "CHARACTER_SET_SCHEMA"
-                               , "CHARACTERISTICS"
-                               , "CHECK"
-                               , "CHECKED"
-                               , "CHECKPOINT"
-                               , "CLASS"
-                               , "CLASS_ORIGIN"
-                               , "CLOB"
-                               , "CLOSE"
-                               , "CLUSTER"
-                               , "COALESCE"
-                               , "COBOL"
-                               , "COLLATE"
-                               , "COLLATION"
-                               , "COLLATION_CATALOG"
-                               , "COLLATION_NAME"
-                               , "COLLATION_SCHEMA"
-                               , "COLUMN"
-                               , "COLUMN_NAME"
-                               , "COMMAND_FUNCTION"
-                               , "COMMAND_FUNCTION_CODE"
-                               , "COMMENT"
-                               , "COMMIT"
-                               , "COMMITTED"
-                               , "COMPLETION"
-                               , "CONDITION_NUMBER"
-                               , "CONNECT"
-                               , "CONNECTION"
-                               , "CONNECTION_NAME"
-                               , "CONSTRAINT"
-                               , "CONSTRAINT_CATALOG"
-                               , "CONSTRAINT_NAME"
-                               , "CONSTRAINT_SCHEMA"
-                               , "CONSTRAINTS"
-                               , "CONSTRUCTOR"
-                               , "CONTAINS"
-                               , "CONTINUE"
-                               , "CONVERT"
-                               , "COPY"
-                               , "CORRESPONDING"
-                               , "COUNT"
-                               , "CREATE"
-                               , "CREATEDB"
-                               , "CREATEUSER"
-                               , "CROSS"
-                               , "CUBE"
-                               , "CURRENT"
-                               , "CURRENT_DATE"
-                               , "CURRENT_PATH"
-                               , "CURRENT_ROLE"
-                               , "CURRENT_TIME"
-                               , "CURRENT_TIMESTAMP"
-                               , "CURRENT_USER"
-                               , "CURSOR"
-                               , "CURSOR_NAME"
-                               , "CYCLE"
-                               , "DATA"
-                               , "DATABASE"
-                               , "DATE"
-                               , "DATETIME_INTERVAL_CODE"
-                               , "DATETIME_INTERVAL_PRECISION"
-                               , "DAY"
-                               , "DEALLOCATE"
-                               , "DEC"
-                               , "DECIMAL"
-                               , "DECLARE"
-                               , "DEFAULT"
-                               , "DEFERRABLE"
-                               , "DEFERRED"
-                               , "DEFINED"
-                               , "DEFINER"
-                               , "DELETE"
-                               , "DELIMITERS"
-                               , "DEPTH"
-                               , "DEREF"
-                               , "DESC"
-                               , "DESCRIBE"
-                               , "DESCRIPTOR"
-                               , "DESTROY"
-                               , "DESTRUCTOR"
-                               , "DETERMINISTIC"
-                               , "DIAGNOSTICS"
-                               , "DICTIONARY"
-                               , "DISCONNECT"
-                               , "DISPATCH"
-                               , "DISTINCT"
-                               , "DO"
-                               , "DOMAIN"
-                               , "DOUBLE"
-                               , "DROP"
-                               , "DYNAMIC"
-                               , "DYNAMIC_FUNCTION"
-                               , "DYNAMIC_FUNCTION_CODE"
-                               , "EACH"
-                               , "ELSE"
-                               , "ENCODING"
-                               , "ENCRYPTED"
-                               , "END"
-                               , "END-EXEC"
-                               , "EQUALS"
-                               , "ESCAPE"
-                               , "EVERY"
-                               , "EXCEPT"
-                               , "EXCEPTION"
-                               , "EXCLUSIVE"
-                               , "EXEC"
-                               , "EXECUTE"
-                               , "EXISTING"
-                               , "EXISTS"
-                               , "EXPLAIN"
-                               , "EXTERNAL"
-                               , "FALSE"
-                               , "FETCH"
-                               , "FINAL"
-                               , "FIRST"
-                               , "FOR"
-                               , "FORCE"
-                               , "FOREIGN"
-                               , "FORTRAN"
-                               , "FORWARD"
-                               , "FOUND"
-                               , "FREE"
-                               , "FREEZE"
-                               , "FROM"
-                               , "FULL"
-                               , "FUNCTION"
-                               , "G"
-                               , "GENERAL"
-                               , "GENERATED"
-                               , "GET"
-                               , "GLOBAL"
-                               , "GO"
-                               , "GOTO"
-                               , "GRANT"
-                               , "GRANTED"
-                               , "GROUP"
-                               , "GROUPING"
-                               , "HANDLER"
-                               , "HAVING"
-                               , "HIERARCHY"
-                               , "HOLD"
-                               , "HOST"
-                               , "HOUR"
-                               , "IDENTITY"
-                               , "IGNORE"
-                               , "ILIKE"
-                               , "IMMEDIATE"
-                               , "IMMUTABLE"
-                               , "IMPLEMENTATION"
-                               , "IN"
-                               , "INCREMENT"
-                               , "INDEX"
-                               , "INDICATOR"
-                               , "INFIX"
-                               , "INHERITS"
-                               , "INITIALIZE"
-                               , "INITIALLY"
-                               , "INNER"
-                               , "INOUT"
-                               , "INPUT"
-                               , "INSENSITIVE"
-                               , "INSERT"
-                               , "INSTANCE"
-                               , "INSTANTIABLE"
-                               , "INSTEAD"
-                               , "INTERSECT"
-                               , "INTERVAL"
-                               , "INTO"
-                               , "INVOKER"
-                               , "IS"
-                               , "ISNULL"
-                               , "ISOLATION"
-                               , "ITERATE"
-                               , "JOIN"
-                               , "K"
-                               , "KEY"
-                               , "KEY_MEMBER"
-                               , "KEY_TYPE"
-                               , "LANCOMPILER"
-                               , "LANGUAGE"
-                               , "LARGE"
-                               , "LAST"
-                               , "LATERAL"
-                               , "LEADING"
-                               , "LEFT"
-                               , "LENGTH"
-                               , "LESS"
-                               , "LEVEL"
-                               , "LIKE"
-                               , "LIMIT"
-                               , "LISTEN"
-                               , "LOAD"
-                               , "LOCAL"
-                               , "LOCALTIME"
-                               , "LOCALTIMESTAMP"
-                               , "LOCATION"
-                               , "LOCATOR"
-                               , "LOCK"
-                               , "LOWER"
-                               , "M"
-                               , "MAP"
-                               , "MATCH"
-                               , "MAX"
-                               , "MAXVALUE"
-                               , "MESSAGE_LENGTH"
-                               , "MESSAGE_OCTET_LENGTH"
-                               , "MESSAGE_TEXT"
-                               , "METHOD"
-                               , "MIN"
-                               , "MINUTE"
-                               , "MINVALUE"
-                               , "MOD"
-                               , "MODE"
-                               , "MODIFIES"
-                               , "MODIFY"
-                               , "MODULE"
-                               , "MONTH"
-                               , "MORE"
-                               , "MOVE"
-                               , "MUMPS"
-                               , "NAME"
-                               , "NAMES"
-                               , "NATIONAL"
-                               , "NATURAL"
-                               , "NEW"
-                               , "NEXT"
-                               , "NO"
-                               , "NOCREATEDB"
-                               , "NOCREATEUSER"
-                               , "NONE"
-                               , "NOT"
-                               , "NOTHING"
-                               , "NOTIFY"
-                               , "NOTNULL"
-                               , "NULL"
-                               , "NULLABLE"
-                               , "NULLIF"
-                               , "NUMBER"
-                               , "NUMERIC"
-                               , "OBJECT"
-                               , "OCTET_LENGTH"
-                               , "OF"
-                               , "OFF"
-                               , "OFFSET"
-                               , "OIDS"
-                               , "OLD"
-                               , "ON"
-                               , "ONLY"
-                               , "OPEN"
-                               , "OPERATION"
-                               , "OPERATOR"
-                               , "OPTION"
-                               , "OPTIONS"
-                               , "ORDER"
-                               , "ORDINALITY"
-                               , "OUT"
-                               , "OUTER"
-                               , "OUTPUT"
-                               , "OVERLAPS"
-                               , "OVERLAY"
-                               , "OVERRIDING"
-                               , "OWNER"
-                               , "PAD"
-                               , "PARAMETER"
-                               , "PARAMETER_MODE"
-                               , "PARAMETER_NAME"
-                               , "PARAMETER_ORDINAL_POSITION"
-                               , "PARAMETER_SPECIFIC_CATALOG"
-                               , "PARAMETER_SPECIFIC_NAME"
-                               , "PARAMETER_SPECIFIC_SCHEMA"
-                               , "PARAMETERS"
-                               , "PARTIAL"
-                               , "PASCAL"
-                               , "PASSWORD"
-                               , "PATH"
-                               , "PENDANT"
-                               , "PLI"
-                               , "POSITION"
-                               , "POSTFIX"
-                               , "PRECISION"
-                               , "PREFIX"
-                               , "PREORDER"
-                               , "PREPARE"
-                               , "PRESERVE"
-                               , "PRIMARY"
-                               , "PRIOR"
-                               , "PRIVILEGES"
-                               , "PROCEDURAL"
-                               , "PROCEDURE"
-                               , "PUBLIC"
-                               , "READ"
-                               , "READS"
-                               , "REAL"
-                               , "RECURSIVE"
-                               , "REF"
-                               , "REFERENCES"
-                               , "REFERENCING"
-                               , "REINDEX"
-                               , "RELATIVE"
-                               , "RENAME"
-                               , "REPEATABLE"
-                               , "REPLACE"
-                               , "RESET"
-                               , "RESTRICT"
-                               , "RESULT"
-                               , "RETURN"
-                               , "RETURNED_LENGTH"
-                               , "RETURNED_OCTET_LENGTH"
-                               , "RETURNED_SQLSTATE"
-                               , "RETURNS"
-                               , "REVOKE"
-                               , "RIGHT"
-                               , "ROLE"
-                               , "ROLLBACK"
-                               , "ROLLUP"
-                               , "ROUTINE"
-                               , "ROUTINE_CATALOG"
-                               , "ROUTINE_NAME"
-                               , "ROUTINE_SCHEMA"
-                               , "ROW"
-                               , "ROW_COUNT"
-                               , "ROWS"
-                               , "RULE"
-                               , "SAVEPOINT"
-                               , "SCALE"
-                               , "SCHEMA"
-                               , "SCHEMA_NAME"
-                               , "SCOPE"
-                               , "SCROLL"
-                               , "SEARCH"
-                               , "SECOND"
-                               , "SECTION"
-                               , "SECURITY"
-                               , "SELECT"
-                               , "SELF"
-                               , "SENSITIVE"
-                               , "SEQUENCE"
-                               , "SERIALIZABLE"
-                               , "SERVER_NAME"
-                               , "SESSION"
-                               , "SESSION_USER"
-                               , "SET"
-                               , "SETOF"
-                               , "SETS"
-                               , "SHARE"
-                               , "SHOW"
-                               , "SIMILAR"
-                               , "SIMPLE"
-                               , "SIZE"
-                               , "SOME"
-                               , "SOURCE"
-                               , "SPACE"
-                               , "SPECIFIC"
-                               , "SPECIFIC_NAME"
-                               , "SPECIFICTYPE"
-                               , "SQL"
-                               , "SQLCODE"
-                               , "SQLERROR"
-                               , "SQLEXCEPTION"
-                               , "SQLSTATE"
-                               , "SQLWARNING"
-                               , "STABLE"
-                               , "START"
-                               , "STATE"
-                               , "STATEMENT"
-                               , "STATIC"
-                               , "STATISTICS"
-                               , "STDIN"
-                               , "STDOUT"
-                               , "STRUCTURE"
-                               , "STYLE"
-                               , "SUBCLASS_ORIGIN"
-                               , "SUBLIST"
-                               , "SUBSTRING"
-                               , "SUM"
-                               , "SYMMETRIC"
-                               , "SYSID"
-                               , "SYSTEM"
-                               , "SYSTEM_USER"
-                               , "TABLE"
-                               , "TABLE_NAME"
-                               , "TEMP"
-                               , "TEMPLATE"
-                               , "TEMPORARY"
-                               , "TERMINATE"
-                               , "THAN"
-                               , "THEN"
-                               , "TIMEZONE_HOUR"
-                               , "TIMEZONE_MINUTE"
-                               , "TO"
-                               , "TOAST"
-                               , "TRAILING"
-                               , "TRANSACTION"
-                               , "TRANSACTION_ACTIVE"
-                               , "TRANSACTIONS_COMMITTED"
-                               , "TRANSACTIONS_ROLLED_BACK"
-                               , "TRANSFORM"
-                               , "TRANSFORMS"
-                               , "TRANSLATE"
-                               , "TRANSLATION"
-                               , "TREAT"
-                               , "TRIGGER"
-                               , "TRIGGER_CATALOG"
-                               , "TRIGGER_NAME"
-                               , "TRIGGER_SCHEMA"
-                               , "TRIM"
-                               , "TRUE"
-                               , "TRUNCATE"
-                               , "TRUSTED"
-                               , "TYPE"
-                               , "UNCOMMITTED"
-                               , "UNDER"
-                               , "UNENCRYPTED"
-                               , "UNION"
-                               , "UNIQUE"
-                               , "UNKNOWN"
-                               , "UNLISTEN"
-                               , "UNNAMED"
-                               , "UNNEST"
-                               , "UNTIL"
-                               , "UPDATE"
-                               , "UPPER"
-                               , "USAGE"
-                               , "USER"
-                               , "USER_DEFINED_TYPE_CATALOG"
-                               , "USER_DEFINED_TYPE_NAME"
-                               , "USER_DEFINED_TYPE_SCHEMA"
-                               , "USING"
-                               , "VACUUM"
-                               , "VALID"
-                               , "VALUE"
-                               , "VALUES"
-                               , "VARIABLE"
-                               , "VARYING"
-                               , "VERBOSE"
-                               , "VERSION"
-                               , "VIEW"
-                               , "VOLATILE"
-                               , "WHEN"
-                               , "WHENEVER"
-                               , "WHERE"
-                               , "WHILE"
-                               , "WITH"
-                               , "WITHOUT"
-                               , "WORK"
-                               , "WRITE"
-                               , "YEAR"
-                               , "ZONE"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims = Data.Set.fromList "\t\n (),;[\\]{}"
-                              }
-                            (makeWordSet
-                               False
-                               [ "!"
-                               , "!!"
-                               , "!="
-                               , "!~"
-                               , "!~*"
-                               , "#"
-                               , "##"
-                               , "%"
-                               , "&"
-                               , "&&"
-                               , "&<"
-                               , "&>"
-                               , "*"
-                               , "**"
-                               , "+"
-                               , "-"
-                               , ".."
-                               , "/"
-                               , ":="
-                               , "<"
-                               , "<->"
-                               , "<<"
-                               , "<<="
-                               , "<="
-                               , "<>"
-                               , "<^"
-                               , "="
-                               , "=>"
-                               , ">"
-                               , ">="
-                               , ">>"
-                               , ">>="
-                               , ">^"
-                               , "?#"
-                               , "?-"
-                               , "?-|"
-                               , "?|"
-                               , "?||"
-                               , "@"
-                               , "@-@"
-                               , "@@"
-                               , "^"
-                               , "^="
-                               , "AND"
-                               , "NOT"
-                               , "OR"
-                               , "|"
-                               , "|/"
-                               , "||"
-                               , "||/"
-                               , "~"
-                               , "~*"
-                               , "~="
-                               ])
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims = Data.Set.fromList "\t\n (),;[\\]{}"
-                              }
-                            (makeWordSet
-                               False
-                               [ "ABBREV"
-                               , "ABS"
-                               , "ACOS"
-                               , "AGE"
-                               , "AREA"
-                               , "ASCII"
-                               , "ASIN"
-                               , "ATAN"
-                               , "ATAN2"
-                               , "AVG"
-                               , "BIT_LENGTH"
-                               , "BOX"
-                               , "BROADCAST"
-                               , "BTRIM"
-                               , "CBRT"
-                               , "CEIL"
-                               , "CENTER"
-                               , "CHAR_LENGTH"
-                               , "CHARACTER_LENGTH"
-                               , "CHR"
-                               , "CIRCLE"
-                               , "COALESCE"
-                               , "COL_DESCRIPTION"
-                               , "CONVERT"
-                               , "COS"
-                               , "COT"
-                               , "COUNT"
-                               , "CURRVAL"
-                               , "DATE_PART"
-                               , "DATE_TRUNC"
-                               , "DECODE"
-                               , "DEGREES"
-                               , "DIAMETER"
-                               , "ENCODE"
-                               , "EXP"
-                               , "EXTRACT"
-                               , "FLOOR"
-                               , "HAS_TABLE_PRIVILEGE"
-                               , "HEIGHT"
-                               , "HOST"
-                               , "INITCAP"
-                               , "ISCLOSED"
-                               , "ISFINITE"
-                               , "ISOPEN"
-                               , "LENGTH"
-                               , "LN"
-                               , "LOG"
-                               , "LOWER"
-                               , "LPAD"
-                               , "LSEG"
-                               , "LTRIM"
-                               , "MASKLEN"
-                               , "MAX"
-                               , "MIN"
-                               , "MOD"
-                               , "NETMASK"
-                               , "NETWORK"
-                               , "NEXTVAL"
-                               , "NOW"
-                               , "NPOINT"
-                               , "NULLIF"
-                               , "OBJ_DESCRIPTION"
-                               , "OCTET_LENGTH"
-                               , "PATH"
-                               , "PCLOSE"
-                               , "PG_CLIENT_ENCODING"
-                               , "PG_GET_INDEXDEF"
-                               , "PG_GET_RULEDEF"
-                               , "PG_GET_USERBYID"
-                               , "PG_GET_VIEWDEF"
-                               , "PI"
-                               , "POINT"
-                               , "POLYGON"
-                               , "POPEN"
-                               , "POSITION"
-                               , "POW"
-                               , "RADIANS"
-                               , "RADIUS"
-                               , "RANDOM"
-                               , "REPEAT"
-                               , "ROUND"
-                               , "RPAD"
-                               , "RTRIM"
-                               , "SET_MASKLEN"
-                               , "SETVAL"
-                               , "SIGN"
-                               , "SIN"
-                               , "SQRT"
-                               , "STDDEV"
-                               , "STRPOS"
-                               , "SUBSTR"
-                               , "SUBSTRING"
-                               , "SUM"
-                               , "TAN"
-                               , "TIMEOFDAY"
-                               , "TIMESTAMP"
-                               , "TO_ASCII"
-                               , "TO_CHAR"
-                               , "TO_DATE"
-                               , "TO_NUMBER"
-                               , "TO_TIMESTAMP"
-                               , "TRANSLATE"
-                               , "TRIM"
-                               , "TRUNC"
-                               , "UPPER"
-                               , "VARIANCE"
-                               , "WIDTH"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims = Data.Set.fromList "\t\n (),;[\\]{}"
-                              }
-                            (makeWordSet
-                               False
-                               [ "BIGINT"
-                               , "BIGSERIAL"
-                               , "BIT"
-                               , "BIT VARYING"
-                               , "BOOL"
-                               , "BOOLEAN"
-                               , "BOX"
-                               , "BYTEA"
-                               , "CHAR"
-                               , "CHARACTER"
-                               , "CHARACTER VARYING"
-                               , "CIDR"
-                               , "CIRCLE"
-                               , "DATE"
-                               , "DECIMAL"
-                               , "DOUBLE PRECISION"
-                               , "FLOAT8"
-                               , "INET"
-                               , "INT"
-                               , "INT2"
-                               , "INT4"
-                               , "INT8"
-                               , "INTEGER"
-                               , "INTERVAL"
-                               , "LINE"
-                               , "LSEG"
-                               , "LZTEXT"
-                               , "MACADDR"
-                               , "MONEY"
-                               , "NUMERIC"
-                               , "OID"
-                               , "PATH"
-                               , "POINT"
-                               , "POLYGON"
-                               , "REAL"
-                               , "SERIAL"
-                               , "SERIAL8"
-                               , "SMALLINT"
-                               , "TEXT"
-                               , "TIME"
-                               , "TIMESTAMP"
-                               , "TIMESTAMP WITH TIMEZONE"
-                               , "TIMESTAMPTZ"
-                               , "TIMETZ"
-                               , "VARBIT"
-                               , "VARCHAR"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%bulk_exceptions\\b"
-                              , reCompiled = Just (compileRegex False "%bulk_exceptions\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%bulk_rowcount\\b"
-                              , reCompiled = Just (compileRegex False "%bulk_rowcount\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%found\\b"
-                              , reCompiled = Just (compileRegex False "%found\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%isopen\\b"
-                              , reCompiled = Just (compileRegex False "%isopen\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%notfound\\b"
-                              , reCompiled = Just (compileRegex False "%notfound\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%rowcount\\b"
-                              , reCompiled = Just (compileRegex False "%rowcount\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%rowtype\\b"
-                              , reCompiled = Just (compileRegex False "%rowtype\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%type\\b"
-                              , reCompiled = Just (compileRegex False "%type\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "SQL (PostgreSQL)" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "SQL (PostgreSQL)" , "SingleLineComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '-' '-'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "SQL (PostgreSQL)" , "SingleLineComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "SQL (PostgreSQL)" , "MultiLineComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "rem\\b"
-                              , reCompiled = Just (compileRegex False "rem\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch =
-                          [ Push ( "SQL (PostgreSQL)" , "SingleLineComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "SQL (PostgreSQL)" , "Identifier" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ":&"
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "/$"
-                              , reCompiled = Just (compileRegex False "/$")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@@?[^@ \\t\\r\\n]"
-                              , reCompiled = Just (compileRegex False "@@?[^@ \\t\\r\\n]")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "SQL (PostgreSQL)" , "Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$([^\\$\\n\\r]*)\\$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "SQL (PostgreSQL)" , "MultiLineString" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Preprocessor"
-          , Context
-              { cName = "Preprocessor"
-              , cSyntax = "SQL (PostgreSQL)"
-              , cRules = []
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SingleLineComment"
-          , Context
-              { cName = "SingleLineComment"
-              , cSyntax = "SQL (PostgreSQL)"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "SQL (PostgreSQL)"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '&'
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Shane Wright (me@shanewright.co.uk)"
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.sql" , "*.SQL" , "*.ddl" , "*.DDL" ]
-  , sStartingContext = "Normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"SQL (PostgreSQL)\", sFilename = \"sql-postgresql.xml\", sShortname = \"SqlPostgresql\", sContexts = fromList [(\"CreateFunction\",Context {cName = \"CreateFunction\", cSyntax = \"SQL (PostgreSQL)\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\$([^\\\\$\\\\n\\\\r]*)\\\\$\", reCaseSensitive = False}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"SQL (PostgreSQL)\",\"FunctionBody\")]},Rule {rMatcher = IncludeRules (\"SQL (PostgreSQL)\",\"Normal\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FunctionBody\",Context {cName = \"FunctionBody\", cSyntax = \"SQL (PostgreSQL)\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\$%1\\\\$\", reCaseSensitive = False}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"SQL (PostgreSQL)\",\"Normal\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"Identifier\",Context {cName = \"Identifier\", cSyntax = \"SQL (PostgreSQL)\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"MultiLineComment\",Context {cName = \"MultiLineComment\", cSyntax = \"SQL (PostgreSQL)\", cRules = [Rule {rMatcher = LineContinue, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"MultiLineString\",Context {cName = \"MultiLineString\", cSyntax = \"SQL (PostgreSQL)\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\$%1\\\\$\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"SQL (PostgreSQL)\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"create\\\\s+(or\\\\s+replace\\\\s+)?function\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"SQL (PostgreSQL)\",\"CreateFunction\")]},Rule {rMatcher = RegExpr (RE {reString = \"do\\\\s+\\\\$([^\\\\$\\\\n\\\\r]*)\\\\$\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"SQL (PostgreSQL)\",\"FunctionBody\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n (),;[\\\\]{}\"}) (CaseInsensitiveWords (fromList [\"ABORT\",\"ACCESS\",\"ACTION\",\"ADD\",\"ADMIN\",\"AFTER\",\"AGGREGATE\",\"ALIAS\",\"ALL\",\"ALLOCATE\",\"ALTER\",\"ANALYSE\",\"ANALYZE\",\"ANY\",\"ARE\",\"AS\",\"ASC\",\"ASENSITIVE\",\"ASSERTION\",\"ASSIGNMENT\",\"ASYMMETRIC\",\"AT\",\"ATOMIC\",\"AUTHORIZATION\",\"BACKWARD\",\"BEFORE\",\"BEGIN\",\"BETWEEN\",\"BINARY\",\"BOTH\",\"BREADTH\",\"BY\",\"C\",\"CACHE\",\"CALL\",\"CALLED\",\"CARDINALITY\",\"CASCADE\",\"CASCADED\",\"CASE\",\"CAST\",\"CATALOG\",\"CATALOG_NAME\",\"CHAIN\",\"CHAR_LENGTH\",\"CHARACTER_LENGTH\",\"CHARACTER_SET_CATALOG\",\"CHARACTER_SET_NAME\",\"CHARACTER_SET_SCHEMA\",\"CHARACTERISTICS\",\"CHECK\",\"CHECKED\",\"CHECKPOINT\",\"CLASS\",\"CLASS_ORIGIN\",\"CLOB\",\"CLOSE\",\"CLUSTER\",\"COALESCE\",\"COBOL\",\"COLLATE\",\"COLLATION\",\"COLLATION_CATALOG\",\"COLLATION_NAME\",\"COLLATION_SCHEMA\",\"COLUMN\",\"COLUMN_NAME\",\"COMMAND_FUNCTION\",\"COMMAND_FUNCTION_CODE\",\"COMMENT\",\"COMMIT\",\"COMMITTED\",\"COMPLETION\",\"CONDITION_NUMBER\",\"CONNECT\",\"CONNECTION\",\"CONNECTION_NAME\",\"CONSTRAINT\",\"CONSTRAINT_CATALOG\",\"CONSTRAINT_NAME\",\"CONSTRAINT_SCHEMA\",\"CONSTRAINTS\",\"CONSTRUCTOR\",\"CONTAINS\",\"CONTINUE\",\"CONVERT\",\"COPY\",\"CORRESPONDING\",\"COUNT\",\"CREATE\",\"CREATEDB\",\"CREATEUSER\",\"CROSS\",\"CUBE\",\"CURRENT\",\"CURRENT_DATE\",\"CURRENT_PATH\",\"CURRENT_ROLE\",\"CURRENT_TIME\",\"CURRENT_TIMESTAMP\",\"CURRENT_USER\",\"CURSOR\",\"CURSOR_NAME\",\"CYCLE\",\"DATA\",\"DATABASE\",\"DATE\",\"DATETIME_INTERVAL_CODE\",\"DATETIME_INTERVAL_PRECISION\",\"DAY\",\"DEALLOCATE\",\"DEC\",\"DECIMAL\",\"DECLARE\",\"DEFAULT\",\"DEFERRABLE\",\"DEFERRED\",\"DEFINED\",\"DEFINER\",\"DELETE\",\"DELIMITERS\",\"DEPTH\",\"DEREF\",\"DESC\",\"DESCRIBE\",\"DESCRIPTOR\",\"DESTROY\",\"DESTRUCTOR\",\"DETERMINISTIC\",\"DIAGNOSTICS\",\"DICTIONARY\",\"DISCONNECT\",\"DISPATCH\",\"DISTINCT\",\"DO\",\"DOMAIN\",\"DOUBLE\",\"DROP\",\"DYNAMIC\",\"DYNAMIC_FUNCTION\",\"DYNAMIC_FUNCTION_CODE\",\"EACH\",\"ELSE\",\"ENCODING\",\"ENCRYPTED\",\"END\",\"END-EXEC\",\"EQUALS\",\"ESCAPE\",\"EVERY\",\"EXCEPT\",\"EXCEPTION\",\"EXCLUSIVE\",\"EXEC\",\"EXECUTE\",\"EXISTING\",\"EXISTS\",\"EXPLAIN\",\"EXTERNAL\",\"FALSE\",\"FETCH\",\"FINAL\",\"FIRST\",\"FOR\",\"FORCE\",\"FOREIGN\",\"FORTRAN\",\"FORWARD\",\"FOUND\",\"FREE\",\"FREEZE\",\"FROM\",\"FULL\",\"FUNCTION\",\"G\",\"GENERAL\",\"GENERATED\",\"GET\",\"GLOBAL\",\"GO\",\"GOTO\",\"GRANT\",\"GRANTED\",\"GROUP\",\"GROUPING\",\"HANDLER\",\"HAVING\",\"HIERARCHY\",\"HOLD\",\"HOST\",\"HOUR\",\"IDENTITY\",\"IGNORE\",\"ILIKE\",\"IMMEDIATE\",\"IMMUTABLE\",\"IMPLEMENTATION\",\"IN\",\"INCREMENT\",\"INDEX\",\"INDICATOR\",\"INFIX\",\"INHERITS\",\"INITIALIZE\",\"INITIALLY\",\"INNER\",\"INOUT\",\"INPUT\",\"INSENSITIVE\",\"INSERT\",\"INSTANCE\",\"INSTANTIABLE\",\"INSTEAD\",\"INTERSECT\",\"INTERVAL\",\"INTO\",\"INVOKER\",\"IS\",\"ISNULL\",\"ISOLATION\",\"ITERATE\",\"JOIN\",\"K\",\"KEY\",\"KEY_MEMBER\",\"KEY_TYPE\",\"LANCOMPILER\",\"LANGUAGE\",\"LARGE\",\"LAST\",\"LATERAL\",\"LEADING\",\"LEFT\",\"LENGTH\",\"LESS\",\"LEVEL\",\"LIKE\",\"LIMIT\",\"LISTEN\",\"LOAD\",\"LOCAL\",\"LOCALTIME\",\"LOCALTIMESTAMP\",\"LOCATION\",\"LOCATOR\",\"LOCK\",\"LOWER\",\"M\",\"MAP\",\"MATCH\",\"MAX\",\"MAXVALUE\",\"MESSAGE_LENGTH\",\"MESSAGE_OCTET_LENGTH\",\"MESSAGE_TEXT\",\"METHOD\",\"MIN\",\"MINUTE\",\"MINVALUE\",\"MOD\",\"MODE\",\"MODIFIES\",\"MODIFY\",\"MODULE\",\"MONTH\",\"MORE\",\"MOVE\",\"MUMPS\",\"NAME\",\"NAMES\",\"NATIONAL\",\"NATURAL\",\"NEW\",\"NEXT\",\"NO\",\"NOCREATEDB\",\"NOCREATEUSER\",\"NONE\",\"NOT\",\"NOTHING\",\"NOTIFY\",\"NOTNULL\",\"NULL\",\"NULLABLE\",\"NULLIF\",\"NUMBER\",\"NUMERIC\",\"OBJECT\",\"OCTET_LENGTH\",\"OF\",\"OFF\",\"OFFSET\",\"OIDS\",\"OLD\",\"ON\",\"ONLY\",\"OPEN\",\"OPERATION\",\"OPERATOR\",\"OPTION\",\"OPTIONS\",\"ORDER\",\"ORDINALITY\",\"OUT\",\"OUTER\",\"OUTPUT\",\"OVERLAPS\",\"OVERLAY\",\"OVERRIDING\",\"OWNER\",\"PAD\",\"PARAMETER\",\"PARAMETER_MODE\",\"PARAMETER_NAME\",\"PARAMETER_ORDINAL_POSITION\",\"PARAMETER_SPECIFIC_CATALOG\",\"PARAMETER_SPECIFIC_NAME\",\"PARAMETER_SPECIFIC_SCHEMA\",\"PARAMETERS\",\"PARTIAL\",\"PASCAL\",\"PASSWORD\",\"PATH\",\"PENDANT\",\"PLI\",\"POSITION\",\"POSTFIX\",\"PRECISION\",\"PREFIX\",\"PREORDER\",\"PREPARE\",\"PRESERVE\",\"PRIMARY\",\"PRIOR\",\"PRIVILEGES\",\"PROCEDURAL\",\"PROCEDURE\",\"PUBLIC\",\"READ\",\"READS\",\"REAL\",\"RECURSIVE\",\"REF\",\"REFERENCES\",\"REFERENCING\",\"REINDEX\",\"RELATIVE\",\"RENAME\",\"REPEATABLE\",\"REPLACE\",\"RESET\",\"RESTRICT\",\"RESULT\",\"RETURN\",\"RETURNED_LENGTH\",\"RETURNED_OCTET_LENGTH\",\"RETURNED_SQLSTATE\",\"RETURNS\",\"REVOKE\",\"RIGHT\",\"ROLE\",\"ROLLBACK\",\"ROLLUP\",\"ROUTINE\",\"ROUTINE_CATALOG\",\"ROUTINE_NAME\",\"ROUTINE_SCHEMA\",\"ROW\",\"ROW_COUNT\",\"ROWS\",\"RULE\",\"SAVEPOINT\",\"SCALE\",\"SCHEMA\",\"SCHEMA_NAME\",\"SCOPE\",\"SCROLL\",\"SEARCH\",\"SECOND\",\"SECTION\",\"SECURITY\",\"SELECT\",\"SELF\",\"SENSITIVE\",\"SEQUENCE\",\"SERIALIZABLE\",\"SERVER_NAME\",\"SESSION\",\"SESSION_USER\",\"SET\",\"SETOF\",\"SETS\",\"SHARE\",\"SHOW\",\"SIMILAR\",\"SIMPLE\",\"SIZE\",\"SOME\",\"SOURCE\",\"SPACE\",\"SPECIFIC\",\"SPECIFIC_NAME\",\"SPECIFICTYPE\",\"SQL\",\"SQLCODE\",\"SQLERROR\",\"SQLEXCEPTION\",\"SQLSTATE\",\"SQLWARNING\",\"STABLE\",\"START\",\"STATE\",\"STATEMENT\",\"STATIC\",\"STATISTICS\",\"STDIN\",\"STDOUT\",\"STRUCTURE\",\"STYLE\",\"SUBCLASS_ORIGIN\",\"SUBLIST\",\"SUBSTRING\",\"SUM\",\"SYMMETRIC\",\"SYSID\",\"SYSTEM\",\"SYSTEM_USER\",\"TABLE\",\"TABLE_NAME\",\"TEMP\",\"TEMPLATE\",\"TEMPORARY\",\"TERMINATE\",\"THAN\",\"THEN\",\"TIMEZONE_HOUR\",\"TIMEZONE_MINUTE\",\"TO\",\"TOAST\",\"TRAILING\",\"TRANSACTION\",\"TRANSACTION_ACTIVE\",\"TRANSACTIONS_COMMITTED\",\"TRANSACTIONS_ROLLED_BACK\",\"TRANSFORM\",\"TRANSFORMS\",\"TRANSLATE\",\"TRANSLATION\",\"TREAT\",\"TRIGGER\",\"TRIGGER_CATALOG\",\"TRIGGER_NAME\",\"TRIGGER_SCHEMA\",\"TRIM\",\"TRUE\",\"TRUNCATE\",\"TRUSTED\",\"TYPE\",\"UNCOMMITTED\",\"UNDER\",\"UNENCRYPTED\",\"UNION\",\"UNIQUE\",\"UNKNOWN\",\"UNLISTEN\",\"UNNAMED\",\"UNNEST\",\"UNTIL\",\"UPDATE\",\"UPPER\",\"USAGE\",\"USER\",\"USER_DEFINED_TYPE_CATALOG\",\"USER_DEFINED_TYPE_NAME\",\"USER_DEFINED_TYPE_SCHEMA\",\"USING\",\"VACUUM\",\"VALID\",\"VALUE\",\"VALUES\",\"VARIABLE\",\"VARYING\",\"VERBOSE\",\"VERSION\",\"VIEW\",\"VOLATILE\",\"WHEN\",\"WHENEVER\",\"WHERE\",\"WHILE\",\"WITH\",\"WITHOUT\",\"WORK\",\"WRITE\",\"YEAR\",\"ZONE\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n (),;[\\\\]{}\"}) (CaseInsensitiveWords (fromList [\"!\",\"!!\",\"!=\",\"!~\",\"!~*\",\"#\",\"##\",\"%\",\"&\",\"&&\",\"&<\",\"&>\",\"*\",\"**\",\"+\",\"-\",\"..\",\"/\",\":=\",\"<\",\"<->\",\"<<\",\"<<=\",\"<=\",\"<>\",\"<^\",\"=\",\"=>\",\">\",\">=\",\">>\",\">>=\",\">^\",\"?#\",\"?-\",\"?-|\",\"?|\",\"?||\",\"@\",\"@-@\",\"@@\",\"^\",\"^=\",\"AND\",\"NOT\",\"OR\",\"|\",\"|/\",\"||\",\"||/\",\"~\",\"~*\",\"~=\"])), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n (),;[\\\\]{}\"}) (CaseInsensitiveWords (fromList [\"ABBREV\",\"ABS\",\"ACOS\",\"AGE\",\"AREA\",\"ASCII\",\"ASIN\",\"ATAN\",\"ATAN2\",\"AVG\",\"BIT_LENGTH\",\"BOX\",\"BROADCAST\",\"BTRIM\",\"CBRT\",\"CEIL\",\"CENTER\",\"CHAR_LENGTH\",\"CHARACTER_LENGTH\",\"CHR\",\"CIRCLE\",\"COALESCE\",\"COL_DESCRIPTION\",\"CONVERT\",\"COS\",\"COT\",\"COUNT\",\"CURRVAL\",\"DATE_PART\",\"DATE_TRUNC\",\"DECODE\",\"DEGREES\",\"DIAMETER\",\"ENCODE\",\"EXP\",\"EXTRACT\",\"FLOOR\",\"HAS_TABLE_PRIVILEGE\",\"HEIGHT\",\"HOST\",\"INITCAP\",\"ISCLOSED\",\"ISFINITE\",\"ISOPEN\",\"LENGTH\",\"LN\",\"LOG\",\"LOWER\",\"LPAD\",\"LSEG\",\"LTRIM\",\"MASKLEN\",\"MAX\",\"MIN\",\"MOD\",\"NETMASK\",\"NETWORK\",\"NEXTVAL\",\"NOW\",\"NPOINT\",\"NULLIF\",\"OBJ_DESCRIPTION\",\"OCTET_LENGTH\",\"PATH\",\"PCLOSE\",\"PG_CLIENT_ENCODING\",\"PG_GET_INDEXDEF\",\"PG_GET_RULEDEF\",\"PG_GET_USERBYID\",\"PG_GET_VIEWDEF\",\"PI\",\"POINT\",\"POLYGON\",\"POPEN\",\"POSITION\",\"POW\",\"RADIANS\",\"RADIUS\",\"RANDOM\",\"REPEAT\",\"ROUND\",\"RPAD\",\"RTRIM\",\"SET_MASKLEN\",\"SETVAL\",\"SIGN\",\"SIN\",\"SQRT\",\"STDDEV\",\"STRPOS\",\"SUBSTR\",\"SUBSTRING\",\"SUM\",\"TAN\",\"TIMEOFDAY\",\"TIMESTAMP\",\"TO_ASCII\",\"TO_CHAR\",\"TO_DATE\",\"TO_NUMBER\",\"TO_TIMESTAMP\",\"TRANSLATE\",\"TRIM\",\"TRUNC\",\"UPPER\",\"VARIANCE\",\"WIDTH\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n (),;[\\\\]{}\"}) (CaseInsensitiveWords (fromList [\"BIGINT\",\"BIGSERIAL\",\"BIT\",\"BIT VARYING\",\"BOOL\",\"BOOLEAN\",\"BOX\",\"BYTEA\",\"CHAR\",\"CHARACTER\",\"CHARACTER VARYING\",\"CIDR\",\"CIRCLE\",\"DATE\",\"DECIMAL\",\"DOUBLE PRECISION\",\"FLOAT8\",\"INET\",\"INT\",\"INT2\",\"INT4\",\"INT8\",\"INTEGER\",\"INTERVAL\",\"LINE\",\"LSEG\",\"LZTEXT\",\"MACADDR\",\"MONEY\",\"NUMERIC\",\"OID\",\"PATH\",\"POINT\",\"POLYGON\",\"REAL\",\"SERIAL\",\"SERIAL8\",\"SMALLINT\",\"TEXT\",\"TIME\",\"TIMESTAMP\",\"TIMESTAMP WITH TIMEZONE\",\"TIMESTAMPTZ\",\"TIMETZ\",\"VARBIT\",\"VARCHAR\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%bulk_exceptions\\\\b\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%bulk_rowcount\\\\b\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%found\\\\b\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%isopen\\\\b\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%notfound\\\\b\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%rowcount\\\\b\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%rowtype\\\\b\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%type\\\\b\", reCaseSensitive = False}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"SQL (PostgreSQL)\",\"String\")]},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"SQL (PostgreSQL)\",\"SingleLineComment\")]},Rule {rMatcher = Detect2Chars '-' '-', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"SQL (PostgreSQL)\",\"SingleLineComment\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"SQL (PostgreSQL)\",\"MultiLineComment\")]},Rule {rMatcher = RegExpr (RE {reString = \"rem\\\\b\", reCaseSensitive = False}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"SQL (PostgreSQL)\",\"SingleLineComment\")]},Rule {rMatcher = DetectChar '\"', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"SQL (PostgreSQL)\",\"Identifier\")]},Rule {rMatcher = AnyChar \":&\", rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"/$\", reCaseSensitive = False}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"@@?[^@ \\\\t\\\\r\\\\n]\", reCaseSensitive = False}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"SQL (PostgreSQL)\",\"Preprocessor\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$([^\\\\$\\\\n\\\\r]*)\\\\$\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"SQL (PostgreSQL)\",\"MultiLineString\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Preprocessor\",Context {cName = \"Preprocessor\", cSyntax = \"SQL (PostgreSQL)\", cRules = [], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SingleLineComment\",Context {cName = \"SingleLineComment\", cSyntax = \"SQL (PostgreSQL)\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"SQL (PostgreSQL)\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = HlCStringChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '&', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Shane Wright (me@shanewright.co.uk)\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.sql\",\"*.SQL\",\"*.ddl\",\"*.DDL\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Tcl.hs b/src/Skylighting/Syntax/Tcl.hs
--- a/src/Skylighting/Syntax/Tcl.hs
+++ b/src/Skylighting/Syntax/Tcl.hs
@@ -2,893 +2,6 @@
 module Skylighting.Syntax.Tcl (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Tcl/Tk"
-  , sFilename = "tcl.xml"
-  , sShortname = "Tcl"
-  , sContexts =
-      fromList
-        [ ( "Base"
-          , Context
-              { cName = "Base"
-              , cSyntax = "Tcl/Tk"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*BEGIN.*$"
-                              , reCompiled = Just (compileRegex True "#\\s*BEGIN.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#\\s*END.*$"
-                              , reCompiled = Just (compileRegex True "#\\s*END.*$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "AppleScript"
-                               , "OptProc"
-                               , "after"
-                               , "append"
-                               , "argc"
-                               , "argv"
-                               , "array"
-                               , "auto_execk"
-                               , "auto_execok"
-                               , "auto_import"
-                               , "auto_load"
-                               , "auto_mkindex"
-                               , "auto_mkindex_old"
-                               , "auto_path"
-                               , "auto_qualify"
-                               , "auto_reset"
-                               , "beep"
-                               , "bell"
-                               , "bgerror"
-                               , "binary"
-                               , "bind"
-                               , "bindtags"
-                               , "break"
-                               , "button"
-                               , "canvas"
-                               , "case"
-                               , "catch"
-                               , "cd"
-                               , "chan"
-                               , "checkbutton"
-                               , "clipboard"
-                               , "clock"
-                               , "close"
-                               , "combobox"
-                               , "concat"
-                               , "console"
-                               , "continue"
-                               , "dde"
-                               , "destroy"
-                               , "dict"
-                               , "else"
-                               , "elseif"
-                               , "encoding"
-                               , "entry"
-                               , "env"
-                               , "eof"
-                               , "error"
-                               , "errorCode"
-                               , "errorInfo"
-                               , "eval"
-                               , "event"
-                               , "exec"
-                               , "exit"
-                               , "expr"
-                               , "fblocked"
-                               , "fconfigure"
-                               , "fcopy"
-                               , "file"
-                               , "fileevent"
-                               , "flush"
-                               , "focus"
-                               , "font"
-                               , "for"
-                               , "foreach"
-                               , "format"
-                               , "frame"
-                               , "gets"
-                               , "glob"
-                               , "global"
-                               , "grab"
-                               , "grid"
-                               , "history"
-                               , "if"
-                               , "image"
-                               , "incr"
-                               , "info"
-                               , "interp"
-                               , "join"
-                               , "label"
-                               , "labelframe"
-                               , "lappend"
-                               , "lassign"
-                               , "lindex"
-                               , "linsert"
-                               , "list"
-                               , "listbox"
-                               , "llength"
-                               , "load"
-                               , "lower"
-                               , "lrange"
-                               , "lremove"
-                               , "lrepeat"
-                               , "lreplace"
-                               , "lreverse"
-                               , "lsearch"
-                               , "lset"
-                               , "lsort"
-                               , "menu"
-                               , "menubutton"
-                               , "message"
-                               , "namespace"
-                               , "notebook"
-                               , "open"
-                               , "option"
-                               , "pack"
-                               , "package"
-                               , "panedwindow"
-                               , "parray"
-                               , "pid"
-                               , "pkg_mkIndex"
-                               , "place"
-                               , "proc"
-                               , "progressbar"
-                               , "puts"
-                               , "pwd"
-                               , "radiobutton"
-                               , "raise"
-                               , "read"
-                               , "regexp"
-                               , "registry"
-                               , "regsub"
-                               , "rename"
-                               , "resource"
-                               , "return"
-                               , "scale"
-                               , "scan"
-                               , "scrollbar"
-                               , "seek"
-                               , "selection"
-                               , "send"
-                               , "separator"
-                               , "set"
-                               , "sizegrip"
-                               , "socket"
-                               , "source"
-                               , "spinbox"
-                               , "split"
-                               , "string"
-                               , "style"
-                               , "subst"
-                               , "switch"
-                               , "tclLog"
-                               , "tcl_endOfWord"
-                               , "tcl_findLibrary"
-                               , "tcl_library"
-                               , "tcl_patchLevel"
-                               , "tcl_platform"
-                               , "tcl_precision"
-                               , "tcl_rcFileName"
-                               , "tcl_rcRsrcName"
-                               , "tcl_startOfNextWord"
-                               , "tcl_startOfPreviousWord"
-                               , "tcl_traceCompile"
-                               , "tcl_traceExec"
-                               , "tcl_version"
-                               , "tcl_wordBreakAfter"
-                               , "tcl_wordBreakBefore"
-                               , "tell"
-                               , "text"
-                               , "time"
-                               , "tk"
-                               , "tkTabToWindow"
-                               , "tk_chooseColor"
-                               , "tk_chooseDirectory"
-                               , "tk_focusFollowMouse"
-                               , "tk_focusNext"
-                               , "tk_focusPrev"
-                               , "tk_getOpenFile"
-                               , "tk_getSaveFile"
-                               , "tk_library"
-                               , "tk_menuSetFocus"
-                               , "tk_messageBox"
-                               , "tk_optionMenu"
-                               , "tk_patchLevel"
-                               , "tk_popup"
-                               , "tk_strictMotif"
-                               , "tk_textCopy"
-                               , "tk_textCut"
-                               , "tk_textPaste"
-                               , "tk_version"
-                               , "tkwait"
-                               , "toplevel"
-                               , "trace"
-                               , "traverseTo"
-                               , "treeview"
-                               , "unknown"
-                               , "unload"
-                               , "unset"
-                               , "update"
-                               , "uplevel"
-                               , "upvar"
-                               , "variable"
-                               , "vwait"
-                               , "while"
-                               , "winfo"
-                               , "wm"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "activate"
-                               , "actual"
-                               , "add"
-                               , "addtag"
-                               , "append"
-                               , "appname"
-                               , "args"
-                               , "aspect"
-                               , "atime"
-                               , "atom"
-                               , "atomname"
-                               , "attributes"
-                               , "bbox"
-                               , "bind"
-                               , "body"
-                               , "broadcast"
-                               , "bytelength"
-                               , "cancel"
-                               , "canvasx"
-                               , "canvasy"
-                               , "caret"
-                               , "cells"
-                               , "cget"
-                               , "channels"
-                               , "children"
-                               , "class"
-                               , "clear"
-                               , "clicks"
-                               , "client"
-                               , "clone"
-                               , "cmdcount"
-                               , "colormapfull"
-                               , "colormapwindows"
-                               , "command"
-                               , "commands"
-                               , "compare"
-                               , "complete"
-                               , "configure"
-                               , "containing"
-                               , "convertfrom"
-                               , "convertto"
-                               , "coords"
-                               , "copy"
-                               , "create"
-                               , "current"
-                               , "curselection"
-                               , "dchars"
-                               , "debug"
-                               , "default"
-                               , "deiconify"
-                               , "delete"
-                               , "delta"
-                               , "depth"
-                               , "deselect"
-                               , "dirname"
-                               , "dlineinfo"
-                               , "dtag"
-                               , "dump"
-                               , "edit"
-                               , "entrycget"
-                               , "entryconfigure"
-                               , "equal"
-                               , "executable"
-                               , "exists"
-                               , "extension"
-                               , "families"
-                               , "find"
-                               , "first"
-                               , "flash"
-                               , "focus"
-                               , "focusmodel"
-                               , "forget"
-                               , "format"
-                               , "fpixels"
-                               , "fraction"
-                               , "frame"
-                               , "functions"
-                               , "generate"
-                               , "geometry"
-                               , "get"
-                               , "gettags"
-                               , "globals"
-                               , "grid"
-                               , "group"
-                               , "handle"
-                               , "height"
-                               , "hide"
-                               , "hostname"
-                               , "iconbitmap"
-                               , "iconify"
-                               , "iconmask"
-                               , "iconname"
-                               , "iconposition"
-                               , "iconwindow"
-                               , "icursor"
-                               , "id"
-                               , "identify"
-                               , "idle"
-                               , "ifneeded"
-                               , "image"
-                               , "index"
-                               , "info"
-                               , "insert"
-                               , "interps"
-                               , "inuse"
-                               , "invoke"
-                               , "is"
-                               , "isdirectory"
-                               , "isfile"
-                               , "ismapped"
-                               , "itemcget"
-                               , "itemconfigure"
-                               , "join"
-                               , "keys"
-                               , "last"
-                               , "length"
-                               , "level"
-                               , "library"
-                               , "link"
-                               , "loaded"
-                               , "locals"
-                               , "lower"
-                               , "lstat"
-                               , "manager"
-                               , "map"
-                               , "mark"
-                               , "match"
-                               , "maxsize"
-                               , "measure"
-                               , "metrics"
-                               , "minsize"
-                               , "mkdir"
-                               , "move"
-                               , "mtime"
-                               , "name"
-                               , "nameofexecutable"
-                               , "names"
-                               , "nativename"
-                               , "nearest"
-                               , "normalize"
-                               , "number"
-                               , "overrideredirect"
-                               , "own"
-                               , "owned"
-                               , "panecget"
-                               , "paneconfigure"
-                               , "panes"
-                               , "parent"
-                               , "patchlevel"
-                               , "pathname"
-                               , "pathtype"
-                               , "pixels"
-                               , "pointerx"
-                               , "pointerxy"
-                               , "pointery"
-                               , "positionfrom"
-                               , "post"
-                               , "postcascade"
-                               , "postscript"
-                               , "present"
-                               , "procs"
-                               , "protocol"
-                               , "provide"
-                               , "proxy"
-                               , "raise"
-                               , "range"
-                               , "readable"
-                               , "readlink"
-                               , "release"
-                               , "remove"
-                               , "rename"
-                               , "repeat"
-                               , "replace"
-                               , "reqheight"
-                               , "require"
-                               , "reqwidth"
-                               , "resizable"
-                               , "rgb"
-                               , "rootname"
-                               , "rootx"
-                               , "rooty"
-                               , "scale"
-                               , "scaling"
-                               , "scan"
-                               , "screen"
-                               , "screencells"
-                               , "screendepth"
-                               , "screenheight"
-                               , "screenmmheight"
-                               , "screenmmwidth"
-                               , "screenvisual"
-                               , "screenwidth"
-                               , "script"
-                               , "search"
-                               , "seconds"
-                               , "see"
-                               , "select"
-                               , "selection"
-                               , "separator"
-                               , "server"
-                               , "set"
-                               , "sharedlibextension"
-                               , "show"
-                               , "size"
-                               , "sizefrom"
-                               , "split"
-                               , "stackorder"
-                               , "stat"
-                               , "state"
-                               , "status"
-                               , "system"
-                               , "tag"
-                               , "tail"
-                               , "tclversion"
-                               , "title"
-                               , "tolower"
-                               , "toplevel"
-                               , "totitle"
-                               , "toupper"
-                               , "transient"
-                               , "trim"
-                               , "trimleft"
-                               , "trimright"
-                               , "type"
-                               , "types"
-                               , "unknown"
-                               , "unpost"
-                               , "useinputmethods"
-                               , "validate"
-                               , "values"
-                               , "variable"
-                               , "vars"
-                               , "vcompare"
-                               , "vdelete"
-                               , "versions"
-                               , "viewable"
-                               , "vinfo"
-                               , "visual"
-                               , "visualid"
-                               , "visualsavailable"
-                               , "volumes"
-                               , "vrootheight"
-                               , "vrootwidth"
-                               , "vrootx"
-                               , "vrooty"
-                               , "vsatisfies"
-                               , "width"
-                               , "window"
-                               , "windowingsystem"
-                               , "withdraw"
-                               , "wordend"
-                               , "wordstart"
-                               , "writable"
-                               , "x"
-                               , "xview"
-                               , "y"
-                               ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\."
-                              , reCompiled = Just (compileRegex True "\\\\.")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s-\\w+"
-                              , reCompiled = Just (compileRegex True "\\s-\\w+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$\\{([^\\}]|\\\\\\})+\\}"
-                              , reCompiled =
-                                  Just (compileRegex True "\\$\\{([^\\}]|\\\\\\})+\\}")
-                              , 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 = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\"{2}"
-                              , reCompiled = Just (compileRegex True "\"{2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = [ Push ( "Tcl/Tk" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ';'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcl/Tk" , "New command line" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcl/Tk" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = KeywordTok
-                      , 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 = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "Tcl/Tk"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "New command line"
-          , Context
-              { cName = "New command line"
-              , cSyntax = "Tcl/Tk"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*#"
-                              , reCompiled = Just (compileRegex True "\\s*#")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcl/Tk" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "."
-                              , reCompiled = Just (compileRegex True ".")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Tcl/Tk"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\."
-                              , reCompiled = Just (compileRegex True "\\\\.")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = DataTypeTok
-                      , 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 = ""
-  , sVersion = "3"
-  , sLicense = "BSD"
-  , sExtensions = [ "*.tcl" , "*.tk" ]
-  , sStartingContext = "Base"
-  }
+syntax = read $! "Syntax {sName = \"Tcl/Tk\", sFilename = \"tcl.xml\", sShortname = \"Tcl\", sContexts = fromList [(\"Base\",Context {cName = \"Base\", cSyntax = \"Tcl/Tk\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*BEGIN.*$\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#\\\\s*END.*$\", reCaseSensitive = True}), rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"AppleScript\",\"OptProc\",\"after\",\"append\",\"argc\",\"argv\",\"array\",\"auto_execk\",\"auto_execok\",\"auto_import\",\"auto_load\",\"auto_mkindex\",\"auto_mkindex_old\",\"auto_path\",\"auto_qualify\",\"auto_reset\",\"beep\",\"bell\",\"bgerror\",\"binary\",\"bind\",\"bindtags\",\"break\",\"button\",\"canvas\",\"case\",\"catch\",\"cd\",\"chan\",\"checkbutton\",\"clipboard\",\"clock\",\"close\",\"combobox\",\"concat\",\"console\",\"continue\",\"dde\",\"destroy\",\"dict\",\"else\",\"elseif\",\"encoding\",\"entry\",\"env\",\"eof\",\"error\",\"errorCode\",\"errorInfo\",\"eval\",\"event\",\"exec\",\"exit\",\"expr\",\"fblocked\",\"fconfigure\",\"fcopy\",\"file\",\"fileevent\",\"flush\",\"focus\",\"font\",\"for\",\"foreach\",\"format\",\"frame\",\"gets\",\"glob\",\"global\",\"grab\",\"grid\",\"history\",\"if\",\"image\",\"incr\",\"info\",\"interp\",\"join\",\"label\",\"labelframe\",\"lappend\",\"lassign\",\"lindex\",\"linsert\",\"list\",\"listbox\",\"llength\",\"load\",\"lower\",\"lrange\",\"lremove\",\"lrepeat\",\"lreplace\",\"lreverse\",\"lsearch\",\"lset\",\"lsort\",\"menu\",\"menubutton\",\"message\",\"namespace\",\"notebook\",\"open\",\"option\",\"pack\",\"package\",\"panedwindow\",\"parray\",\"pid\",\"pkg_mkIndex\",\"place\",\"proc\",\"progressbar\",\"puts\",\"pwd\",\"radiobutton\",\"raise\",\"read\",\"regexp\",\"registry\",\"regsub\",\"rename\",\"resource\",\"return\",\"scale\",\"scan\",\"scrollbar\",\"seek\",\"selection\",\"send\",\"separator\",\"set\",\"sizegrip\",\"socket\",\"source\",\"spinbox\",\"split\",\"string\",\"style\",\"subst\",\"switch\",\"tclLog\",\"tcl_endOfWord\",\"tcl_findLibrary\",\"tcl_library\",\"tcl_patchLevel\",\"tcl_platform\",\"tcl_precision\",\"tcl_rcFileName\",\"tcl_rcRsrcName\",\"tcl_startOfNextWord\",\"tcl_startOfPreviousWord\",\"tcl_traceCompile\",\"tcl_traceExec\",\"tcl_version\",\"tcl_wordBreakAfter\",\"tcl_wordBreakBefore\",\"tell\",\"text\",\"time\",\"tk\",\"tkTabToWindow\",\"tk_chooseColor\",\"tk_chooseDirectory\",\"tk_focusFollowMouse\",\"tk_focusNext\",\"tk_focusPrev\",\"tk_getOpenFile\",\"tk_getSaveFile\",\"tk_library\",\"tk_menuSetFocus\",\"tk_messageBox\",\"tk_optionMenu\",\"tk_patchLevel\",\"tk_popup\",\"tk_strictMotif\",\"tk_textCopy\",\"tk_textCut\",\"tk_textPaste\",\"tk_version\",\"tkwait\",\"toplevel\",\"trace\",\"traverseTo\",\"treeview\",\"unknown\",\"unload\",\"unset\",\"update\",\"uplevel\",\"upvar\",\"variable\",\"vwait\",\"while\",\"winfo\",\"wm\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"activate\",\"actual\",\"add\",\"addtag\",\"append\",\"appname\",\"args\",\"aspect\",\"atime\",\"atom\",\"atomname\",\"attributes\",\"bbox\",\"bind\",\"body\",\"broadcast\",\"bytelength\",\"cancel\",\"canvasx\",\"canvasy\",\"caret\",\"cells\",\"cget\",\"channels\",\"children\",\"class\",\"clear\",\"clicks\",\"client\",\"clone\",\"cmdcount\",\"colormapfull\",\"colormapwindows\",\"command\",\"commands\",\"compare\",\"complete\",\"configure\",\"containing\",\"convertfrom\",\"convertto\",\"coords\",\"copy\",\"create\",\"current\",\"curselection\",\"dchars\",\"debug\",\"default\",\"deiconify\",\"delete\",\"delta\",\"depth\",\"deselect\",\"dirname\",\"dlineinfo\",\"dtag\",\"dump\",\"edit\",\"entrycget\",\"entryconfigure\",\"equal\",\"executable\",\"exists\",\"extension\",\"families\",\"find\",\"first\",\"flash\",\"focus\",\"focusmodel\",\"forget\",\"format\",\"fpixels\",\"fraction\",\"frame\",\"functions\",\"generate\",\"geometry\",\"get\",\"gettags\",\"globals\",\"grid\",\"group\",\"handle\",\"height\",\"hide\",\"hostname\",\"iconbitmap\",\"iconify\",\"iconmask\",\"iconname\",\"iconposition\",\"iconwindow\",\"icursor\",\"id\",\"identify\",\"idle\",\"ifneeded\",\"image\",\"index\",\"info\",\"insert\",\"interps\",\"inuse\",\"invoke\",\"is\",\"isdirectory\",\"isfile\",\"ismapped\",\"itemcget\",\"itemconfigure\",\"join\",\"keys\",\"last\",\"length\",\"level\",\"library\",\"link\",\"loaded\",\"locals\",\"lower\",\"lstat\",\"manager\",\"map\",\"mark\",\"match\",\"maxsize\",\"measure\",\"metrics\",\"minsize\",\"mkdir\",\"move\",\"mtime\",\"name\",\"nameofexecutable\",\"names\",\"nativename\",\"nearest\",\"normalize\",\"number\",\"overrideredirect\",\"own\",\"owned\",\"panecget\",\"paneconfigure\",\"panes\",\"parent\",\"patchlevel\",\"pathname\",\"pathtype\",\"pixels\",\"pointerx\",\"pointerxy\",\"pointery\",\"positionfrom\",\"post\",\"postcascade\",\"postscript\",\"present\",\"procs\",\"protocol\",\"provide\",\"proxy\",\"raise\",\"range\",\"readable\",\"readlink\",\"release\",\"remove\",\"rename\",\"repeat\",\"replace\",\"reqheight\",\"require\",\"reqwidth\",\"resizable\",\"rgb\",\"rootname\",\"rootx\",\"rooty\",\"scale\",\"scaling\",\"scan\",\"screen\",\"screencells\",\"screendepth\",\"screenheight\",\"screenmmheight\",\"screenmmwidth\",\"screenvisual\",\"screenwidth\",\"script\",\"search\",\"seconds\",\"see\",\"select\",\"selection\",\"separator\",\"server\",\"set\",\"sharedlibextension\",\"show\",\"size\",\"sizefrom\",\"split\",\"stackorder\",\"stat\",\"state\",\"status\",\"system\",\"tag\",\"tail\",\"tclversion\",\"title\",\"tolower\",\"toplevel\",\"totitle\",\"toupper\",\"transient\",\"trim\",\"trimleft\",\"trimright\",\"type\",\"types\",\"unknown\",\"unpost\",\"useinputmethods\",\"validate\",\"values\",\"variable\",\"vars\",\"vcompare\",\"vdelete\",\"versions\",\"viewable\",\"vinfo\",\"visual\",\"visualid\",\"visualsavailable\",\"volumes\",\"vrootheight\",\"vrootwidth\",\"vrootx\",\"vrooty\",\"vsatisfies\",\"width\",\"window\",\"windowingsystem\",\"withdraw\",\"wordend\",\"wordstart\",\"writable\",\"x\",\"xview\",\"y\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s-\\\\w+\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\{([^\\\\}]|\\\\\\\\\\\\})+\\\\}\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$(::|\\\\w)+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\"{2}\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\"\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcl/Tk\",\"String\")]},Rule {rMatcher = DetectChar ';', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcl/Tk\",\"New command line\")]},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Tcl/Tk\",\"Comment\")]},Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, 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 = []},Rule {rMatcher = DetectChar '[', rAttribute = KeywordTok, 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 = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment\",Context {cName = \"Comment\", cSyntax = \"Tcl/Tk\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"New command line\",Context {cName = \"New command line\", cSyntax = \"Tcl/Tk\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*#\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcl/Tk\",\"Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Tcl/Tk\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '$', rAttribute = DataTypeTok, 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 = \"\", sVersion = \"3\", sLicense = \"BSD\", sExtensions = [\"*.tcl\",\"*.tk\"], sStartingContext = \"Base\"}"
diff --git a/src/Skylighting/Syntax/Tcsh.hs b/src/Skylighting/Syntax/Tcsh.hs
--- a/src/Skylighting/Syntax/Tcsh.hs
+++ b/src/Skylighting/Syntax/Tcsh.hs
@@ -2,3876 +2,6 @@
 module Skylighting.Syntax.Tcsh (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Tcsh"
-  , sFilename = "tcsh.xml"
-  , sShortname = "Tcsh"
-  , sContexts =
-      fromList
-        [ ( "Assign"
-          , Context
-              { cName = "Assign"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "AssignArray" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindOthers" )
-                      , rAttribute = NormalTok
-                      , 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 = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "AssignArray"
-          , Context
-              { cName = "AssignArray"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "Subscript" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "Assign" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindMost" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "AssignSubscr"
-          , Context
-              { cName = "AssignSubscr"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "Subscript" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "Assign" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindOthers" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "CmdSetEnv"
-          , Context
-              { cName = "CmdSetEnv"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[A-Za-z_][A-Za-z0-9_]*"
-                              , reCompiled = Just (compileRegex True "\\b[A-Za-z_][A-Za-z0-9_]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ' '
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "Assign" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindMost" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CommentBackq"
-          , Context
-              { cName = "CommentBackq"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^`](?=`)"
-                              , reCompiled = Just (compileRegex True "[^`](?=`)")
-                              , reCaseSensitive = True
-                              }
-                      , 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 = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CommentParen"
-          , Context
-              { cName = "CommentParen"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^)](?=\\))"
-                              , reCompiled = Just (compileRegex True "[^)](?=\\))")
-                              , reCaseSensitive = True
-                              }
-                      , 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 = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ExprBracket"
-          , Context
-              { cName = "ExprBracket"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s\\](?=($|[\\s;|&]))"
-                              , reCompiled = Just (compileRegex True "\\s\\](?=($|[\\s;|&]))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\](?=($|[\\s;|&]))"
-                              , reCompiled = Just (compileRegex True "\\](?=($|[\\s;|&]))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "ExprSubParen" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindTests" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindMost" )
-                      , 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
-              }
-          )
-        , ( "ExprDblBracket"
-          , Context
-              { cName = "ExprDblBracket"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s\\]\\](?=($|[\\s;|&]))"
-                              , reCompiled = Just (compileRegex True "\\s\\]\\](?=($|[\\s;|&]))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\]\\](?=($|[\\s;|&]))"
-                              , reCompiled = Just (compileRegex True "\\]\\](?=($|[\\s;|&]))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "ExprSubParen" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindTests" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindMost" )
-                      , 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
-              }
-          )
-        , ( "ExprDblParen"
-          , Context
-              { cName = "ExprDblParen"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars ')' ')'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "ExprSubParen" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindMost" )
-                      , 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
-              }
-          )
-        , ( "ExprDblParenSubst"
-          , Context
-              { cName = "ExprDblParenSubst"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars ')' ')'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "ExprSubParen" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindMost" )
-                      , 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
-              }
-          )
-        , ( "ExprSubParen"
-          , Context
-              { cName = "ExprSubParen"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "ExprSubParen" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindMost" )
-                      , 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
-              }
-          )
-        , ( "FindAll"
-          , Context
-              { cName = "FindAll"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindComments" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindCommands" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindOthers" )
-                      , 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
-              }
-          )
-        , ( "FindCommands"
-          , Context
-              { cName = "FindCommands"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '(' '('
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "ExprDblParen" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[\\[(?=($|\\s))"
-                              , reCompiled = Just (compileRegex True "\\[\\[(?=($|\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Tcsh" , "ExprDblBracket" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s\\[\\[(?=($|\\s))"
-                              , reCompiled = Just (compileRegex True "\\s\\[\\[(?=($|\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "ExprDblBracket" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[(?=($|\\s))"
-                              , reCompiled = Just (compileRegex True "\\[(?=($|\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Tcsh" , "ExprBracket" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s\\[(?=($|\\s))"
-                              , reCompiled = Just (compileRegex True "\\s\\[(?=($|\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "ExprBracket" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\{(?=($|\\s))"
-                              , reCompiled = Just (compileRegex True "\\{(?=($|\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "Group" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "SubShell" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bdo(?![\\w$+-])"
-                              , reCompiled = Just (compileRegex True "\\bdo(?![\\w$+-])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bdone(?![\\w$+-])"
-                              , reCompiled = Just (compileRegex True "\\bdone(?![\\w$+-])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\belse\\s+if(?![\\w$+-])"
-                              , reCompiled = Just (compileRegex True "\\belse\\s+if(?![\\w$+-])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bif(?![\\w$+-])"
-                              , reCompiled = Just (compileRegex True "\\bif(?![\\w$+-])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bendif(?![\\w$+-])"
-                              , reCompiled = Just (compileRegex True "\\bendif(?![\\w$+-])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bswitch(?![\\w$+-])"
-                              , reCompiled = Just (compileRegex True "\\bswitch(?![\\w$+-])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "Switch" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-[A-Za-z0-9][A-Za-z0-9_]*"
-                              , reCompiled = Just (compileRegex True "-[A-Za-z0-9][A-Za-z0-9_]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "--[a-z][A-Za-z0-9_-]*"
-                              , reCompiled = Just (compileRegex True "--[a-z][A-Za-z0-9_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b@\\s"
-                              , reCompiled = Just (compileRegex True "\\b@\\s")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bset\\s"
-                              , reCompiled = Just (compileRegex True "\\bset\\s")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bsetenv\\s"
-                              , reCompiled = Just (compileRegex True "\\bsetenv\\s")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "CmdSetEnv" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ":()"
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bfunction\\b"
-                              , reCompiled = Just (compileRegex True "\\bfunction\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "FunctionDef" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,/;<=>?\\`|~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "."
-                               , "else"
-                               , "for"
-                               , "function"
-                               , "in"
-                               , "select"
-                               , "then"
-                               , "until"
-                               , "while"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,/;<=>?\\`|~"
-                              }
-                            (makeWordSet
-                               True
-                               [ ":"
-                               , "alias"
-                               , "alloc"
-                               , "bg"
-                               , "bindkey"
-                               , "break"
-                               , "builtins"
-                               , "bye"
-                               , "cd"
-                               , "chdir"
-                               , "complete"
-                               , "continue"
-                               , "dirs"
-                               , "echo"
-                               , "echotc"
-                               , "eval"
-                               , "exec"
-                               , "exit"
-                               , "fg"
-                               , "filetest"
-                               , "glob"
-                               , "hashstat"
-                               , "history"
-                               , "hup"
-                               , "inlib"
-                               , "jobs"
-                               , "kill"
-                               , "limit"
-                               , "log"
-                               , "login"
-                               , "logout"
-                               , "ls-F"
-                               , "migrate"
-                               , "newgrp"
-                               , "nice"
-                               , "nohup"
-                               , "notify"
-                               , "onintr"
-                               , "popd"
-                               , "printenv"
-                               , "pushd"
-                               , "rehash"
-                               , "repeat"
-                               , "sched"
-                               , "settc"
-                               , "setty"
-                               , "shift"
-                               , "source"
-                               , "stop"
-                               , "suspend"
-                               , "telltc"
-                               , "time"
-                               , "umask"
-                               , "unalias"
-                               , "uncomplete"
-                               , "unhash"
-                               , "unlimit"
-                               , "ver"
-                               , "wait"
-                               , "watchlog"
-                               , "where"
-                               , "which"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,/;<=>?\\`|~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "aclocal"
-                               , "aconnect"
-                               , "aplay"
-                               , "apm"
-                               , "apmsleep"
-                               , "apropos"
-                               , "ar"
-                               , "arch"
-                               , "arecord"
-                               , "as"
-                               , "as86"
-                               , "autoconf"
-                               , "autoheader"
-                               , "automake"
-                               , "awk"
-                               , "basename"
-                               , "bash"
-                               , "bc"
-                               , "bison"
-                               , "bunzip2"
-                               , "bzcat"
-                               , "bzcmp"
-                               , "bzdiff"
-                               , "bzegrep"
-                               , "bzfgrep"
-                               , "bzgrep"
-                               , "bzip2"
-                               , "bzip2recover"
-                               , "bzless"
-                               , "bzmore"
-                               , "c++"
-                               , "cal"
-                               , "cat"
-                               , "cc"
-                               , "cd-read"
-                               , "cdda2wav"
-                               , "cdparanoia"
-                               , "cdrdao"
-                               , "cdrecord"
-                               , "chattr"
-                               , "chfn"
-                               , "chgrp"
-                               , "chmod"
-                               , "chown"
-                               , "chroot"
-                               , "chsh"
-                               , "chvt"
-                               , "clear"
-                               , "cmp"
-                               , "co"
-                               , "col"
-                               , "comm"
-                               , "cp"
-                               , "cpio"
-                               , "cpp"
-                               , "cut"
-                               , "date"
-                               , "dc"
-                               , "dcop"
-                               , "dd"
-                               , "deallocvt"
-                               , "df"
-                               , "diff"
-                               , "diff3"
-                               , "dir"
-                               , "dircolors"
-                               , "directomatic"
-                               , "dirname"
-                               , "dmesg"
-                               , "dnsdomainname"
-                               , "domainname"
-                               , "du"
-                               , "dumpkeys"
-                               , "echo"
-                               , "ed"
-                               , "egrep"
-                               , "env"
-                               , "expr"
-                               , "false"
-                               , "fbset"
-                               , "fgconsole"
-                               , "fgrep"
-                               , "file"
-                               , "find"
-                               , "flex"
-                               , "flex++"
-                               , "fmt"
-                               , "free"
-                               , "ftp"
-                               , "funzip"
-                               , "fuser"
-                               , "g++"
-                               , "gawk"
-                               , "gc"
-                               , "gcc"
-                               , "gdb"
-                               , "getent"
-                               , "getkeycodes"
-                               , "getopt"
-                               , "gettext"
-                               , "gettextize"
-                               , "gimp"
-                               , "gimp-remote"
-                               , "gimptool"
-                               , "gmake"
-                               , "gocr"
-                               , "grep"
-                               , "groff"
-                               , "groups"
-                               , "gs"
-                               , "gunzip"
-                               , "gzexe"
-                               , "gzip"
-                               , "head"
-                               , "hexdump"
-                               , "hostname"
-                               , "id"
-                               , "igawk"
-                               , "install"
-                               , "join"
-                               , "kbd_mode"
-                               , "kbdrate"
-                               , "kdialog"
-                               , "kfile"
-                               , "kill"
-                               , "killall"
-                               , "last"
-                               , "lastb"
-                               , "ld"
-                               , "ld86"
-                               , "ldd"
-                               , "less"
-                               , "lex"
-                               , "link"
-                               , "ln"
-                               , "loadkeys"
-                               , "loadunimap"
-                               , "locate"
-                               , "lockfile"
-                               , "login"
-                               , "logname"
-                               , "lp"
-                               , "lpr"
-                               , "ls"
-                               , "lsattr"
-                               , "lsmod"
-                               , "lsmod.old"
-                               , "lynx"
-                               , "m4"
-                               , "make"
-                               , "man"
-                               , "mapscrn"
-                               , "mesg"
-                               , "mkdir"
-                               , "mkfifo"
-                               , "mknod"
-                               , "mktemp"
-                               , "more"
-                               , "mount"
-                               , "msgfmt"
-                               , "mv"
-                               , "namei"
-                               , "nano"
-                               , "nasm"
-                               , "nawk"
-                               , "netstat"
-                               , "nice"
-                               , "nisdomainname"
-                               , "nl"
-                               , "nm"
-                               , "nm86"
-                               , "nmap"
-                               , "nohup"
-                               , "nop"
-                               , "nroff"
-                               , "od"
-                               , "openvt"
-                               , "passwd"
-                               , "patch"
-                               , "pcregrep"
-                               , "pcretest"
-                               , "perl"
-                               , "perror"
-                               , "pgawk"
-                               , "pidof"
-                               , "ping"
-                               , "pr"
-                               , "printf"
-                               , "procmail"
-                               , "prune"
-                               , "ps"
-                               , "ps2ascii"
-                               , "ps2epsi"
-                               , "ps2frag"
-                               , "ps2pdf"
-                               , "ps2ps"
-                               , "psbook"
-                               , "psmerge"
-                               , "psnup"
-                               , "psresize"
-                               , "psselect"
-                               , "pstops"
-                               , "pstree"
-                               , "pwd"
-                               , "rbash"
-                               , "rcs"
-                               , "readlink"
-                               , "red"
-                               , "resizecons"
-                               , "rev"
-                               , "rm"
-                               , "rmdir"
-                               , "run-parts"
-                               , "sash"
-                               , "scp"
-                               , "sed"
-                               , "seq"
-                               , "setfont"
-                               , "setkeycodes"
-                               , "setleds"
-                               , "setmetamode"
-                               , "setserial"
-                               , "setterm"
-                               , "sh"
-                               , "showkey"
-                               , "shred"
-                               , "size"
-                               , "size86"
-                               , "skill"
-                               , "sleep"
-                               , "slogin"
-                               , "snice"
-                               , "sort"
-                               , "sox"
-                               , "split"
-                               , "ssed"
-                               , "ssh"
-                               , "ssh-add"
-                               , "ssh-agent"
-                               , "ssh-keygen"
-                               , "ssh-keyscan"
-                               , "stat"
-                               , "strings"
-                               , "strip"
-                               , "stty"
-                               , "su"
-                               , "sudo"
-                               , "suidperl"
-                               , "sum"
-                               , "sync"
-                               , "tac"
-                               , "tail"
-                               , "tar"
-                               , "tee"
-                               , "tempfile"
-                               , "test"
-                               , "touch"
-                               , "tr"
-                               , "troff"
-                               , "true"
-                               , "umount"
-                               , "uname"
-                               , "unicode_start"
-                               , "unicode_stop"
-                               , "uniq"
-                               , "unlink"
-                               , "unzip"
-                               , "updatedb"
-                               , "updmap"
-                               , "uptime"
-                               , "users"
-                               , "utmpdump"
-                               , "uuidgen"
-                               , "vdir"
-                               , "vmstat"
-                               , "w"
-                               , "wall"
-                               , "wc"
-                               , "wget"
-                               , "whatis"
-                               , "whereis"
-                               , "which"
-                               , "who"
-                               , "whoami"
-                               , "write"
-                               , "xargs"
-                               , "xhost"
-                               , "xmodmap"
-                               , "xset"
-                               , "yacc"
-                               , "yes"
-                               , "ypdomainname"
-                               , "zcat"
-                               , "zcmp"
-                               , "zdiff"
-                               , "zegrep"
-                               , "zfgrep"
-                               , "zforce"
-                               , "zgrep"
-                               , "zip"
-                               , "zless"
-                               , "zmore"
-                               , "znew"
-                               , "zsh"
-                               , "zsoelim"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,/;<=>?\\`|~"
-                              }
-                            (makeWordSet True [ "unset" , "unsetenv" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "VarName" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<?|>>?&?!?)"
-                              , reCompiled = Just (compileRegex True "(<<?|>>?&?!?)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([|&])\\1?"
-                              , reCompiled = Just (compileRegex True "([|&])\\1?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Za-z_:][A-Za-z0-9_:#%@-]*\\s*\\(\\)"
-                              , reCompiled =
-                                  Just (compileRegex True "[A-Za-z_:][A-Za-z0-9_:#%@-]*\\s*\\(\\)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindComments"
-          , Context
-              { cName = "FindComments"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\s;](?=#)"
-                              , reCompiled = Just (compileRegex True "[\\s;](?=#)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "Comment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindCommentsBackq"
-          , Context
-              { cName = "FindCommentsBackq"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "CommentBackq" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\s;](?=#)"
-                              , reCompiled = Just (compileRegex True "[\\s;](?=#)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "CommentBackq" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindCommentsParen"
-          , Context
-              { cName = "FindCommentsParen"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "CommentParen" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\s;](?=#)"
-                              , reCompiled = Just (compileRegex True "[\\s;](?=#)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "CommentParen" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindMost"
-          , Context
-              { cName = "FindMost"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindComments" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindOthers" )
-                      , 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
-              }
-          )
-        , ( "FindOthers"
-          , Context
-              { cName = "FindOthers"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[;\"\\\\'$`{}()|&<>* ]"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\[;\"\\\\'$`{}()|&<>* ]")
-                              , 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 = []
-                      }
-                  , 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 = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "/([\\w_@.%*?+-]|\\\\ )*(?=([\\s/):;$`'\"]|$))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "/([\\w_@.%*?+-]|\\\\ )*(?=([\\s/):;$`'\"]|$))")
-                              , 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
-              }
-          )
-        , ( "FindStrings"
-          , Context
-              { cName = "FindStrings"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "StringSQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "StringDQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "StringEsc" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "StringDQ" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindSubstitutions"
-          , Context
-              { cName = "FindSubstitutions"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$[A-Za-z_][A-Za-z0-9_]*\\["
-                              , reCompiled =
-                                  Just (compileRegex True "\\$[A-Za-z_][A-Za-z0-9_]*\\[")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "Subscript" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$[A-Za-z_][A-Za-z0-9_]*"
-                              , reCompiled = Just (compileRegex True "\\$[A-Za-z_][A-Za-z0-9_]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , 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 = OtherTok
-                      , 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 = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$\\{#[A-Za-z_][A-Za-z0-9_]*\\}"
-                              , reCompiled =
-                                  Just (compileRegex True "\\$\\{#[A-Za-z_][A-Za-z0-9_]*\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$\\{![A-Za-z_][A-Za-z0-9_]*\\*?\\}"
-                              , reCompiled =
-                                  Just (compileRegex True "\\$\\{![A-Za-z_][A-Za-z0-9_]*\\*?\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$\\{[A-Za-z_][A-Za-z0-9_]*"
-                              , reCompiled =
-                                  Just (compileRegex True "\\$\\{[A-Za-z_][A-Za-z0-9_]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "VarBrace" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$\\{[*@#?$!_0-9-](?=[:#%/])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\$\\{[*@#?$!_0-9-](?=[:#%/])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "VarBrace" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "$(("
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "ExprDblParenSubst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "SubstBackq" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[`$\\\\]"
-                              , reCompiled = Just (compileRegex True "\\\\[`$\\\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindTests"
-          , Context
-              { cName = "FindTests"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-[rwxXeozsfdlbcpSugktRLDIFNZ](?=\\s)"
-                              , reCompiled =
-                                  Just (compileRegex True "-[rwxXeozsfdlbcpSugktRLDIFNZ](?=\\s)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-[AMCUG]:?(?=\\s)"
-                              , reCompiled = Just (compileRegex True "-[AMCUG]:?(?=\\s)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-P[0-7]{,3}:?(?=\\s)"
-                              , reCompiled = Just (compileRegex True "-P[0-7]{,3}:?(?=\\s)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([|&=><])\\1"
-                              , reCompiled = Just (compileRegex True "([|&=><])\\1")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[|^&><+\\-*/%!~]"
-                              , reCompiled = Just (compileRegex True "[|^&><+\\-*/%!~]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([!=]~|[!><]=)"
-                              , reCompiled = Just (compileRegex True "([!=]~|[!><]=)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FunctionDef"
-          , Context
-              { cName = "FunctionDef"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s+[A-Za-z_:][A-Za-z0-9_:#%@-]*(\\s*\\(\\))?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\s+[A-Za-z_:][A-Za-z0-9_:#%@-]*(\\s*\\(\\))?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "Group"
-          , Context
-              { cName = "Group"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindAll" )
-                      , 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
-              }
-          )
-        , ( "HereDoc"
-          , Context
-              { cName = "HereDoc"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<-\\s*\"([|&;()<>\\s]+)\")"
-                              , reCompiled =
-                                  Just (compileRegex True "(<<-\\s*\"([|&;()<>\\s]+)\")")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "HereDocIQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<-\\s*'([|&;()<>\\s]+)')"
-                              , reCompiled =
-                                  Just (compileRegex True "(<<-\\s*'([|&;()<>\\s]+)')")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "HereDocIQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<-\\s*\\\\([|&;()<>\\s]+))"
-                              , reCompiled =
-                                  Just (compileRegex True "(<<-\\s*\\\\([|&;()<>\\s]+))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "HereDocIQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<-\\s*([|&;()<>\\s]+))"
-                              , reCompiled = Just (compileRegex True "(<<-\\s*([|&;()<>\\s]+))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "HereDocINQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<\\s*\"([|&;()<>\\s]+)\")"
-                              , reCompiled =
-                                  Just (compileRegex True "(<<\\s*\"([|&;()<>\\s]+)\")")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "HereDocQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<\\s*'([|&;()<>\\s]+)')"
-                              , reCompiled = Just (compileRegex True "(<<\\s*'([|&;()<>\\s]+)')")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "HereDocQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<\\s*\\\\([|&;()<>\\s]+))"
-                              , reCompiled =
-                                  Just (compileRegex True "(<<\\s*\\\\([|&;()<>\\s]+))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "HereDocQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<\\s*([|&;()<>\\s]+))"
-                              , reCompiled = Just (compileRegex True "(<<\\s*([|&;()<>\\s]+))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "HereDocNQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<<"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "HereDocINQ"
-          , Context
-              { cName = "HereDocINQ"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1" , reCompiled = Nothing , reCaseSensitive = True }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "HereDocRemainder" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*%2[\\s;]*$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindSubstitutions" )
-                      , 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 = True
-              }
-          )
-        , ( "HereDocIQ"
-          , Context
-              { cName = "HereDocIQ"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1" , reCompiled = Nothing , reCaseSensitive = True }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "HereDocRemainder" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*%2[\\s;]*$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "HereDocNQ"
-          , Context
-              { cName = "HereDocNQ"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1" , reCompiled = Nothing , reCaseSensitive = True }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "HereDocRemainder" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%2[\\s;]*$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindSubstitutions" )
-                      , 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 = True
-              }
-          )
-        , ( "HereDocQ"
-          , Context
-              { cName = "HereDocQ"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1" , reCompiled = Nothing , reCaseSensitive = True }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "HereDocRemainder" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%2[\\s;]*$"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "HereDocRemainder"
-          , Context
-              { cName = "HereDocRemainder"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindAll" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ProcessSubst"
-          , Context
-              { cName = "ProcessSubst"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindCommentsParen" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindCommands" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindOthers" )
-                      , 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
-              }
-          )
-        , ( "Start"
-          , Context
-              { cName = "Start"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindAll" )
-                      , 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
-              }
-          )
-        , ( "StringDQ"
-          , Context
-              { cName = "StringDQ"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[`\"\\\\$\\n]"
-                              , reCompiled = Just (compileRegex True "\\\\[`\"\\\\$\\n]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindSubstitutions" )
-                      , 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
-              }
-          )
-        , ( "StringEsc"
-          , Context
-              { cName = "StringEsc"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[abefnrtv\\\\']"
-                              , reCompiled = Just (compileRegex True "\\\\[abefnrtv\\\\']")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\([0-7]{1,3}|x[A-Fa-f0-9]{1,2}|c.)"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\([0-7]{1,3}|x[A-Fa-f0-9]{1,2}|c.)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , 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 = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SubShell"
-          , Context
-              { cName = "SubShell"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindAll" )
-                      , 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
-              }
-          )
-        , ( "Subscript"
-          , Context
-              { cName = "Subscript"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindStrings" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindSubstitutions" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindOthers" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SubstBackq"
-          , Context
-              { cName = "SubstBackq"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindCommentsBackq" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindCommands" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindOthers" )
-                      , 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
-              }
-          )
-        , ( "SubstCommand"
-          , Context
-              { cName = "SubstCommand"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindCommentsParen" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindCommands" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindOthers" )
-                      , 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
-              }
-          )
-        , ( "SubstFile"
-          , Context
-              { cName = "SubstFile"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindCommentsParen" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindOthers" )
-                      , 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
-              }
-          )
-        , ( "Switch"
-          , Context
-              { cName = "Switch"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\scase\\b"
-                              , reCompiled = Just (compileRegex True "\\scase\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "SwitchCase" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\sdefault\\b"
-                              , reCompiled = Just (compileRegex True "\\sdefault\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "SwitchDefault" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bendsw(?=$|[\\s;)])"
-                              , reCompiled = Just (compileRegex True "\\bendsw(?=$|[\\s;)])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindMost" )
-                      , 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
-              }
-          )
-        , ( "SwitchCase"
-          , Context
-              { cName = "SwitchCase"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ':'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "SwitchExpr" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindMost" )
-                      , 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
-              }
-          )
-        , ( "SwitchDefault"
-          , Context
-              { cName = "SwitchDefault"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ':'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "SwitchExpr" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SwitchExpr"
-          , Context
-              { cName = "SwitchExpr"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\sbreaksw\\b"
-                              , reCompiled = Just (compileRegex True "\\sbreaksw\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\scase\\b"
-                              , reCompiled = Just (compileRegex True "\\scase\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindAll" )
-                      , 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
-              }
-          )
-        , ( "VarBrace"
-          , Context
-              { cName = "VarBrace"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "Subscript" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindStrings" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindSubstitutions" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "VarName"
-          , Context
-              { cName = "VarName"
-              , cSyntax = "Tcsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-[A-Za-z0-9]+"
-                              , reCompiled = Just (compileRegex True "-[A-Za-z0-9]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "--[a-z][A-Za-z0-9_-]*"
-                              , reCompiled = Just (compileRegex True "--[a-z][A-Za-z0-9_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[A-Za-z_][A-Za-z0-9_]*"
-                              , reCompiled = Just (compileRegex True "\\b[A-Za-z_][A-Za-z0-9_]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "Subscript" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Tcsh" , "Assign" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Tcsh" , "FindMost" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^]})|;`&><]"
-                              , reCompiled = Just (compileRegex True "[^]})|;`&><]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Matthew Woehlke (mw_triad@users.sourceforge.net)"
-  , sVersion = "1"
-  , sLicense = "LGPL"
-  , sExtensions =
-      [ "*.csh"
-      , "*.tcsh"
-      , "csh.cshrc"
-      , "csh.login"
-      , ".tcshrc"
-      , ".cshrc"
-      , ".login"
-      ]
-  , sStartingContext = "Start"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Tcsh\", sFilename = \"tcsh.xml\", sShortname = \"Tcsh\", sContexts = fromList [(\"Assign\",Context {cName = \"Assign\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"AssignArray\")]},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindOthers\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\w:,+_./-]+\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"AssignArray\",Context {cName = \"AssignArray\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '[', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"Subscript\")]},Rule {rMatcher = DetectChar '=', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"Assign\")]},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindMost\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"AssignSubscr\",Context {cName = \"AssignSubscr\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = DetectChar '[', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"Subscript\")]},Rule {rMatcher = DetectChar '=', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"Assign\")]},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindOthers\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"CmdSetEnv\",Context {cName = \"CmdSetEnv\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[A-Za-z_][A-Za-z0-9_]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar ' ', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"Assign\")]},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindMost\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"Comment\",Context {cName = \"Comment\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CommentBackq\",Context {cName = \"CommentBackq\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[^`](?=`)\", reCaseSensitive = True}), 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 = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CommentParen\",Context {cName = \"CommentParen\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[^)](?=\\\\))\", reCaseSensitive = True}), 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 = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ExprBracket\",Context {cName = \"ExprBracket\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s\\\\](?=($|[\\\\s;|&]))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\](?=($|[\\\\s;|&]))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"ExprSubParen\")]},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindTests\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindMost\"), 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}),(\"ExprDblBracket\",Context {cName = \"ExprDblBracket\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s\\\\]\\\\](?=($|[\\\\s;|&]))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\]\\\\](?=($|[\\\\s;|&]))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"ExprSubParen\")]},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindTests\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindMost\"), 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}),(\"ExprDblParen\",Context {cName = \"ExprDblParen\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = Detect2Chars ')' ')', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"ExprSubParen\")]},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindMost\"), 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}),(\"ExprDblParenSubst\",Context {cName = \"ExprDblParenSubst\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = Detect2Chars ')' ')', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"ExprSubParen\")]},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindMost\"), 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}),(\"ExprSubParen\",Context {cName = \"ExprSubParen\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"ExprSubParen\")]},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindMost\"), 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}),(\"FindAll\",Context {cName = \"FindAll\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindComments\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindCommands\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindOthers\"), 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}),(\"FindCommands\",Context {cName = \"FindCommands\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = Detect2Chars '(' '(', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"ExprDblParen\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[\\\\[(?=($|\\\\s))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Tcsh\",\"ExprDblBracket\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s\\\\[\\\\[(?=($|\\\\s))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"ExprDblBracket\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[(?=($|\\\\s))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Tcsh\",\"ExprBracket\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s\\\\[(?=($|\\\\s))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"ExprBracket\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\{(?=($|\\\\s))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"Group\")]},Rule {rMatcher = DetectChar '(', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"SubShell\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bdo(?![\\\\w$+-])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bdone(?![\\\\w$+-])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\belse\\\\s+if(?![\\\\w$+-])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bif(?![\\\\w$+-])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bendif(?![\\\\w$+-])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bswitch(?![\\\\w$+-])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"Switch\")]},Rule {rMatcher = RegExpr (RE {reString = \"-[A-Za-z0-9][A-Za-z0-9_]*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"--[a-z][A-Za-z0-9_-]*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b@\\\\s\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bset\\\\s\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bsetenv\\\\s\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"CmdSetEnv\")]},Rule {rMatcher = StringDetect \":()\", rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bfunction\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"FunctionDef\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !&()*+,/;<=>?\\\\`|~\"}) (CaseSensitiveWords (fromList [\".\",\"else\",\"for\",\"function\",\"in\",\"select\",\"then\",\"until\",\"while\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !&()*+,/;<=>?\\\\`|~\"}) (CaseSensitiveWords (fromList [\":\",\"alias\",\"alloc\",\"bg\",\"bindkey\",\"break\",\"builtins\",\"bye\",\"cd\",\"chdir\",\"complete\",\"continue\",\"dirs\",\"echo\",\"echotc\",\"eval\",\"exec\",\"exit\",\"fg\",\"filetest\",\"glob\",\"hashstat\",\"history\",\"hup\",\"inlib\",\"jobs\",\"kill\",\"limit\",\"log\",\"login\",\"logout\",\"ls-F\",\"migrate\",\"newgrp\",\"nice\",\"nohup\",\"notify\",\"onintr\",\"popd\",\"printenv\",\"pushd\",\"rehash\",\"repeat\",\"sched\",\"settc\",\"setty\",\"shift\",\"source\",\"stop\",\"suspend\",\"telltc\",\"time\",\"umask\",\"unalias\",\"uncomplete\",\"unhash\",\"unlimit\",\"ver\",\"wait\",\"watchlog\",\"where\",\"which\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !&()*+,/;<=>?\\\\`|~\"}) (CaseSensitiveWords (fromList [\"aclocal\",\"aconnect\",\"aplay\",\"apm\",\"apmsleep\",\"apropos\",\"ar\",\"arch\",\"arecord\",\"as\",\"as86\",\"autoconf\",\"autoheader\",\"automake\",\"awk\",\"basename\",\"bash\",\"bc\",\"bison\",\"bunzip2\",\"bzcat\",\"bzcmp\",\"bzdiff\",\"bzegrep\",\"bzfgrep\",\"bzgrep\",\"bzip2\",\"bzip2recover\",\"bzless\",\"bzmore\",\"c++\",\"cal\",\"cat\",\"cc\",\"cd-read\",\"cdda2wav\",\"cdparanoia\",\"cdrdao\",\"cdrecord\",\"chattr\",\"chfn\",\"chgrp\",\"chmod\",\"chown\",\"chroot\",\"chsh\",\"chvt\",\"clear\",\"cmp\",\"co\",\"col\",\"comm\",\"cp\",\"cpio\",\"cpp\",\"cut\",\"date\",\"dc\",\"dcop\",\"dd\",\"deallocvt\",\"df\",\"diff\",\"diff3\",\"dir\",\"dircolors\",\"directomatic\",\"dirname\",\"dmesg\",\"dnsdomainname\",\"domainname\",\"du\",\"dumpkeys\",\"echo\",\"ed\",\"egrep\",\"env\",\"expr\",\"false\",\"fbset\",\"fgconsole\",\"fgrep\",\"file\",\"find\",\"flex\",\"flex++\",\"fmt\",\"free\",\"ftp\",\"funzip\",\"fuser\",\"g++\",\"gawk\",\"gc\",\"gcc\",\"gdb\",\"getent\",\"getkeycodes\",\"getopt\",\"gettext\",\"gettextize\",\"gimp\",\"gimp-remote\",\"gimptool\",\"gmake\",\"gocr\",\"grep\",\"groff\",\"groups\",\"gs\",\"gunzip\",\"gzexe\",\"gzip\",\"head\",\"hexdump\",\"hostname\",\"id\",\"igawk\",\"install\",\"join\",\"kbd_mode\",\"kbdrate\",\"kdialog\",\"kfile\",\"kill\",\"killall\",\"last\",\"lastb\",\"ld\",\"ld86\",\"ldd\",\"less\",\"lex\",\"link\",\"ln\",\"loadkeys\",\"loadunimap\",\"locate\",\"lockfile\",\"login\",\"logname\",\"lp\",\"lpr\",\"ls\",\"lsattr\",\"lsmod\",\"lsmod.old\",\"lynx\",\"m4\",\"make\",\"man\",\"mapscrn\",\"mesg\",\"mkdir\",\"mkfifo\",\"mknod\",\"mktemp\",\"more\",\"mount\",\"msgfmt\",\"mv\",\"namei\",\"nano\",\"nasm\",\"nawk\",\"netstat\",\"nice\",\"nisdomainname\",\"nl\",\"nm\",\"nm86\",\"nmap\",\"nohup\",\"nop\",\"nroff\",\"od\",\"openvt\",\"passwd\",\"patch\",\"pcregrep\",\"pcretest\",\"perl\",\"perror\",\"pgawk\",\"pidof\",\"ping\",\"pr\",\"printf\",\"procmail\",\"prune\",\"ps\",\"ps2ascii\",\"ps2epsi\",\"ps2frag\",\"ps2pdf\",\"ps2ps\",\"psbook\",\"psmerge\",\"psnup\",\"psresize\",\"psselect\",\"pstops\",\"pstree\",\"pwd\",\"rbash\",\"rcs\",\"readlink\",\"red\",\"resizecons\",\"rev\",\"rm\",\"rmdir\",\"run-parts\",\"sash\",\"scp\",\"sed\",\"seq\",\"setfont\",\"setkeycodes\",\"setleds\",\"setmetamode\",\"setserial\",\"setterm\",\"sh\",\"showkey\",\"shred\",\"size\",\"size86\",\"skill\",\"sleep\",\"slogin\",\"snice\",\"sort\",\"sox\",\"split\",\"ssed\",\"ssh\",\"ssh-add\",\"ssh-agent\",\"ssh-keygen\",\"ssh-keyscan\",\"stat\",\"strings\",\"strip\",\"stty\",\"su\",\"sudo\",\"suidperl\",\"sum\",\"sync\",\"tac\",\"tail\",\"tar\",\"tee\",\"tempfile\",\"test\",\"touch\",\"tr\",\"troff\",\"true\",\"umount\",\"uname\",\"unicode_start\",\"unicode_stop\",\"uniq\",\"unlink\",\"unzip\",\"updatedb\",\"updmap\",\"uptime\",\"users\",\"utmpdump\",\"uuidgen\",\"vdir\",\"vmstat\",\"w\",\"wall\",\"wc\",\"wget\",\"whatis\",\"whereis\",\"which\",\"who\",\"whoami\",\"write\",\"xargs\",\"xhost\",\"xmodmap\",\"xset\",\"yacc\",\"yes\",\"ypdomainname\",\"zcat\",\"zcmp\",\"zdiff\",\"zegrep\",\"zfgrep\",\"zforce\",\"zgrep\",\"zip\",\"zless\",\"zmore\",\"znew\",\"zsh\",\"zsoelim\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !&()*+,/;<=>?\\\\`|~\"}) (CaseSensitiveWords (fromList [\"unset\",\"unsetenv\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"VarName\")]},Rule {rMatcher = RegExpr (RE {reString = \"(<<?|>>?&?!?)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([|&])\\\\1?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[A-Za-z_:][A-Za-z0-9_:#%@-]*\\\\s*\\\\(\\\\)\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindComments\",Context {cName = \"FindComments\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\s;](?=#)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"Comment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindCommentsBackq\",Context {cName = \"FindCommentsBackq\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"CommentBackq\")]},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\s;](?=#)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"CommentBackq\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindCommentsParen\",Context {cName = \"FindCommentsParen\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"CommentParen\")]},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\s;](?=#)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"CommentParen\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindMost\",Context {cName = \"FindMost\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindComments\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindOthers\"), 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}),(\"FindOthers\",Context {cName = \"FindOthers\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[;\\\"\\\\\\\\'$`{}()|&<>* ]\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([\\\\w_@.%*?+-]|\\\\\\\\ )*(?=/)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"~\\\\w*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"/([\\\\w_@.%*?+-]|\\\\\\\\ )*(?=([\\\\s/):;$`'\\\"]|$))\", 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}),(\"FindStrings\",Context {cName = \"FindStrings\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"StringSQ\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"StringDQ\")]},Rule {rMatcher = Detect2Chars '$' '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"StringEsc\")]},Rule {rMatcher = Detect2Chars '$' '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"StringDQ\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindSubstitutions\",Context {cName = \"FindSubstitutions\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[A-Za-z_][A-Za-z0-9_]*\\\\[\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"Subscript\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[A-Za-z_][A-Za-z0-9_]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[*@#?$!_0-9-]\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\{[*@#?$!_0-9-]\\\\}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\{#[A-Za-z_][A-Za-z0-9_]*\\\\}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\{![A-Za-z_][A-Za-z0-9_]*\\\\*?\\\\}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\{[A-Za-z_][A-Za-z0-9_]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"VarBrace\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\{[*@#?$!_0-9-](?=[:#%/])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"VarBrace\")]},Rule {rMatcher = StringDetect \"$((\", rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"ExprDblParenSubst\")]},Rule {rMatcher = DetectChar '`', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"SubstBackq\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[`$\\\\\\\\]\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindTests\",Context {cName = \"FindTests\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"-[rwxXeozsfdlbcpSugktRLDIFNZ](?=\\\\s)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-[AMCUG]:?(?=\\\\s)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-P[0-7]{,3}:?(?=\\\\s)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([|&=><])\\\\1\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[|^&><+\\\\-*/%!~]\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([!=]~|[!><]=)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FunctionDef\",Context {cName = \"FunctionDef\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+[A-Za-z_:][A-Za-z0-9_:#%@-]*(\\\\s*\\\\(\\\\))?\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"Group\",Context {cName = \"Group\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindAll\"), 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}),(\"HereDoc\",Context {cName = \"HereDoc\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(<<-\\\\s*\\\"([|&;()<>\\\\s]+)\\\")\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"HereDocIQ\")]},Rule {rMatcher = RegExpr (RE {reString = \"(<<-\\\\s*'([|&;()<>\\\\s]+)')\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"HereDocIQ\")]},Rule {rMatcher = RegExpr (RE {reString = \"(<<-\\\\s*\\\\\\\\([|&;()<>\\\\s]+))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"HereDocIQ\")]},Rule {rMatcher = RegExpr (RE {reString = \"(<<-\\\\s*([|&;()<>\\\\s]+))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"HereDocINQ\")]},Rule {rMatcher = RegExpr (RE {reString = \"(<<\\\\s*\\\"([|&;()<>\\\\s]+)\\\")\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"HereDocQ\")]},Rule {rMatcher = RegExpr (RE {reString = \"(<<\\\\s*'([|&;()<>\\\\s]+)')\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"HereDocQ\")]},Rule {rMatcher = RegExpr (RE {reString = \"(<<\\\\s*\\\\\\\\([|&;()<>\\\\s]+))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"HereDocQ\")]},Rule {rMatcher = RegExpr (RE {reString = \"(<<\\\\s*([|&;()<>\\\\s]+))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"HereDocNQ\")]},Rule {rMatcher = StringDetect \"<<\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"HereDocINQ\",Context {cName = \"HereDocINQ\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"HereDocRemainder\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*%2[\\\\s;]*$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindSubstitutions\"), 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 = True}),(\"HereDocIQ\",Context {cName = \"HereDocIQ\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"HereDocRemainder\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*%2[\\\\s;]*$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"HereDocNQ\",Context {cName = \"HereDocNQ\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"HereDocRemainder\")]},Rule {rMatcher = RegExpr (RE {reString = \"%2[\\\\s;]*$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindSubstitutions\"), 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 = True}),(\"HereDocQ\",Context {cName = \"HereDocQ\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"HereDocRemainder\")]},Rule {rMatcher = RegExpr (RE {reString = \"%2[\\\\s;]*$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"HereDocRemainder\",Context {cName = \"HereDocRemainder\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindAll\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ProcessSubst\",Context {cName = \"ProcessSubst\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindCommentsParen\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindCommands\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindOthers\"), 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}),(\"Start\",Context {cName = \"Start\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindAll\"), 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}),(\"StringDQ\",Context {cName = \"StringDQ\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[`\\\"\\\\\\\\$\\\\n]\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindSubstitutions\"), 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}),(\"StringEsc\",Context {cName = \"StringEsc\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[abefnrtv\\\\\\\\']\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\([0-7]{1,3}|x[A-Fa-f0-9]{1,2}|c.)\", reCaseSensitive = True}), rAttribute = DataTypeTok, 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 = \"Tcsh\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SubShell\",Context {cName = \"SubShell\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindAll\"), 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}),(\"Subscript\",Context {cName = \"Subscript\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = DetectChar ']', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindStrings\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindSubstitutions\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindOthers\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SubstBackq\",Context {cName = \"SubstBackq\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = DetectChar '`', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindCommentsBackq\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindCommands\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindOthers\"), 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}),(\"SubstCommand\",Context {cName = \"SubstCommand\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindCommentsParen\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindCommands\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindOthers\"), 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}),(\"SubstFile\",Context {cName = \"SubstFile\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindCommentsParen\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindOthers\"), 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}),(\"Switch\",Context {cName = \"Switch\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\scase\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"SwitchCase\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\sdefault\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"SwitchDefault\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bendsw(?=$|[\\\\s;)])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindMost\"), 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}),(\"SwitchCase\",Context {cName = \"SwitchCase\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = DetectChar ':', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"SwitchExpr\")]},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindMost\"), 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}),(\"SwitchDefault\",Context {cName = \"SwitchDefault\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = DetectChar ':', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"SwitchExpr\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SwitchExpr\",Context {cName = \"SwitchExpr\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\sbreaksw\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\scase\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindAll\"), 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}),(\"VarBrace\",Context {cName = \"VarBrace\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '[', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"Subscript\")]},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindStrings\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindSubstitutions\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"VarName\",Context {cName = \"VarName\", cSyntax = \"Tcsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"-[A-Za-z0-9]+\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"--[a-z][A-Za-z0-9_-]*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[A-Za-z_][A-Za-z0-9_]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"Subscript\")]},Rule {rMatcher = DetectChar '=', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Tcsh\",\"Assign\")]},Rule {rMatcher = IncludeRules (\"Tcsh\",\"FindMost\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[^]})|;`&><]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False})], sAuthor = \"Matthew Woehlke (mw_triad@users.sourceforge.net)\", sVersion = \"1\", sLicense = \"LGPL\", sExtensions = [\"*.csh\",\"*.tcsh\",\"csh.cshrc\",\"csh.login\",\".tcshrc\",\".cshrc\",\".login\"], sStartingContext = \"Start\"}"
diff --git a/src/Skylighting/Syntax/Texinfo.hs b/src/Skylighting/Syntax/Texinfo.hs
--- a/src/Skylighting/Syntax/Texinfo.hs
+++ b/src/Skylighting/Syntax/Texinfo.hs
@@ -2,287 +2,6 @@
 module Skylighting.Syntax.Texinfo (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Texinfo"
-  , sFilename = "texinfo.xml"
-  , sShortname = "Texinfo"
-  , sContexts =
-      fromList
-        [ ( "Normal Text"
-          , Context
-              { cName = "Normal Text"
-              , cSyntax = "Texinfo"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@c(omment)?\\b"
-                              , reCompiled = Just (compileRegex True "@c(omment)?\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Texinfo" , "singleLineComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@ignore\\b"
-                              , reCompiled = Just (compileRegex True "@ignore\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Texinfo" , "multiLineComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@node\\b"
-                              , reCompiled = Just (compileRegex True "@node\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Texinfo" , "nodeFolding" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@(menu|smallexample|table|multitable)\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "@(menu|smallexample|table|multitable)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Texinfo" , "folding" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@[\\w]+(\\{([\\w]+[\\s]*)+\\})?"
-                              , reCompiled =
-                                  Just (compileRegex True "@[\\w]+(\\{([\\w]+[\\s]*)+\\})?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "folding"
-          , Context
-              { cName = "folding"
-              , cSyntax = "Texinfo"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@end (menu|smallexample|table|multitable)\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "@end (menu|smallexample|table|multitable)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Texinfo" , "Normal Text" )
-                      , 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
-              }
-          )
-        , ( "multiLineComment"
-          , Context
-              { cName = "multiLineComment"
-              , cSyntax = "Texinfo"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "@end ignore"
-                      , 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 = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "nodeFolding"
-          , Context
-              { cName = "nodeFolding"
-              , cSyntax = "Texinfo"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@node\\b"
-                              , reCompiled = Just (compileRegex True "@node\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Texinfo" , "Normal Text" )
-                      , 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
-              }
-          )
-        , ( "singleLineComment"
-          , Context
-              { cName = "singleLineComment"
-              , cSyntax = "Texinfo"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Daniel Franke (franke.daniel@gmail.com)"
-  , sVersion = "1"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.texi" ]
-  , sStartingContext = "Normal Text"
-  }
+syntax = read $! "Syntax {sName = \"Texinfo\", sFilename = \"texinfo.xml\", sShortname = \"Texinfo\", sContexts = fromList [(\"Normal Text\",Context {cName = \"Normal Text\", cSyntax = \"Texinfo\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"@c(omment)?\\\\b\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Texinfo\",\"singleLineComment\")]},Rule {rMatcher = RegExpr (RE {reString = \"@ignore\\\\b\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Texinfo\",\"multiLineComment\")]},Rule {rMatcher = RegExpr (RE {reString = \"@node\\\\b\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Texinfo\",\"nodeFolding\")]},Rule {rMatcher = RegExpr (RE {reString = \"@(menu|smallexample|table|multitable)\\\\b\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Texinfo\",\"folding\")]},Rule {rMatcher = RegExpr (RE {reString = \"@[\\\\w]+(\\\\{([\\\\w]+[\\\\s]*)+\\\\})?\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"folding\",Context {cName = \"folding\", cSyntax = \"Texinfo\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"@end (menu|smallexample|table|multitable)\\\\b\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Texinfo\",\"Normal Text\"), 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}),(\"multiLineComment\",Context {cName = \"multiLineComment\", cSyntax = \"Texinfo\", cRules = [Rule {rMatcher = StringDetect \"@end ignore\", 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 = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"nodeFolding\",Context {cName = \"nodeFolding\", cSyntax = \"Texinfo\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"@node\\\\b\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Texinfo\",\"Normal Text\"), 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}),(\"singleLineComment\",Context {cName = \"singleLineComment\", cSyntax = \"Texinfo\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Daniel Franke (franke.daniel@gmail.com)\", sVersion = \"1\", sLicense = \"LGPL\", sExtensions = [\"*.texi\"], sStartingContext = \"Normal Text\"}"
diff --git a/src/Skylighting/Syntax/Verilog.hs b/src/Skylighting/Syntax/Verilog.hs
--- a/src/Skylighting/Syntax/Verilog.hs
+++ b/src/Skylighting/Syntax/Verilog.hs
@@ -2,881 +2,6 @@
 module Skylighting.Syntax.Verilog (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "Verilog"
-  , sFilename = "verilog.xml"
-  , sShortname = "Verilog"
-  , sContexts =
-      fromList
-        [ ( "Block name"
-          , Context
-              { cName = "Block name"
-              , cSyntax = "Verilog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Commentar 1"
-          , Context
-              { cName = "Commentar 1"
-              , cSyntax = "Verilog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Commentar 2"
-          , Context
-              { cName = "Commentar 2"
-              , cSyntax = "Verilog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , 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 ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Commentar/Preprocessor"
-          , Context
-              { cName = "Commentar/Preprocessor"
-              , cSyntax = "Verilog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal"
-          , Context
-              { cName = "Normal"
-              , cSyntax = "Verilog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "begin\\ *:"
-                              , reCompiled = Just (compileRegex True "begin\\ *:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Verilog" , "Block name" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "fork\\ *:"
-                              , reCompiled = Just (compileRegex True "fork\\ *:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Verilog" , "Block name" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "begin"
-                               , "case"
-                               , "casex"
-                               , "casez"
-                               , "fork"
-                               , "function"
-                               , "generate"
-                               , "module"
-                               , "task"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "end"
-                               , "endcase"
-                               , "endfunction"
-                               , "endgenerate"
-                               , "endmodule"
-                               , "endtask"
-                               , "join"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "always"
-                               , "assign"
-                               , "cell"
-                               , "config"
-                               , "deassign"
-                               , "default"
-                               , "defparam"
-                               , "design"
-                               , "disable"
-                               , "edge"
-                               , "else"
-                               , "endconfig"
-                               , "endspecify"
-                               , "endtable"
-                               , "for"
-                               , "force"
-                               , "forever"
-                               , "if"
-                               , "ifnone"
-                               , "initial"
-                               , "instance"
-                               , "liblist"
-                               , "library"
-                               , "macromodule"
-                               , "negedge"
-                               , "posedge"
-                               , "release"
-                               , "repeat"
-                               , "specify"
-                               , "specparam"
-                               , "table"
-                               , "use"
-                               , "wait"
-                               , "while"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "automatic"
-                               , "event"
-                               , "genvar"
-                               , "inout"
-                               , "input"
-                               , "integer"
-                               , "localparam"
-                               , "output"
-                               , "parameter"
-                               , "real"
-                               , "realtime"
-                               , "reg"
-                               , "scalared"
-                               , "signed"
-                               , "supply0"
-                               , "supply1"
-                               , "time"
-                               , "tri"
-                               , "tri0"
-                               , "tri1"
-                               , "triand"
-                               , "trior"
-                               , "trireg"
-                               , "vectored"
-                               , "wand"
-                               , "wire"
-                               , "wor"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "highz0"
-                               , "highz1"
-                               , "large"
-                               , "medium"
-                               , "pull0"
-                               , "pull1"
-                               , "small"
-                               , "strong0"
-                               , "strong1"
-                               , "weak0"
-                               , "weak1"
-                               ])
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "and"
-                               , "buf"
-                               , "bufif0"
-                               , "bufif1"
-                               , "cmos"
-                               , "nand"
-                               , "nmos"
-                               , "nor"
-                               , "not"
-                               , "notif0"
-                               , "notif1"
-                               , "or"
-                               , "pmos"
-                               , "pulldown"
-                               , "pullup"
-                               , "rcmos"
-                               , "rnmos"
-                               , "rpmos"
-                               , "rtran"
-                               , "rtranif0"
-                               , "rtranif1"
-                               , "tran"
-                               , "tranif0"
-                               , "tranif1"
-                               , "xnor"
-                               , "xor"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\d_]*'d[\\d_]+"
-                              , reCompiled = Just (compileRegex True "[\\d_]*'d[\\d_]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\d_]*'o[0-7xXzZ_]+"
-                              , reCompiled = Just (compileRegex True "[\\d_]*'o[0-7xXzZ_]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\d_]*'h[\\da-fA-FxXzZ_]+"
-                              , reCompiled =
-                                  Just (compileRegex True "[\\d_]*'h[\\da-fA-FxXzZ_]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\d_]*'b[01_zZxX]+"
-                              , reCompiled = Just (compileRegex True "[\\d_]*'b[01_zZxX]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[a-zA-Z0-9_, \\t]+\\s*:"
-                              , reCompiled = Just (compileRegex True "[a-zA-Z0-9_, \\t]+\\s*:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Verilog" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Verilog" , "Commentar 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Verilog" , "Commentar 2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "!%&()+,-<=+/:;>?[]^{|}~@"
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Verilog" , "Preprocessor" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\`[a-zA-Z_]+\\w*"
-                              , reCompiled = Just (compileRegex True "\\`[a-zA-Z_]+\\w*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$[a-zA-Z_]+\\w*"
-                              , reCompiled = Just (compileRegex True "\\$[a-zA-Z_]+\\w*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "#[\\d_]+"
-                              , reCompiled = Just (compileRegex True "#[\\d_]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Port"
-          , Context
-              { cName = "Port"
-              , cSyntax = "Verilog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Preprocessor"
-          , Context
-              { cName = "Preprocessor"
-              , cSyntax = "Verilog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Verilog" , "Some Context" ) ]
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '"' '"'
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '<' '>'
-                      , rAttribute = FloatTok
-                      , 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 ( "Verilog" , "Commentar 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "Verilog" , "Commentar/Preprocessor" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Some Context"
-          , Context
-              { cName = "Some Context"
-              , cSyntax = "Verilog"
-              , cRules = []
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Some Context2"
-          , Context
-              { cName = "Some Context2"
-              , cSyntax = "Verilog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "#endif"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Verilog"
-              , cRules =
-                  [ Rule
-                      { rMatcher = LineContinue
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Verilog" , "Some Context" ) ]
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor =
-      "Yevgen Voronenko (ysv22@drexel.edu), Ryan Dalzell (ryan@tullyroan.com)"
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.v" , "*.V" , "*.vl" ]
-  , sStartingContext = "Normal"
-  }
+syntax = read $! "Syntax {sName = \"Verilog\", sFilename = \"verilog.xml\", sShortname = \"Verilog\", sContexts = fromList [(\"Block name\",Context {cName = \"Block name\", cSyntax = \"Verilog\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Commentar 1\",Context {cName = \"Commentar 1\", cSyntax = \"Verilog\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Commentar 2\",Context {cName = \"Commentar 2\", cSyntax = \"Verilog\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), 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]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Commentar/Preprocessor\",Context {cName = \"Commentar/Preprocessor\", cSyntax = \"Verilog\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal\",Context {cName = \"Normal\", cSyntax = \"Verilog\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"begin\\\\ *:\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Verilog\",\"Block name\")]},Rule {rMatcher = RegExpr (RE {reString = \"fork\\\\ *:\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Verilog\",\"Block name\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"begin\",\"case\",\"casex\",\"casez\",\"fork\",\"function\",\"generate\",\"module\",\"task\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"end\",\"endcase\",\"endfunction\",\"endgenerate\",\"endmodule\",\"endtask\",\"join\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"always\",\"assign\",\"cell\",\"config\",\"deassign\",\"default\",\"defparam\",\"design\",\"disable\",\"edge\",\"else\",\"endconfig\",\"endspecify\",\"endtable\",\"for\",\"force\",\"forever\",\"if\",\"ifnone\",\"initial\",\"instance\",\"liblist\",\"library\",\"macromodule\",\"negedge\",\"posedge\",\"release\",\"repeat\",\"specify\",\"specparam\",\"table\",\"use\",\"wait\",\"while\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"automatic\",\"event\",\"genvar\",\"inout\",\"input\",\"integer\",\"localparam\",\"output\",\"parameter\",\"real\",\"realtime\",\"reg\",\"scalared\",\"signed\",\"supply0\",\"supply1\",\"time\",\"tri\",\"tri0\",\"tri1\",\"triand\",\"trior\",\"trireg\",\"vectored\",\"wand\",\"wire\",\"wor\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"highz0\",\"highz1\",\"large\",\"medium\",\"pull0\",\"pull1\",\"small\",\"strong0\",\"strong1\",\"weak0\",\"weak1\"])), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"and\",\"buf\",\"bufif0\",\"bufif1\",\"cmos\",\"nand\",\"nmos\",\"nor\",\"not\",\"notif0\",\"notif1\",\"or\",\"pmos\",\"pulldown\",\"pullup\",\"rcmos\",\"rnmos\",\"rpmos\",\"rtran\",\"rtranif0\",\"rtranif1\",\"tran\",\"tranif0\",\"tranif1\",\"xnor\",\"xor\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\d_]*'d[\\\\d_]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\d_]*'o[0-7xXzZ_]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\d_]*'h[\\\\da-fA-FxXzZ_]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\d_]*'b[01_zZxX]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[a-zA-Z0-9_, \\\\t]+\\\\s*:\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Verilog\",\"String\")]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Verilog\",\"Commentar 1\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Verilog\",\"Commentar 2\")]},Rule {rMatcher = AnyChar \"!%&()+,-<=+/:;>?[]^{|}~@\", rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '`', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Verilog\",\"Preprocessor\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\`[a-zA-Z_]+\\\\w*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[a-zA-Z_]+\\\\w*\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"#[\\\\d_]+\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Port\",Context {cName = \"Port\", cSyntax = \"Verilog\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Preprocessor\",Context {cName = \"Preprocessor\", cSyntax = \"Verilog\", cRules = [Rule {rMatcher = LineContinue, rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Verilog\",\"Some Context\")]},Rule {rMatcher = RangeDetect '\"' '\"', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RangeDetect '<' '>', rAttribute = FloatTok, 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 (\"Verilog\",\"Commentar 1\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Verilog\",\"Commentar/Preprocessor\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Some Context\",Context {cName = \"Some Context\", cSyntax = \"Verilog\", cRules = [], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Some Context2\",Context {cName = \"Some Context2\", cSyntax = \"Verilog\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"#endif\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Verilog\", cRules = [Rule {rMatcher = LineContinue, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Verilog\",\"Some Context\")]},Rule {rMatcher = HlCStringChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Yevgen Voronenko (ysv22@drexel.edu), Ryan Dalzell (ryan@tullyroan.com)\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.v\",\"*.V\",\"*.vl\"], sStartingContext = \"Normal\"}"
diff --git a/src/Skylighting/Syntax/Vhdl.hs b/src/Skylighting/Syntax/Vhdl.hs
--- a/src/Skylighting/Syntax/Vhdl.hs
+++ b/src/Skylighting/Syntax/Vhdl.hs
@@ -2,3607 +2,6 @@
 module Skylighting.Syntax.Vhdl (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "VHDL"
-  , sFilename = "vhdl.xml"
-  , sShortname = "Vhdl"
-  , sContexts =
-      fromList
-        [ ( "arch_decl"
-          , Context
-              { cName = "arch_decl"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , 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
-                               [ "attribute" , "constant" , "signal" , "type" , "variable" ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "signal" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "function"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "archfunc1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "component"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "entity" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "begin"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "generalDetection" )
-                      , 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
-              }
-          )
-        , ( "arch_start"
-          , Context
-              { cName = "arch_start"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)is\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)is\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "arch_decl" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)%2\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)%4\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "generalDetection" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "archfunc1"
-          , Context
-              { cName = "archfunc1"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)begin\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)begin\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "archfunc2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)end(\\s+function)?(\\s+%2)?\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)%2\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "generalDetection" )
-                      , 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 = True
-              }
-          )
-        , ( "archfunc2"
-          , Context
-              { cName = "archfunc2"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)end(\\s+function)?\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)begin\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)begin\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "proc_rules" )
-                      , 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 = True
-              }
-          )
-        , ( "architecture_main"
-          , Context
-              { cName = "architecture_main"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b)architecture\\s+(\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)\\s+of\\s+(\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)\\s+is"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "arch_start" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)end(\\s+architecture)?(\\s+%2)?\\s*;"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b)end(\\s+architecture)?(\\s+\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)\\s*;"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "detect_arch_parts" )
-                      , 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 = True
-              }
-          )
-        , ( "attribute"
-          , Context
-              { cName = "attribute"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "quot in att" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "quot in att" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ' '
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ")=<>"
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = BaseNTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "case1"
-          , Context
-              { cName = "case1"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)is\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)is\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "case2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet False [ "case" , "when" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "generalDetection" )
-                      , 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
-              }
-          )
-        , ( "case2"
-          , Context
-              { cName = "case2"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b)end\\s+case(\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)?\\s*;"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "(\\b)end\\s+case(\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)?\\s*;")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b)when(\\s+\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)?\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "caseWhen" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "proc_rules" )
-                      , 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
-              }
-          )
-        , ( "caseWhen"
-          , Context
-              { cName = "caseWhen"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '=' '>'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "caseWhen2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)when\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)when\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)%2\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "proc_rules" )
-                      , 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 = True
-              }
-          )
-        , ( "caseWhen2"
-          , Context
-              { cName = "caseWhen2"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*when\\b"
-                              , reCompiled = Just (compileRegex False "\\s*when\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*end\\s+case\\b"
-                              , reCompiled = Just (compileRegex False "\\s*end\\s+case\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "proc_rules" )
-                      , 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 = True
-              }
-          )
-        , ( "comment"
-          , Context
-              { cName = "comment"
-              , cSyntax = "VHDL"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "conf_decl"
-          , Context
-              { cName = "conf_decl"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "for"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "conf_for" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "end"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "generalDetection" )
-                      , 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
-              }
-          )
-        , ( "conf_for"
-          , Context
-              { cName = "conf_for"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "for"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "conf_for" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "end(\\s+\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "end(\\s+\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "generalDetection" )
-                      , 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
-              }
-          )
-        , ( "conf_start"
-          , Context
-              { cName = "conf_start"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)is\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)is\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "conf_decl" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)%2\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)%4\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "generalDetection" )
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "configuration"
-          , Context
-              { cName = "configuration"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b)configuration\\s+(\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)\\s+of\\s+(\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)\\s+is"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "conf_start" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)end(\\s+configuration)?(\\s+%2)?\\s*;"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b)end(\\s+configuration)?(\\s+\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)\\s*;"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "detect_arch_parts"
-          , Context
-              { cName = "detect_arch_parts"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b)(\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b\\s*:\\s*)(if|for).*\\s+generate\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "generate1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b)(\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b\\s*:\\s*)?process\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "process1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b)(\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)\\s*:\\s*((entity\\s+)?(\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)(\\.\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)?)"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "instance" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "generalDetection" )
-                      , 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 = True
-              }
-          )
-        , ( "entity"
-          , Context
-              { cName = "entity"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "(\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "entity_main" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "generalDetection" )
-                      , 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 = True
-              }
-          )
-        , ( "entity_main"
-          , Context
-              { cName = "entity_main"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)end(\\s+(entity|component))?(\\s+%1)?\\s*;"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b)end(\\s+(entity|component))?(\\s+\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)?\\s*;"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "generic"
-                              , reCompiled = Just (compileRegex False "generic")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "port"
-                              , reCompiled = Just (compileRegex False "port")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "generalDetection" )
-                      , 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 = True
-              }
-          )
-        , ( "forwhile1"
-          , Context
-              { cName = "forwhile1"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)loop\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)loop\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "forwhile2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)%3\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)(for|while)\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)(for|while)\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "generalDetection" )
-                      , 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 = True
-              }
-          )
-        , ( "forwhile2"
-          , Context
-              { cName = "forwhile2"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)begin\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)begin\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b)end\\s+loop(\\s+\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "(\\b)end\\s+loop(\\s+\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "proc_rules" )
-                      , 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 = True
-              }
-          )
-        , ( "generalDetection"
-          , Context
-              { cName = "generalDetection"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "bit"
-                               , "bit_vector"
-                               , "boolean"
-                               , "boolean_vector"
-                               , "character"
-                               , "delay_length"
-                               , "file_open_kind"
-                               , "file_open_status"
-                               , "integer"
-                               , "integer_vector"
-                               , "line"
-                               , "mux_bit"
-                               , "mux_vector"
-                               , "natural"
-                               , "positive"
-                               , "qsim_12state"
-                               , "qsim_12state_vector"
-                               , "qsim_state"
-                               , "qsim_state_vector"
-                               , "qsim_strength"
-                               , "real"
-                               , "real_vector"
-                               , "reg_bit"
-                               , "reg_vector"
-                               , "severity_level"
-                               , "side"
-                               , "signed"
-                               , "std_logic"
-                               , "std_logic_vector"
-                               , "std_ulogic"
-                               , "std_ulogic_vector"
-                               , "string"
-                               , "text"
-                               , "time"
-                               , "time_vector"
-                               , "unresolved_signed"
-                               , "unresolved_unsigned"
-                               , "unsigned"
-                               , "ux01"
-                               , "ux01z"
-                               , "width"
-                               , "wor_bit"
-                               , "wor_vector"
-                               , "x01"
-                               , "x01z"
-                               ])
-                      , 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 [ "fs" , "hr" , "min" , "ms" , "ns" , "ps" , "sec" , "us" ])
-                      , 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
-                               [ "attribute" , "constant" , "signal" , "type" , "variable" ])
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "signal" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet False [ "downto" , "others" , "to" ])
-                      , rAttribute = OtherTok
-                      , 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
-                               [ "abs"
-                               , "access"
-                               , "after"
-                               , "alias"
-                               , "all"
-                               , "and"
-                               , "array"
-                               , "assert"
-                               , "assume"
-                               , "assume_guarantee"
-                               , "attribute"
-                               , "begin"
-                               , "block"
-                               , "body"
-                               , "buffer"
-                               , "bus"
-                               , "component"
-                               , "constant"
-                               , "context"
-                               , "cover"
-                               , "default"
-                               , "disconnect"
-                               , "downto"
-                               , "end"
-                               , "error"
-                               , "exit"
-                               , "failure"
-                               , "fairness"
-                               , "falling_edge"
-                               , "file"
-                               , "for"
-                               , "force"
-                               , "function"
-                               , "generate"
-                               , "generic"
-                               , "group"
-                               , "guarded"
-                               , "impure"
-                               , "in"
-                               , "inertial"
-                               , "inout"
-                               , "is"
-                               , "label"
-                               , "linkage"
-                               , "literal"
-                               , "map"
-                               , "mod"
-                               , "nand"
-                               , "new"
-                               , "next"
-                               , "nor"
-                               , "not"
-                               , "note"
-                               , "null"
-                               , "of"
-                               , "on"
-                               , "open"
-                               , "or"
-                               , "others"
-                               , "out"
-                               , "parameter"
-                               , "port"
-                               , "postponed"
-                               , "procedure"
-                               , "process"
-                               , "property"
-                               , "protected"
-                               , "pure"
-                               , "range"
-                               , "record"
-                               , "register"
-                               , "reject"
-                               , "release"
-                               , "rem"
-                               , "report"
-                               , "return"
-                               , "rising_edge"
-                               , "rol"
-                               , "ror"
-                               , "select"
-                               , "sequence"
-                               , "severity"
-                               , "shared"
-                               , "signal"
-                               , "sla"
-                               , "sll"
-                               , "sra"
-                               , "srl"
-                               , "strong"
-                               , "subtype"
-                               , "to"
-                               , "transport"
-                               , "type"
-                               , "unaffected"
-                               , "units"
-                               , "until"
-                               , "variable"
-                               , "vmode"
-                               , "vprop"
-                               , "vunit"
-                               , "wait"
-                               , "warning"
-                               , "when"
-                               , "with"
-                               , "xnor"
-                               , "xor"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCChar
-                      , rAttribute = CharTok
-                      , 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 = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "generate1"
-          , Context
-              { cName = "generate1"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)(generate|loop)\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)(generate|loop)\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "generate2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)%3\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)(for|if|while)\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)(for|if|while)\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "generalDetection" )
-                      , 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 = True
-              }
-          )
-        , ( "generate2"
-          , Context
-              { cName = "generate2"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)begin\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)begin\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b)end\\s+(generate|loop)(\\s+\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "(\\b)end\\s+(generate|loop)(\\s+\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)?")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "detect_arch_parts" )
-                      , 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 = True
-              }
-          )
-        , ( "if"
-          , Context
-              { cName = "if"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b)end\\s+if(\\s+\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)?\\s*;"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "(\\b)end\\s+if(\\s+\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)?\\s*;")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "proc_rules" )
-                      , rAttribute = NormalTok
-                      , 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 [ "else" , "elsif" , "if" , "then" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "if_start"
-          , Context
-              { cName = "if_start"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)then\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)then\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "if" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "generalDetection" )
-                      , 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 = True
-              }
-          )
-        , ( "instance"
-          , Context
-              { cName = "instance"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)%4\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)%3\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)(port|generic)\\s+map\\s*\\("
-                              , reCompiled =
-                                  Just (compileRegex True "(\\b)(port|generic)\\s+map\\s*\\(")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "instanceMap" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ';'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "generalDetection" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "instanceInnerPar"
-          , Context
-              { cName = "instanceInnerPar"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "instanceInnerPar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ';'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "generalDetection" )
-                      , 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 = True
-              }
-          )
-        , ( "instanceMap"
-          , Context
-              { cName = "instanceMap"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = AnyChar "<;:"
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ':'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "instanceInnerPar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "generalDetection" )
-                      , 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 = True
-              }
-          )
-        , ( "package"
-          , Context
-              { cName = "package"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)package\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)package\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)is\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)is\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "packagemain" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)%2\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)end(\\s+package)?(\\s+%2)?\\s*;"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "generalDetection" )
-                      , 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 = True
-              }
-          )
-        , ( "packagebody"
-          , Context
-              { cName = "packagebody"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)package\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)package\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)is\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)is\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "packagebodymain" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)%2\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)end(\\s+package)?(\\s+%2)?\\s*;"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "generalDetection" )
-                      , 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 = True
-              }
-          )
-        , ( "packagebodyfunc1"
-          , Context
-              { cName = "packagebodyfunc1"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)begin\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)begin\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "packagebodyfunc2" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)end(\\s+function)?(\\s+%2)?\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)%2\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "generalDetection" )
-                      , 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 = True
-              }
-          )
-        , ( "packagebodyfunc2"
-          , Context
-              { cName = "packagebodyfunc2"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)end(\\s+function)?\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)begin\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)begin\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "proc_rules" )
-                      , 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 = True
-              }
-          )
-        , ( "packagebodymain"
-          , Context
-              { cName = "packagebodymain"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)end\\s+package\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)end\\s+package\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b)function\\s+(\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "packagebodyfunc1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "generalDetection" )
-                      , 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 = True
-              }
-          )
-        , ( "packagefunction"
-          , Context
-              { cName = "packagefunction"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b)\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b\\b"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "(\\b)\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "packagemain"
-          , Context
-              { cName = "packagemain"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)end\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)end\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)function\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)function\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "packagefunction" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "generalDetection" )
-                      , 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 = True
-              }
-          )
-        , ( "preDetection"
-          , Context
-              { cName = "preDetection"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '-' '-'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "string" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "[&><=:+\\-*\\/|].,"
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "attribute" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "proc_rules"
-          , Context
-              { cName = "proc_rules"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b)\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b(?=\\s*:(?!=))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       False
-                                       "(\\b)\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b(?=\\s*:(?!=))")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)if\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)if\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "if_start" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)case\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)case\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "case1" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b)((\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)\\s*:\\s*)?((for|while)\\s+.+\\s+)loop\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "forwhile1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "generalDetection" )
-                      , 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 = True
-              }
-          )
-        , ( "process1"
-          , Context
-              { cName = "process1"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)end\\s+process(\\s+%3)?"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b)end\\s+process(\\s+\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)?"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)process\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)process\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(\\b)begin\\b"
-                              , reCompiled = Just (compileRegex False "(\\b)begin\\b")
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "proc_rules" )
-                      , 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 = True
-              }
-          )
-        , ( "quot in att"
-          , Context
-              { cName = "quot in att"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = BaseNTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "signal"
-          , Context
-              { cName = "signal"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ';'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "generalDetection" )
-                      , 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
-              }
-          )
-        , ( "start"
-          , Context
-              { cName = "start"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "VHDL" , "preDetection" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b)architecture\\s+(\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "architecture_main" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "entity"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "entity" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b)package\\s+(\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)\\s+is\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "package" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b)package\\s+body\\s+(\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)\\s+is\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "packagebody" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(\\b)configuration\\s+(\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\b)\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = False
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "VHDL" , "configuration" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet False [ "file" , "library" , "use" ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "string"
-          , Context
-              { cName = "string"
-              , cSyntax = "VHDL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor =
-      "Rocky Scaletta (rocky@purdue.edu), Stefan Endrullis (stefan@endrullis.de), Florent Ouchet (outchy@users.sourceforge.net), Chris Higgs (chiggs.99@gmail.com), Jan Michel (jan@mueschelsoft.de), Luigi Calligaris (luigi.calligaris@stfc.ac.uk)"
-  , sVersion = "2"
-  , sLicense = ""
-  , sExtensions = [ "*.vhdl" , "*.vhd" ]
-  , sStartingContext = "start"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"VHDL\", sFilename = \"vhdl.xml\", sShortname = \"Vhdl\", sContexts = fromList [(\"arch_decl\",Context {cName = \"arch_decl\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"attribute\",\"constant\",\"signal\",\"type\",\"variable\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"signal\")]},Rule {rMatcher = StringDetect \"function\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"archfunc1\")]},Rule {rMatcher = StringDetect \"component\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"entity\")]},Rule {rMatcher = StringDetect \"begin\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"VHDL\",\"generalDetection\"), 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}),(\"arch_start\",Context {cName = \"arch_start\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)is\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"arch_decl\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)%2\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)%4\\\\b\", reCaseSensitive = False}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"VHDL\",\"generalDetection\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"archfunc1\",Context {cName = \"archfunc1\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)begin\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"archfunc2\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)end(\\\\s+function)?(\\\\s+%2)?\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)%2\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"VHDL\",\"generalDetection\"), 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 = True}),(\"archfunc2\",Context {cName = \"archfunc2\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)end(\\\\s+function)?\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)begin\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"VHDL\",\"proc_rules\"), 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 = True}),(\"architecture_main\",Context {cName = \"architecture_main\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)architecture\\\\s+(\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)\\\\s+of\\\\s+(\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)\\\\s+is\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"arch_start\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)end(\\\\s+architecture)?(\\\\s+%2)?\\\\s*;\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)end(\\\\s+architecture)?(\\\\s+\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)\\\\s*;\", reCaseSensitive = False}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"VHDL\",\"detect_arch_parts\"), 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 = True}),(\"attribute\",Context {cName = \"attribute\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"quot in att\")]},Rule {rMatcher = DetectChar '\"', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"quot in att\")]},Rule {rMatcher = DetectChar ' ', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\\'', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = AnyChar \")=<>\", rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = BaseNTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"case1\",Context {cName = \"case1\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)is\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"case2\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"case\",\"when\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"VHDL\",\"generalDetection\"), 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}),(\"case2\",Context {cName = \"case2\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)end\\\\s+case(\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)?\\\\s*;\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)when(\\\\s+\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)?\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"caseWhen\")]},Rule {rMatcher = IncludeRules (\"VHDL\",\"proc_rules\"), 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}),(\"caseWhen\",Context {cName = \"caseWhen\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = Detect2Chars '=' '>', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"caseWhen2\")]},Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)when\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)%2\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"VHDL\",\"proc_rules\"), 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 = True}),(\"caseWhen2\",Context {cName = \"caseWhen2\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*when\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*end\\\\s+case\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"VHDL\",\"proc_rules\"), 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 = True}),(\"comment\",Context {cName = \"comment\", cSyntax = \"VHDL\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"conf_decl\",Context {cName = \"conf_decl\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"for\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"conf_for\")]},Rule {rMatcher = StringDetect \"end\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"VHDL\",\"generalDetection\"), 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}),(\"conf_for\",Context {cName = \"conf_for\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"for\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"conf_for\")]},Rule {rMatcher = RegExpr (RE {reString = \"end(\\\\s+\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)?\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"VHDL\",\"generalDetection\"), 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}),(\"conf_start\",Context {cName = \"conf_start\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)is\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"conf_decl\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)%2\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)%4\\\\b\", reCaseSensitive = False}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"VHDL\",\"generalDetection\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"configuration\",Context {cName = \"configuration\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)configuration\\\\s+(\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)\\\\s+of\\\\s+(\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)\\\\s+is\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"conf_start\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)end(\\\\s+configuration)?(\\\\s+%2)?\\\\s*;\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)end(\\\\s+configuration)?(\\\\s+\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)\\\\s*;\", reCaseSensitive = False}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"detect_arch_parts\",Context {cName = \"detect_arch_parts\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)(\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b\\\\s*:\\\\s*)(if|for).*\\\\s+generate\\\\b\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"generate1\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)(\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b\\\\s*:\\\\s*)?process\\\\b\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"process1\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)(\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)\\\\s*:\\\\s*((entity\\\\s+)?(\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)(\\\\.\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)?)\", reCaseSensitive = False}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"instance\")]},Rule {rMatcher = IncludeRules (\"VHDL\",\"generalDetection\"), 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 = True}),(\"entity\",Context {cName = \"entity\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"entity_main\")]},Rule {rMatcher = IncludeRules (\"VHDL\",\"generalDetection\"), 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 = True}),(\"entity_main\",Context {cName = \"entity_main\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)end(\\\\s+(entity|component))?(\\\\s+%1)?\\\\s*;\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)end(\\\\s+(entity|component))?(\\\\s+\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)?\\\\s*;\", reCaseSensitive = False}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"generic\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"port\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"VHDL\",\"generalDetection\"), 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 = True}),(\"forwhile1\",Context {cName = \"forwhile1\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)loop\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"forwhile2\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)%3\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)(for|while)\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"VHDL\",\"generalDetection\"), 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 = True}),(\"forwhile2\",Context {cName = \"forwhile2\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)begin\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)end\\\\s+loop(\\\\s+\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)?\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"VHDL\",\"proc_rules\"), 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 = True}),(\"generalDetection\",Context {cName = \"generalDetection\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"bit\",\"bit_vector\",\"boolean\",\"boolean_vector\",\"character\",\"delay_length\",\"file_open_kind\",\"file_open_status\",\"integer\",\"integer_vector\",\"line\",\"mux_bit\",\"mux_vector\",\"natural\",\"positive\",\"qsim_12state\",\"qsim_12state_vector\",\"qsim_state\",\"qsim_state_vector\",\"qsim_strength\",\"real\",\"real_vector\",\"reg_bit\",\"reg_vector\",\"severity_level\",\"side\",\"signed\",\"std_logic\",\"std_logic_vector\",\"std_ulogic\",\"std_ulogic_vector\",\"string\",\"text\",\"time\",\"time_vector\",\"unresolved_signed\",\"unresolved_unsigned\",\"unsigned\",\"ux01\",\"ux01z\",\"width\",\"wor_bit\",\"wor_vector\",\"x01\",\"x01z\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"fs\",\"hr\",\"min\",\"ms\",\"ns\",\"ps\",\"sec\",\"us\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"attribute\",\"constant\",\"signal\",\"type\",\"variable\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"signal\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"downto\",\"others\",\"to\"])), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"abs\",\"access\",\"after\",\"alias\",\"all\",\"and\",\"array\",\"assert\",\"assume\",\"assume_guarantee\",\"attribute\",\"begin\",\"block\",\"body\",\"buffer\",\"bus\",\"component\",\"constant\",\"context\",\"cover\",\"default\",\"disconnect\",\"downto\",\"end\",\"error\",\"exit\",\"failure\",\"fairness\",\"falling_edge\",\"file\",\"for\",\"force\",\"function\",\"generate\",\"generic\",\"group\",\"guarded\",\"impure\",\"in\",\"inertial\",\"inout\",\"is\",\"label\",\"linkage\",\"literal\",\"map\",\"mod\",\"nand\",\"new\",\"next\",\"nor\",\"not\",\"note\",\"null\",\"of\",\"on\",\"open\",\"or\",\"others\",\"out\",\"parameter\",\"port\",\"postponed\",\"procedure\",\"process\",\"property\",\"protected\",\"pure\",\"range\",\"record\",\"register\",\"reject\",\"release\",\"rem\",\"report\",\"return\",\"rising_edge\",\"rol\",\"ror\",\"select\",\"sequence\",\"severity\",\"shared\",\"signal\",\"sla\",\"sll\",\"sra\",\"srl\",\"strong\",\"subtype\",\"to\",\"transport\",\"type\",\"unaffected\",\"units\",\"until\",\"variable\",\"vmode\",\"vprop\",\"vunit\",\"wait\",\"warning\",\"when\",\"with\",\"xnor\",\"xor\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCChar, rAttribute = CharTok, 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 = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"generate1\",Context {cName = \"generate1\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)(generate|loop)\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"generate2\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)%3\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)(for|if|while)\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"VHDL\",\"generalDetection\"), 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 = True}),(\"generate2\",Context {cName = \"generate2\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)begin\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)end\\\\s+(generate|loop)(\\\\s+\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)?\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"VHDL\",\"detect_arch_parts\"), 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 = True}),(\"if\",Context {cName = \"if\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)end\\\\s+if(\\\\s+\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)?\\\\s*;\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"VHDL\",\"proc_rules\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"else\",\"elsif\",\"if\",\"then\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"if_start\",Context {cName = \"if_start\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)then\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"if\")]},Rule {rMatcher = IncludeRules (\"VHDL\",\"generalDetection\"), 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 = True}),(\"instance\",Context {cName = \"instance\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)%4\\\\b\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)%3\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)(port|generic)\\\\s+map\\\\s*\\\\(\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"instanceMap\")]},Rule {rMatcher = DetectChar ';', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"VHDL\",\"generalDetection\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"instanceInnerPar\",Context {cName = \"instanceInnerPar\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"instanceInnerPar\")]},Rule {rMatcher = DetectChar ';', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"VHDL\",\"generalDetection\"), 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 = True}),(\"instanceMap\",Context {cName = \"instanceMap\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = AnyChar \"<;:\", rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ':', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"instanceInnerPar\")]},Rule {rMatcher = IncludeRules (\"VHDL\",\"generalDetection\"), 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 = True}),(\"package\",Context {cName = \"package\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)package\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)is\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"packagemain\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)%2\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)end(\\\\s+package)?(\\\\s+%2)?\\\\s*;\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"VHDL\",\"generalDetection\"), 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 = True}),(\"packagebody\",Context {cName = \"packagebody\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)package\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)is\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"packagebodymain\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)%2\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)end(\\\\s+package)?(\\\\s+%2)?\\\\s*;\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"VHDL\",\"generalDetection\"), 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 = True}),(\"packagebodyfunc1\",Context {cName = \"packagebodyfunc1\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)begin\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"packagebodyfunc2\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)end(\\\\s+function)?(\\\\s+%2)?\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)%2\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"VHDL\",\"generalDetection\"), 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 = True}),(\"packagebodyfunc2\",Context {cName = \"packagebodyfunc2\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)end(\\\\s+function)?\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)begin\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"VHDL\",\"proc_rules\"), 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 = True}),(\"packagebodymain\",Context {cName = \"packagebodymain\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)end\\\\s+package\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)function\\\\s+(\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"packagebodyfunc1\")]},Rule {rMatcher = IncludeRules (\"VHDL\",\"generalDetection\"), 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 = True}),(\"packagefunction\",Context {cName = \"packagefunction\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"packagemain\",Context {cName = \"packagemain\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)end\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)function\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"packagefunction\")]},Rule {rMatcher = IncludeRules (\"VHDL\",\"generalDetection\"), 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 = True}),(\"preDetection\",Context {cName = \"preDetection\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = Detect2Chars '-' '-', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"comment\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"string\")]},Rule {rMatcher = AnyChar \"[&><=:+\\\\-*\\\\/|].,\", rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"attribute\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"proc_rules\",Context {cName = \"proc_rules\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b(?=\\\\s*:(?!=))\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)if\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"if_start\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)case\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"case1\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)((\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)\\\\s*:\\\\s*)?((for|while)\\\\s+.+\\\\s+)loop\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"forwhile1\")]},Rule {rMatcher = IncludeRules (\"VHDL\",\"generalDetection\"), 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 = True}),(\"process1\",Context {cName = \"process1\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)end\\\\s+process(\\\\s+%3)?\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)end\\\\s+process(\\\\s+\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)?\", reCaseSensitive = False}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)process\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)begin\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"VHDL\",\"proc_rules\"), 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 = True}),(\"quot in att\",Context {cName = \"quot in att\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = BaseNTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"signal\",Context {cName = \"signal\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ';', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"VHDL\",\"generalDetection\"), 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}),(\"start\",Context {cName = \"start\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = IncludeRules (\"VHDL\",\"preDetection\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)architecture\\\\s+(\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"architecture_main\")]},Rule {rMatcher = StringDetect \"entity\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"entity\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)package\\\\s+(\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)\\\\s+is\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"package\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)package\\\\s+body\\\\s+(\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)\\\\s+is\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"packagebody\")]},Rule {rMatcher = RegExpr (RE {reString = \"(\\\\b)configuration\\\\s+(\\\\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\\\\b)\\\\b\", reCaseSensitive = False}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = False, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"VHDL\",\"configuration\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"file\",\"library\",\"use\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"string\",Context {cName = \"string\", cSyntax = \"VHDL\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Rocky Scaletta (rocky@purdue.edu), Stefan Endrullis (stefan@endrullis.de), Florent Ouchet (outchy@users.sourceforge.net), Chris Higgs (chiggs.99@gmail.com), Jan Michel (jan@mueschelsoft.de), Luigi Calligaris (luigi.calligaris@stfc.ac.uk)\", sVersion = \"2\", sLicense = \"\", sExtensions = [\"*.vhdl\",\"*.vhd\"], sStartingContext = \"start\"}"
diff --git a/src/Skylighting/Syntax/Xml.hs b/src/Skylighting/Syntax/Xml.hs
--- a/src/Skylighting/Syntax/Xml.hs
+++ b/src/Skylighting/Syntax/Xml.hs
@@ -2,1104 +2,6 @@
 module Skylighting.Syntax.Xml (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "XML"
-  , sFilename = "xml.xml"
-  , sShortname = "Xml"
-  , sContexts =
-      fromList
-        [ ( "Attribute"
-          , Context
-              { cName = "Attribute"
-              , cSyntax = "XML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XML" , "Value" ) ]
-                      }
-                  , 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
-              }
-          )
-        , ( "CDATA"
-          , Context
-              { cName = "CDATA"
-              , cSyntax = "XML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "]]>"
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "]]&gt;"
-                      , rAttribute = DecValTok
-                      , 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 = "XML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "-->"
-                      , rAttribute = CommentTok
-                      , 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 = []
-                      }
-                  , 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
-              }
-          )
-        , ( "Doctype"
-          , Context
-              { cName = "Doctype"
-              , cSyntax = "XML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XML" , "Doctype Internal Subset" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Doctype Internal Subset"
-          , Context
-              { cName = "Doctype Internal Subset"
-              , cSyntax = "XML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<!(ELEMENT|ENTITY|ATTLIST|NOTATION)\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "<!(ELEMENT|ENTITY|ATTLIST|NOTATION)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XML" , "Doctype Markupdecl" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XML" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\?[\\w:_-]*"
-                              , reCompiled = Just (compileRegex True "<\\?[\\w:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XML" , "PI" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "XML" , "FindPEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "Doctype Markupdecl"
-          , Context
-              { cName = "Doctype Markupdecl"
-              , cSyntax = "XML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XML" , "Doctype Markupdecl DQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XML" , "Doctype Markupdecl SQ" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Doctype Markupdecl DQ"
-          , Context
-              { cName = "Doctype Markupdecl DQ"
-              , cSyntax = "XML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "XML" , "FindPEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "Doctype Markupdecl SQ"
-          , Context
-              { cName = "Doctype Markupdecl SQ"
-              , cSyntax = "XML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "XML" , "FindPEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "El Content"
-          , Context
-              { cName = "El Content"
-              , cSyntax = "XML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</(?![0-9])[\\w_:][\\w.:_-]*"
-                              , reCompiled =
-                                  Just (compileRegex True "</(?![0-9])[\\w_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XML" , "El End" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "XML" , "FindXML" )
-                      , 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
-              }
-          )
-        , ( "El End"
-          , Context
-              { cName = "El End"
-              , cSyntax = "XML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , 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
-              }
-          )
-        , ( "Element"
-          , Context
-              { cName = "Element"
-              , cSyntax = "XML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XML" , "El Content" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(?![0-9])[\\w_:][\\w.:_-]*"
-                              , reCompiled =
-                                  Just (compileRegex True "(?![0-9])[\\w_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "XML" , "Attribute" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s+(?![0-9])[\\w_:][\\w.:_-]*"
-                              , reCompiled =
-                                  Just (compileRegex True "\\s+(?![0-9])[\\w_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XML" , "Attribute" ) ]
-                      }
-                  , 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
-              }
-          )
-        , ( "FindEntityRefs"
-          , Context
-              { cName = "FindEntityRefs"
-              , cSyntax = "XML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "&(#[0-9]+|#[xX][0-9A-Fa-f]+|(?![0-9])[\\w_:][\\w.:_-]*);"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "&(#[0-9]+|#[xX][0-9A-Fa-f]+|(?![0-9])[\\w_:][\\w.:_-]*);")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "&<"
-                      , 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
-              }
-          )
-        , ( "FindPEntityRefs"
-          , Context
-              { cName = "FindPEntityRefs"
-              , cSyntax = "XML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "&(#[0-9]+|#[xX][0-9A-Fa-f]+|(?![0-9])[\\w_:][\\w.:_-]*);"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "&(#[0-9]+|#[xX][0-9A-Fa-f]+|(?![0-9])[\\w_:][\\w.:_-]*);")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%(?![0-9])[\\w_:][\\w.:_-]*;"
-                              , reCompiled =
-                                  Just (compileRegex True "%(?![0-9])[\\w_:][\\w.:_-]*;")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "&%"
-                      , 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
-              }
-          )
-        , ( "FindXML"
-          , Context
-              { cName = "FindXML"
-              , cSyntax = "XML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XML" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<![CDATA["
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XML" , "CDATA" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<!DOCTYPE\\s+"
-                              , reCompiled = Just (compileRegex True "<!DOCTYPE\\s+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XML" , "Doctype" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\?[\\w:_-]*"
-                              , reCompiled = Just (compileRegex True "<\\?[\\w:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XML" , "PI" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<(?![0-9])[\\w_:][\\w.:_-]*"
-                              , reCompiled =
-                                  Just (compileRegex True "<(?![0-9])[\\w_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XML" , "Element" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "XML" , "FindEntityRefs" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , 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
-              }
-          )
-        , ( "PI"
-          , Context
-              { cName = "PI"
-              , cSyntax = "XML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '?' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Start"
-          , Context
-              { cName = "Start"
-              , cSyntax = "XML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "XML" , "FindXML" )
-                      , 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
-              }
-          )
-        , ( "Value"
-          , Context
-              { cName = "Value"
-              , cSyntax = "XML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XML" , "Value DQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XML" , "Value SQ" ) ]
-                      }
-                  , 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
-              }
-          )
-        , ( "Value DQ"
-          , Context
-              { cName = "Value DQ"
-              , cSyntax = "XML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "XML" , "FindEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "Value SQ"
-          , Context
-              { cName = "Value SQ"
-              , cSyntax = "XML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "XML" , "FindEntityRefs" )
-                      , 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 = "5"
-  , sLicense = "LGPL"
-  , sExtensions =
-      [ "*.docbook"
-      , "*.xml"
-      , "*.rc"
-      , "*.daml"
-      , "*.rdf"
-      , "*.rss"
-      , "*.xspf"
-      , "*.xsd"
-      , "*.svg"
-      , "*.ui"
-      , "*.kcfg"
-      , "*.qrc"
-      , "*.wsdl"
-      , "*.scxml"
-      ]
-  , sStartingContext = "Start"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"XML\", sFilename = \"xml.xml\", sShortname = \"Xml\", sContexts = fromList [(\"Attribute\",Context {cName = \"Attribute\", cSyntax = \"XML\", cRules = [Rule {rMatcher = DetectChar '=', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XML\",\"Value\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"CDATA\",Context {cName = \"CDATA\", cSyntax = \"XML\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"]]>\", rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"]]&gt;\", rAttribute = DecValTok, 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 = \"XML\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"-->\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"-(-(?!->))+\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},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}),(\"Doctype\",Context {cName = \"Doctype\", cSyntax = \"XML\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '[', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XML\",\"Doctype Internal Subset\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Doctype Internal Subset\",Context {cName = \"Doctype Internal Subset\", cSyntax = \"XML\", cRules = [Rule {rMatcher = DetectChar ']', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"<!(ELEMENT|ENTITY|ATTLIST|NOTATION)\\\\b\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XML\",\"Doctype Markupdecl\")]},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XML\",\"Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\?[\\\\w:_-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XML\",\"PI\")]},Rule {rMatcher = IncludeRules (\"XML\",\"FindPEntityRefs\"), 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}),(\"Doctype Markupdecl\",Context {cName = \"Doctype Markupdecl\", cSyntax = \"XML\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XML\",\"Doctype Markupdecl DQ\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XML\",\"Doctype Markupdecl SQ\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Doctype Markupdecl DQ\",Context {cName = \"Doctype Markupdecl DQ\", cSyntax = \"XML\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"XML\",\"FindPEntityRefs\"), 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}),(\"Doctype Markupdecl SQ\",Context {cName = \"Doctype Markupdecl SQ\", cSyntax = \"XML\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"XML\",\"FindPEntityRefs\"), 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}),(\"El Content\",Context {cName = \"El Content\", cSyntax = \"XML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"</(?![0-9])[\\\\w_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XML\",\"El End\")]},Rule {rMatcher = IncludeRules (\"XML\",\"FindXML\"), 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}),(\"El End\",Context {cName = \"El End\", cSyntax = \"XML\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"Element\",Context {cName = \"Element\", cSyntax = \"XML\", cRules = [Rule {rMatcher = Detect2Chars '/' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XML\",\"El Content\")]},Rule {rMatcher = RegExpr (RE {reString = \"(?![0-9])[\\\\w_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"XML\",\"Attribute\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+(?![0-9])[\\\\w_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XML\",\"Attribute\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"FindEntityRefs\",Context {cName = \"FindEntityRefs\", cSyntax = \"XML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"&(#[0-9]+|#[xX][0-9A-Fa-f]+|(?![0-9])[\\\\w_:][\\\\w.:_-]*);\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"&<\", 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}),(\"FindPEntityRefs\",Context {cName = \"FindPEntityRefs\", cSyntax = \"XML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"&(#[0-9]+|#[xX][0-9A-Fa-f]+|(?![0-9])[\\\\w_:][\\\\w.:_-]*);\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%(?![0-9])[\\\\w_:][\\\\w.:_-]*;\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"&%\", 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}),(\"FindXML\",Context {cName = \"FindXML\", cSyntax = \"XML\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XML\",\"Comment\")]},Rule {rMatcher = StringDetect \"<![CDATA[\", rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XML\",\"CDATA\")]},Rule {rMatcher = RegExpr (RE {reString = \"<!DOCTYPE\\\\s+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XML\",\"Doctype\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\?[\\\\w:_-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XML\",\"PI\")]},Rule {rMatcher = RegExpr (RE {reString = \"<(?![0-9])[\\\\w_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XML\",\"Element\")]},Rule {rMatcher = IncludeRules (\"XML\",\"FindEntityRefs\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, 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}),(\"PI\",Context {cName = \"PI\", cSyntax = \"XML\", cRules = [Rule {rMatcher = Detect2Chars '?' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Start\",Context {cName = \"Start\", cSyntax = \"XML\", cRules = [Rule {rMatcher = IncludeRules (\"XML\",\"FindXML\"), 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}),(\"Value\",Context {cName = \"Value\", cSyntax = \"XML\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XML\",\"Value DQ\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XML\",\"Value SQ\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"Value DQ\",Context {cName = \"Value DQ\", cSyntax = \"XML\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = IncludeRules (\"XML\",\"FindEntityRefs\"), 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}),(\"Value SQ\",Context {cName = \"Value SQ\", cSyntax = \"XML\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = IncludeRules (\"XML\",\"FindEntityRefs\"), 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 = \"5\", sLicense = \"LGPL\", sExtensions = [\"*.docbook\",\"*.xml\",\"*.rc\",\"*.daml\",\"*.rdf\",\"*.rss\",\"*.xspf\",\"*.xsd\",\"*.svg\",\"*.ui\",\"*.kcfg\",\"*.qrc\",\"*.wsdl\",\"*.scxml\"], sStartingContext = \"Start\"}"
diff --git a/src/Skylighting/Syntax/Xorg.hs b/src/Skylighting/Syntax/Xorg.hs
--- a/src/Skylighting/Syntax/Xorg.hs
+++ b/src/Skylighting/Syntax/Xorg.hs
@@ -2,349 +2,6 @@
 module Skylighting.Syntax.Xorg (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
 
 syntax :: Syntax
-syntax = Syntax
-  { sName = "x.org Configuration"
-  , sFilename = "xorg.xml"
-  , sShortname = "Xorg"
-  , sContexts =
-      fromList
-        [ ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "x.org Configuration"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Keyword"
-          , Context
-              { cName = "Keyword"
-              , cSyntax = "x.org Configuration"
-              , cRules =
-                  [ Rule
-                      { rMatcher = RangeDetect '"' '"'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '\'' '\''
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\w\\d]+"
-                              , reCompiled = Just (compileRegex True "[\\w\\d]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , 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 ( "x.org Configuration" , "Comment" ) ]
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Section"
-          , Context
-              { cName = "Section"
-              , cSyntax = "x.org Configuration"
-              , cRules =
-                  [ Rule
-                      { rMatcher = RangeDetect '"' '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "x.org Configuration" , "Section Content" ) ]
-                      }
-                  , Rule
-                      { rMatcher = RangeDetect '\'' '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "x.org Configuration" , "Section Content" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "x.org Configuration" , "Comment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Section Content"
-          , Context
-              { cName = "Section Content"
-              , cSyntax = "x.org Configuration"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "EndSection"
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "EndSubSection"
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "SubSection"
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "x.org Configuration" , "Section" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b\\w+\\b"
-                              , reCompiled = Just (compileRegex True "\\b\\w+\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "x.org Configuration" , "Keyword" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "x.org Configuration" , "Comment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "xorg"
-          , Context
-              { cName = "xorg"
-              , cSyntax = "x.org Configuration"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "Section"
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = False
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "x.org Configuration" , "Section" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "x.org Configuration" , "Comment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Jan Janssen (medhefgo@web.de)"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions = [ "xorg.conf" ]
-  , sStartingContext = "xorg"
-  }
+syntax = read $! "Syntax {sName = \"x.org Configuration\", sFilename = \"xorg.xml\", sShortname = \"Xorg\", sContexts = fromList [(\"Comment\",Context {cName = \"Comment\", cSyntax = \"x.org Configuration\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},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 = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Keyword\",Context {cName = \"Keyword\", cSyntax = \"x.org Configuration\", cRules = [Rule {rMatcher = RangeDetect '\"' '\"', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RangeDetect '\\'' '\\'', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\w\\\\d]+\", reCaseSensitive = True}), rAttribute = OtherTok, 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 (\"x.org Configuration\",\"Comment\")]}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Section\",Context {cName = \"Section\", cSyntax = \"x.org Configuration\", cRules = [Rule {rMatcher = RangeDetect '\"' '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"x.org Configuration\",\"Section Content\")]},Rule {rMatcher = RangeDetect '\\'' '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"x.org Configuration\",\"Section Content\")]},Rule {rMatcher = DetectIdentifier, rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '#', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"x.org Configuration\",\"Comment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Section Content\",Context {cName = \"Section Content\", cSyntax = \"x.org Configuration\", cRules = [Rule {rMatcher = StringDetect \"EndSection\", rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = StringDetect \"EndSubSection\", rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = StringDetect \"SubSection\", rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"x.org Configuration\",\"Section\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b\\\\w+\\\\b\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"x.org Configuration\",\"Keyword\")]},Rule {rMatcher = DetectChar '#', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"x.org Configuration\",\"Comment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"xorg\",Context {cName = \"xorg\", cSyntax = \"x.org Configuration\", cRules = [Rule {rMatcher = StringDetect \"Section\", rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = False, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"x.org Configuration\",\"Section\")]},Rule {rMatcher = DetectChar '#', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"x.org Configuration\",\"Comment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Jan Janssen (medhefgo@web.de)\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [\"xorg.conf\"], sStartingContext = \"xorg\"}"
diff --git a/src/Skylighting/Syntax/Xslt.hs b/src/Skylighting/Syntax/Xslt.hs
--- a/src/Skylighting/Syntax/Xslt.hs
+++ b/src/Skylighting/Syntax/Xslt.hs
@@ -2,1900 +2,6 @@
 module Skylighting.Syntax.Xslt (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "xslt"
-  , sFilename = "xslt.xml"
-  , sShortname = "Xslt"
-  , sContexts =
-      fromList
-        [ ( "CDATA"
-          , Context
-              { cName = "CDATA"
-              , cSyntax = "xslt"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "]]>"
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "]]&gt;"
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Doctype"
-          , Context
-              { cName = "Doctype"
-              , cSyntax = "xslt"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "Doctype Internal Subset" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Doctype Internal Subset"
-          , Context
-              { cName = "Doctype Internal Subset"
-              , cSyntax = "xslt"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<!(ELEMENT|ENTITY|ATTLIST|NOTATION)\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "<!(ELEMENT|ENTITY|ATTLIST|NOTATION)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "Doctype Markupdecl" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\?[\\w:_-]*"
-                              , reCompiled = Just (compileRegex True "<\\?[\\w:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "PI" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "xslt" , "FindPEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "Doctype Markupdecl"
-          , Context
-              { cName = "Doctype Markupdecl"
-              , cSyntax = "xslt"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "Doctype Markupdecl DQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "Doctype Markupdecl SQ" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Doctype Markupdecl DQ"
-          , Context
-              { cName = "Doctype Markupdecl DQ"
-              , cSyntax = "xslt"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "xslt" , "FindPEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "Doctype Markupdecl SQ"
-          , Context
-              { cName = "Doctype Markupdecl SQ"
-              , cSyntax = "xslt"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "xslt" , "FindPEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "FindPEntityRefs"
-          , Context
-              { cName = "FindPEntityRefs"
-              , cSyntax = "xslt"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%[A-Za-z_:][\\w.:_-]*;"
-                              , reCompiled = Just (compileRegex True "%[A-Za-z_:][\\w.:_-]*;")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "&%"
-                      , 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
-              }
-          )
-        , ( "PI"
-          , Context
-              { cName = "PI"
-              , cSyntax = "xslt"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '?' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "attrValue"
-          , Context
-              { cName = "attrValue"
-              , cSyntax = "xslt"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "string" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "sqstring" ) ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "attributes"
-          , Context
-              { cName = "attributes"
-              , cSyntax = "xslt"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , 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 ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*=\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*=\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "attrValue" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "comment"
-          , Context
-              { cName = "comment"
-              , cSyntax = "xslt"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "-->"
-                      , rAttribute = CommentTok
-                      , 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 = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(FIXME|TODO|HACK)"
-                              , reCompiled = Just (compileRegex True "(FIXME|TODO|HACK)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "detectEntRef"
-          , Context
-              { cName = "detectEntRef"
-              , cSyntax = "xslt"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "normalText"
-          , Context
-              { cName = "normalText"
-              , cSyntax = "xslt"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<![CDATA["
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "CDATA" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<!DOCTYPE\\s+"
-                              , reCompiled = Just (compileRegex True "<!DOCTYPE\\s+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "Doctype" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\?[\\w:_-]*"
-                              , reCompiled = Just (compileRegex True "<\\?[\\w:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "PI" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "tagname" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "sqstring"
-          , Context
-              { cName = "sqstring"
-              , cSyntax = "xslt"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "sqxpath" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "xslt" , "detectEntRef" )
-                      , 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
-              }
-          )
-        , ( "sqxpath"
-          , Context
-              { cName = "sqxpath"
-              , cSyntax = "xslt"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"%&()*+,./;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "boolean"
-                               , "ceiling"
-                               , "concat"
-                               , "contains"
-                               , "count"
-                               , "current"
-                               , "document"
-                               , "element-available"
-                               , "false"
-                               , "floor"
-                               , "format-number"
-                               , "function-available"
-                               , "generate-id"
-                               , "id"
-                               , "key"
-                               , "lang"
-                               , "last"
-                               , "local-name"
-                               , "name"
-                               , "namespace-uri"
-                               , "normalize-space"
-                               , "not"
-                               , "number"
-                               , "position"
-                               , "round"
-                               , "starts-with"
-                               , "string"
-                               , "string-length"
-                               , "substring"
-                               , "substring-after"
-                               , "substring-before"
-                               , "sum"
-                               , "system-property"
-                               , "text"
-                               , "translate"
-                               , "true"
-                               , "unparsed-entity-uri"
-                               ])
-                      , rAttribute = KeywordTok
-                      , 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
-                               [ "abs"
-                               , "adjust-date-to-timezone"
-                               , "adjust-dateTime-to-timezone"
-                               , "adjust-time-to-timezone"
-                               , "avg"
-                               , "base-uri"
-                               , "codepoints-to-string"
-                               , "collection"
-                               , "compare"
-                               , "current-date"
-                               , "current-dateTime"
-                               , "current-group"
-                               , "current-grouping-key"
-                               , "current-time"
-                               , "data"
-                               , "dateTime"
-                               , "day-from-date"
-                               , "day-from-dateTime"
-                               , "days-from-duration"
-                               , "deep-equal"
-                               , "default-collation"
-                               , "distinct-values"
-                               , "doc"
-                               , "document-uri"
-                               , "empty"
-                               , "ends-with"
-                               , "error"
-                               , "escape-uri"
-                               , "exactly-one"
-                               , "exists"
-                               , "expanded-QName"
-                               , "format-date"
-                               , "format-dateTime"
-                               , "format-time"
-                               , "hours-from-dateTime"
-                               , "hours-from-duration"
-                               , "hours-from-time"
-                               , "idref"
-                               , "implicit-timezone"
-                               , "in-scope-prefixes"
-                               , "index-of"
-                               , "input"
-                               , "insert-before"
-                               , "local-name-from-QName"
-                               , "lower-case"
-                               , "matches"
-                               , "max"
-                               , "min"
-                               , "minutes-from-dateTime"
-                               , "minutes-from-duration"
-                               , "minutes-from-time"
-                               , "month-from-date"
-                               , "month-from-dateTime"
-                               , "months-from-duration"
-                               , "namespace-uri-for-prefix"
-                               , "namespace-uri-from-QName"
-                               , "node-kind"
-                               , "node-name"
-                               , "normalize-unicode"
-                               , "one-or-more"
-                               , "QName"
-                               , "regex-group"
-                               , "remove"
-                               , "replace"
-                               , "resolve-QName"
-                               , "resolve-uri"
-                               , "reverse"
-                               , "root"
-                               , "round-half-to-even"
-                               , "seconds-from-dateTime"
-                               , "seconds-from-duration"
-                               , "seconds-from-time"
-                               , "sequence-node-identical"
-                               , "static-base-uri"
-                               , "string-join"
-                               , "string-to-codepoints"
-                               , "subsequence"
-                               , "subtract-dates-yielding-dayTimeDuration"
-                               , "subtract-dates-yielding-yearMonthDuration"
-                               , "subtract-dateTimes-yielding-dayTimeDuration"
-                               , "subtract-dateTimes-yielding-yearMonthDuration"
-                               , "timezone-from-date"
-                               , "timezone-from-dateTime"
-                               , "timezone-from-time"
-                               , "tokenize"
-                               , "trace"
-                               , "unordered"
-                               , "unparsed-entity-public-id"
-                               , "unparsed-text"
-                               , "upper-case"
-                               , "year-from-date"
-                               , "year-from-dateTime"
-                               , "years-from-duration"
-                               , "zero-or-one"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(ancestor|ancestor-or-self|attribute|child|descendant|descendant-or-self|following|following-sibling|namespace|parent|preceding|preceding-sibling|self)::"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(ancestor|ancestor-or-self|attribute|child|descendant|descendant-or-self|following|following-sibling|namespace|parent|preceding|preceding-sibling|self)::")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "xpathstring" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@[A-Za-z_:][\\w.:_-]*"
-                              , reCompiled = Just (compileRegex True "@[A-Za-z_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$[A-Za-z_:][\\w.:_-]*"
-                              , reCompiled = Just (compileRegex True "\\$[A-Za-z_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Za-z_:][\\w.:_-]*"
-                              , reCompiled = Just (compileRegex True "[A-Za-z_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "xslt" , "detectEntRef" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "sqxpathstring"
-          , Context
-              { cName = "sqxpathstring"
-              , cSyntax = "xslt"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "xslt" , "detectEntRef" )
-                      , 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
-              }
-          )
-        , ( "string"
-          , Context
-              { cName = "string"
-              , cSyntax = "xslt"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "xpath" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "xslt" , "detectEntRef" )
-                      , 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
-              }
-          )
-        , ( "tagname"
-          , Context
-              { cName = "tagname"
-              , cSyntax = "xslt"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"%&()*+,./;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "xsl:apply-imports"
-                               , "xsl:apply-templates"
-                               , "xsl:attribute"
-                               , "xsl:attribute-set"
-                               , "xsl:call-template"
-                               , "xsl:choose"
-                               , "xsl:comment"
-                               , "xsl:copy"
-                               , "xsl:copy-of"
-                               , "xsl:decimal-format"
-                               , "xsl:element"
-                               , "xsl:fallback"
-                               , "xsl:for-each"
-                               , "xsl:if"
-                               , "xsl:import"
-                               , "xsl:include"
-                               , "xsl:key"
-                               , "xsl:message"
-                               , "xsl:namespace-alias"
-                               , "xsl:number"
-                               , "xsl:otherwise"
-                               , "xsl:output"
-                               , "xsl:param"
-                               , "xsl:preserve-space"
-                               , "xsl:processing-instruction"
-                               , "xsl:sort"
-                               , "xsl:strip-space"
-                               , "xsl:stylesheet"
-                               , "xsl:template"
-                               , "xsl:text"
-                               , "xsl:transform"
-                               , "xsl:value-of"
-                               , "xsl:variable"
-                               , "xsl:when"
-                               , "xsl:with-param"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "xattributes" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"%&()*+,./;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "xsl:analyze-string"
-                               , "xsl:character-map"
-                               , "xsl:document"
-                               , "xsl:for-each-group"
-                               , "xsl:function"
-                               , "xsl:import-schema"
-                               , "xsl:matching-substring"
-                               , "xsl:namespace"
-                               , "xsl:next-match"
-                               , "xsl:non-matching-substring"
-                               , "xsl:output-character"
-                               , "xsl:perform-sort"
-                               , "xsl:result-document"
-                               , "xsl:sequence"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "xattributes" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "attributes" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "xattrValue"
-          , Context
-              { cName = "xattrValue"
-              , cSyntax = "xslt"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "xpath" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "sqxpath" ) ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "xattributes"
-          , Context
-              { cName = "xattributes"
-              , cSyntax = "xslt"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , 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 ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "select\\s*=\\s*"
-                              , reCompiled = Just (compileRegex True "select\\s*=\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "xattrValue" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "test\\s*=\\s*"
-                              , reCompiled = Just (compileRegex True "test\\s*=\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "xattrValue" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "match\\s*=\\s*"
-                              , reCompiled = Just (compileRegex True "match\\s*=\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "xattrValue" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*=\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*=\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "attrValue" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "xpath"
-          , Context
-              { cName = "xpath"
-              , cSyntax = "xslt"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = False
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !\"%&()*+,./;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               False
-                               [ "boolean"
-                               , "ceiling"
-                               , "concat"
-                               , "contains"
-                               , "count"
-                               , "current"
-                               , "document"
-                               , "element-available"
-                               , "false"
-                               , "floor"
-                               , "format-number"
-                               , "function-available"
-                               , "generate-id"
-                               , "id"
-                               , "key"
-                               , "lang"
-                               , "last"
-                               , "local-name"
-                               , "name"
-                               , "namespace-uri"
-                               , "normalize-space"
-                               , "not"
-                               , "number"
-                               , "position"
-                               , "round"
-                               , "starts-with"
-                               , "string"
-                               , "string-length"
-                               , "substring"
-                               , "substring-after"
-                               , "substring-before"
-                               , "sum"
-                               , "system-property"
-                               , "text"
-                               , "translate"
-                               , "true"
-                               , "unparsed-entity-uri"
-                               ])
-                      , rAttribute = KeywordTok
-                      , 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
-                               [ "abs"
-                               , "adjust-date-to-timezone"
-                               , "adjust-dateTime-to-timezone"
-                               , "adjust-time-to-timezone"
-                               , "avg"
-                               , "base-uri"
-                               , "codepoints-to-string"
-                               , "collection"
-                               , "compare"
-                               , "current-date"
-                               , "current-dateTime"
-                               , "current-group"
-                               , "current-grouping-key"
-                               , "current-time"
-                               , "data"
-                               , "dateTime"
-                               , "day-from-date"
-                               , "day-from-dateTime"
-                               , "days-from-duration"
-                               , "deep-equal"
-                               , "default-collation"
-                               , "distinct-values"
-                               , "doc"
-                               , "document-uri"
-                               , "empty"
-                               , "ends-with"
-                               , "error"
-                               , "escape-uri"
-                               , "exactly-one"
-                               , "exists"
-                               , "expanded-QName"
-                               , "format-date"
-                               , "format-dateTime"
-                               , "format-time"
-                               , "hours-from-dateTime"
-                               , "hours-from-duration"
-                               , "hours-from-time"
-                               , "idref"
-                               , "implicit-timezone"
-                               , "in-scope-prefixes"
-                               , "index-of"
-                               , "input"
-                               , "insert-before"
-                               , "local-name-from-QName"
-                               , "lower-case"
-                               , "matches"
-                               , "max"
-                               , "min"
-                               , "minutes-from-dateTime"
-                               , "minutes-from-duration"
-                               , "minutes-from-time"
-                               , "month-from-date"
-                               , "month-from-dateTime"
-                               , "months-from-duration"
-                               , "namespace-uri-for-prefix"
-                               , "namespace-uri-from-QName"
-                               , "node-kind"
-                               , "node-name"
-                               , "normalize-unicode"
-                               , "one-or-more"
-                               , "QName"
-                               , "regex-group"
-                               , "remove"
-                               , "replace"
-                               , "resolve-QName"
-                               , "resolve-uri"
-                               , "reverse"
-                               , "root"
-                               , "round-half-to-even"
-                               , "seconds-from-dateTime"
-                               , "seconds-from-duration"
-                               , "seconds-from-time"
-                               , "sequence-node-identical"
-                               , "static-base-uri"
-                               , "string-join"
-                               , "string-to-codepoints"
-                               , "subsequence"
-                               , "subtract-dates-yielding-dayTimeDuration"
-                               , "subtract-dates-yielding-yearMonthDuration"
-                               , "subtract-dateTimes-yielding-dayTimeDuration"
-                               , "subtract-dateTimes-yielding-yearMonthDuration"
-                               , "timezone-from-date"
-                               , "timezone-from-dateTime"
-                               , "timezone-from-time"
-                               , "tokenize"
-                               , "trace"
-                               , "unordered"
-                               , "unparsed-entity-public-id"
-                               , "unparsed-text"
-                               , "upper-case"
-                               , "year-from-date"
-                               , "year-from-dateTime"
-                               , "years-from-duration"
-                               , "zero-or-one"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString =
-                                  "(ancestor|ancestor-or-self|attribute|child|descendant|descendant-or-self|following|following-sibling|namespace|parent|preceding|preceding-sibling|self)::"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True
-                                       "(ancestor|ancestor-or-self|attribute|child|descendant|descendant-or-self|following|following-sibling|namespace|parent|preceding|preceding-sibling|self)::")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "xslt" , "sqxpathstring" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "@[A-Za-z_:][\\w.:_-]*"
-                              , reCompiled = Just (compileRegex True "@[A-Za-z_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$[A-Za-z_:][\\w.:_-]*"
-                              , reCompiled = Just (compileRegex True "\\$[A-Za-z_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Za-z_:][\\w.:_-]*"
-                              , reCompiled = Just (compileRegex True "[A-Za-z_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '$'
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "xslt" , "detectEntRef" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "xpathstring"
-          , Context
-              { cName = "xpathstring"
-              , cSyntax = "xslt"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "xslt" , "detectEntRef" )
-                      , 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 = "Peter Lammich (views@gmx.de)"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.xsl" , "*.xslt" ]
-  , sStartingContext = "normalText"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"xslt\", sFilename = \"xslt.xml\", sShortname = \"Xslt\", sContexts = fromList [(\"CDATA\",Context {cName = \"CDATA\", cSyntax = \"xslt\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"]]>\", rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"]]&gt;\", rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Doctype\",Context {cName = \"Doctype\", cSyntax = \"xslt\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '[', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"Doctype Internal Subset\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Doctype Internal Subset\",Context {cName = \"Doctype Internal Subset\", cSyntax = \"xslt\", cRules = [Rule {rMatcher = DetectChar ']', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"<!(ELEMENT|ENTITY|ATTLIST|NOTATION)\\\\b\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"Doctype Markupdecl\")]},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\?[\\\\w:_-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"PI\")]},Rule {rMatcher = IncludeRules (\"xslt\",\"FindPEntityRefs\"), 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}),(\"Doctype Markupdecl\",Context {cName = \"Doctype Markupdecl\", cSyntax = \"xslt\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\"', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"Doctype Markupdecl DQ\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"Doctype Markupdecl SQ\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Doctype Markupdecl DQ\",Context {cName = \"Doctype Markupdecl DQ\", cSyntax = \"xslt\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"xslt\",\"FindPEntityRefs\"), 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}),(\"Doctype Markupdecl SQ\",Context {cName = \"Doctype Markupdecl SQ\", cSyntax = \"xslt\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"xslt\",\"FindPEntityRefs\"), 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}),(\"FindPEntityRefs\",Context {cName = \"FindPEntityRefs\", cSyntax = \"xslt\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\\\w.:_-]*);\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%[A-Za-z_:][\\\\w.:_-]*;\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"&%\", 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}),(\"PI\",Context {cName = \"PI\", cSyntax = \"xslt\", cRules = [Rule {rMatcher = Detect2Chars '?' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"attrValue\",Context {cName = \"attrValue\", cSyntax = \"xslt\", cRules = [Rule {rMatcher = Detect2Chars '/' '>', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = DetectChar '>', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"string\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"sqstring\")]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"attributes\",Context {cName = \"attributes\", cSyntax = \"xslt\", cRules = [Rule {rMatcher = Detect2Chars '/' '>', 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]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*=\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"attrValue\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"comment\",Context {cName = \"comment\", cSyntax = \"xslt\", cRules = [Rule {rMatcher = StringDetect \"-->\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"-(-(?!->))+\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(FIXME|TODO|HACK)\", reCaseSensitive = True}), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"detectEntRef\",Context {cName = \"detectEntRef\", cSyntax = \"xslt\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\\\w.:_-]*);\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"normalText\",Context {cName = \"normalText\", cSyntax = \"xslt\", cRules = [Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"comment\")]},Rule {rMatcher = StringDetect \"<![CDATA[\", rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"CDATA\")]},Rule {rMatcher = RegExpr (RE {reString = \"<!DOCTYPE\\\\s+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"Doctype\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\?[\\\\w:_-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"PI\")]},Rule {rMatcher = DetectChar '<', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"tagname\")]},Rule {rMatcher = RegExpr (RE {reString = \"&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\\\w.:_-]*);\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"sqstring\",Context {cName = \"sqstring\", cSyntax = \"xslt\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"sqxpath\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"xslt\",\"detectEntRef\"), 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}),(\"sqxpath\",Context {cName = \"sqxpath\", cSyntax = \"xslt\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !\\\"%&()*+,./;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"boolean\",\"ceiling\",\"concat\",\"contains\",\"count\",\"current\",\"document\",\"element-available\",\"false\",\"floor\",\"format-number\",\"function-available\",\"generate-id\",\"id\",\"key\",\"lang\",\"last\",\"local-name\",\"name\",\"namespace-uri\",\"normalize-space\",\"not\",\"number\",\"position\",\"round\",\"starts-with\",\"string\",\"string-length\",\"substring\",\"substring-after\",\"substring-before\",\"sum\",\"system-property\",\"text\",\"translate\",\"true\",\"unparsed-entity-uri\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !\\\"%&()*+,./;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"abs\",\"adjust-date-to-timezone\",\"adjust-dateTime-to-timezone\",\"adjust-time-to-timezone\",\"avg\",\"base-uri\",\"codepoints-to-string\",\"collection\",\"compare\",\"current-date\",\"current-dateTime\",\"current-group\",\"current-grouping-key\",\"current-time\",\"data\",\"dateTime\",\"day-from-date\",\"day-from-dateTime\",\"days-from-duration\",\"deep-equal\",\"default-collation\",\"distinct-values\",\"doc\",\"document-uri\",\"empty\",\"ends-with\",\"error\",\"escape-uri\",\"exactly-one\",\"exists\",\"expanded-QName\",\"format-date\",\"format-dateTime\",\"format-time\",\"hours-from-dateTime\",\"hours-from-duration\",\"hours-from-time\",\"idref\",\"implicit-timezone\",\"in-scope-prefixes\",\"index-of\",\"input\",\"insert-before\",\"local-name-from-QName\",\"lower-case\",\"matches\",\"max\",\"min\",\"minutes-from-dateTime\",\"minutes-from-duration\",\"minutes-from-time\",\"month-from-date\",\"month-from-dateTime\",\"months-from-duration\",\"namespace-uri-for-prefix\",\"namespace-uri-from-QName\",\"node-kind\",\"node-name\",\"normalize-unicode\",\"one-or-more\",\"QName\",\"regex-group\",\"remove\",\"replace\",\"resolve-QName\",\"resolve-uri\",\"reverse\",\"root\",\"round-half-to-even\",\"seconds-from-dateTime\",\"seconds-from-duration\",\"seconds-from-time\",\"sequence-node-identical\",\"static-base-uri\",\"string-join\",\"string-to-codepoints\",\"subsequence\",\"subtract-dates-yielding-dayTimeDuration\",\"subtract-dates-yielding-yearMonthDuration\",\"subtract-dateTimes-yielding-dayTimeDuration\",\"subtract-dateTimes-yielding-yearMonthDuration\",\"timezone-from-date\",\"timezone-from-dateTime\",\"timezone-from-time\",\"tokenize\",\"trace\",\"unordered\",\"unparsed-entity-public-id\",\"unparsed-text\",\"upper-case\",\"year-from-date\",\"year-from-dateTime\",\"years-from-duration\",\"zero-or-one\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(ancestor|ancestor-or-self|attribute|child|descendant|descendant-or-self|following|following-sibling|namespace|parent|preceding|preceding-sibling|self)::\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"xpathstring\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"@[A-Za-z_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[A-Za-z_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[A-Za-z_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '$', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"xslt\",\"detectEntRef\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"sqxpathstring\",Context {cName = \"sqxpathstring\", cSyntax = \"xslt\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"xslt\",\"detectEntRef\"), 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}),(\"string\",Context {cName = \"string\", cSyntax = \"xslt\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"xpath\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"xslt\",\"detectEntRef\"), 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}),(\"tagname\",Context {cName = \"tagname\", cSyntax = \"xslt\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !\\\"%&()*+,./;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"xsl:apply-imports\",\"xsl:apply-templates\",\"xsl:attribute\",\"xsl:attribute-set\",\"xsl:call-template\",\"xsl:choose\",\"xsl:comment\",\"xsl:copy\",\"xsl:copy-of\",\"xsl:decimal-format\",\"xsl:element\",\"xsl:fallback\",\"xsl:for-each\",\"xsl:if\",\"xsl:import\",\"xsl:include\",\"xsl:key\",\"xsl:message\",\"xsl:namespace-alias\",\"xsl:number\",\"xsl:otherwise\",\"xsl:output\",\"xsl:param\",\"xsl:preserve-space\",\"xsl:processing-instruction\",\"xsl:sort\",\"xsl:strip-space\",\"xsl:stylesheet\",\"xsl:template\",\"xsl:text\",\"xsl:transform\",\"xsl:value-of\",\"xsl:variable\",\"xsl:when\",\"xsl:with-param\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"xattributes\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !\\\"%&()*+,./;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"xsl:analyze-string\",\"xsl:character-map\",\"xsl:document\",\"xsl:for-each-group\",\"xsl:function\",\"xsl:import-schema\",\"xsl:matching-substring\",\"xsl:namespace\",\"xsl:next-match\",\"xsl:non-matching-substring\",\"xsl:output-character\",\"xsl:perform-sort\",\"xsl:result-document\",\"xsl:sequence\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"xattributes\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"attributes\")]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"xattrValue\",Context {cName = \"xattrValue\", cSyntax = \"xslt\", cRules = [Rule {rMatcher = Detect2Chars '/' '>', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = DetectChar '>', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = DetectChar '\"', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"xpath\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"sqxpath\")]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"xattributes\",Context {cName = \"xattributes\", cSyntax = \"xslt\", cRules = [Rule {rMatcher = Detect2Chars '/' '>', 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]},Rule {rMatcher = RegExpr (RE {reString = \"select\\\\s*=\\\\s*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"xattrValue\")]},Rule {rMatcher = RegExpr (RE {reString = \"test\\\\s*=\\\\s*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"xattrValue\")]},Rule {rMatcher = RegExpr (RE {reString = \"match\\\\s*=\\\\s*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"xattrValue\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*=\\\\s*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"attrValue\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"xpath\",Context {cName = \"xpath\", cSyntax = \"xslt\", cRules = [Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !\\\"%&()*+,./;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"boolean\",\"ceiling\",\"concat\",\"contains\",\"count\",\"current\",\"document\",\"element-available\",\"false\",\"floor\",\"format-number\",\"function-available\",\"generate-id\",\"id\",\"key\",\"lang\",\"last\",\"local-name\",\"name\",\"namespace-uri\",\"normalize-space\",\"not\",\"number\",\"position\",\"round\",\"starts-with\",\"string\",\"string-length\",\"substring\",\"substring-after\",\"substring-before\",\"sum\",\"system-property\",\"text\",\"translate\",\"true\",\"unparsed-entity-uri\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = False, keywordDelims = fromList \"\\t\\n !\\\"%&()*+,./;<=>?[\\\\]^{|}~\"}) (CaseInsensitiveWords (fromList [\"abs\",\"adjust-date-to-timezone\",\"adjust-dateTime-to-timezone\",\"adjust-time-to-timezone\",\"avg\",\"base-uri\",\"codepoints-to-string\",\"collection\",\"compare\",\"current-date\",\"current-dateTime\",\"current-group\",\"current-grouping-key\",\"current-time\",\"data\",\"dateTime\",\"day-from-date\",\"day-from-dateTime\",\"days-from-duration\",\"deep-equal\",\"default-collation\",\"distinct-values\",\"doc\",\"document-uri\",\"empty\",\"ends-with\",\"error\",\"escape-uri\",\"exactly-one\",\"exists\",\"expanded-QName\",\"format-date\",\"format-dateTime\",\"format-time\",\"hours-from-dateTime\",\"hours-from-duration\",\"hours-from-time\",\"idref\",\"implicit-timezone\",\"in-scope-prefixes\",\"index-of\",\"input\",\"insert-before\",\"local-name-from-QName\",\"lower-case\",\"matches\",\"max\",\"min\",\"minutes-from-dateTime\",\"minutes-from-duration\",\"minutes-from-time\",\"month-from-date\",\"month-from-dateTime\",\"months-from-duration\",\"namespace-uri-for-prefix\",\"namespace-uri-from-QName\",\"node-kind\",\"node-name\",\"normalize-unicode\",\"one-or-more\",\"QName\",\"regex-group\",\"remove\",\"replace\",\"resolve-QName\",\"resolve-uri\",\"reverse\",\"root\",\"round-half-to-even\",\"seconds-from-dateTime\",\"seconds-from-duration\",\"seconds-from-time\",\"sequence-node-identical\",\"static-base-uri\",\"string-join\",\"string-to-codepoints\",\"subsequence\",\"subtract-dates-yielding-dayTimeDuration\",\"subtract-dates-yielding-yearMonthDuration\",\"subtract-dateTimes-yielding-dayTimeDuration\",\"subtract-dateTimes-yielding-yearMonthDuration\",\"timezone-from-date\",\"timezone-from-dateTime\",\"timezone-from-time\",\"tokenize\",\"trace\",\"unordered\",\"unparsed-entity-public-id\",\"unparsed-text\",\"upper-case\",\"year-from-date\",\"year-from-dateTime\",\"years-from-duration\",\"zero-or-one\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"(ancestor|ancestor-or-self|attribute|child|descendant|descendant-or-self|following|following-sibling|namespace|parent|preceding|preceding-sibling|self)::\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"xslt\",\"sqxpathstring\")]},Rule {rMatcher = DetectChar '\"', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"@[A-Za-z_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[A-Za-z_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[A-Za-z_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '$', rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"xslt\",\"detectEntRef\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"xpathstring\",Context {cName = \"xpathstring\", cSyntax = \"xslt\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"xslt\",\"detectEntRef\"), 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 = \"Peter Lammich (views@gmx.de)\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [\"*.xsl\",\"*.xslt\"], sStartingContext = \"normalText\"}"
diff --git a/src/Skylighting/Syntax/Xul.hs b/src/Skylighting/Syntax/Xul.hs
--- a/src/Skylighting/Syntax/Xul.hs
+++ b/src/Skylighting/Syntax/Xul.hs
@@ -2,2315 +2,6 @@
 module Skylighting.Syntax.Xul (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "XUL"
-  , sFilename = "xul.xml"
-  , sShortname = "Xul"
-  , sContexts =
-      fromList
-        [ ( "(Internal regex catch)"
-          , Context
-              { cName = "(Internal regex catch)"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "//(?=;)"
-                              , reCompiled = Just (compileRegex True "//(?=;)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "JSComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "Multi/inline Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '/'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "(regex caret first check)" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "(charclass caret first check)"
-          , Context
-              { cName = "(charclass caret first check)"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '^'
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "XUL" , "Regular Expression Character Class" ) ]
-                      }
-                  ]
-              , cAttribute = FloatTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext =
-                  [ Push ( "XUL" , "Regular Expression Character Class" ) ]
-              , cDynamic = False
-              }
-          )
-        , ( "(regex caret first check)"
-          , Context
-              { cName = "(regex caret first check)"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '^'
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "Regular Expression" ) ]
-                      }
-                  ]
-              , cAttribute = FloatTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Push ( "XUL" , "Regular Expression" ) ]
-              , cDynamic = False
-              }
-          )
-        , ( "Attribute"
-          , Context
-              { cName = "Attribute"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "Value" ) ]
-                      }
-                  , 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
-              }
-          )
-        , ( "CDATA"
-          , Context
-              { cName = "CDATA"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = StringDetect "]]>"
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "]]&gt;"
-                      , rAttribute = DecValTok
-                      , 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 = StringDetect "//BEGIN"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "region_marker" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "//END"
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "region_marker" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "break"
-                               , "case"
-                               , "catch"
-                               , "const"
-                               , "continue"
-                               , "default"
-                               , "delete"
-                               , "do"
-                               , "else"
-                               , "false"
-                               , "finally"
-                               , "for"
-                               , "function"
-                               , "if"
-                               , "in"
-                               , "new"
-                               , "return"
-                               , "switch"
-                               , "throw"
-                               , "true"
-                               , "try"
-                               , "typeof"
-                               , "var"
-                               , "void"
-                               , "while"
-                               , "with"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Number"
-                               , "escape"
-                               , "isFinite"
-                               , "isNaN"
-                               , "parseFloat"
-                               , "parseInt"
-                               , "reload"
-                               , "taint"
-                               , "unescape"
-                               , "untaint"
-                               , "write"
-                               ])
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "Anchor"
-                               , "Applet"
-                               , "Area"
-                               , "Array"
-                               , "Boolean"
-                               , "Button"
-                               , "Checkbox"
-                               , "Date"
-                               , "FileUpload"
-                               , "Form"
-                               , "Frame"
-                               , "Function"
-                               , "Hidden"
-                               , "Image"
-                               , "Layer"
-                               , "Link"
-                               , "Math"
-                               , "Max"
-                               , "MimeType"
-                               , "Min"
-                               , "Object"
-                               , "Password"
-                               , "Plugin"
-                               , "Radio"
-                               , "RegExp"
-                               , "Reset"
-                               , "Screen"
-                               , "Select"
-                               , "String"
-                               , "Text"
-                               , "Textarea"
-                               , "Window"
-                               , "document"
-                               , "navigator"
-                               , "this"
-                               , "window"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "E"
-                               , "LN10"
-                               , "LN2"
-                               , "LOG10E"
-                               , "LOG2E"
-                               , "PI"
-                               , "SQRT1_2"
-                               , "SQRT2"
-                               , "abs"
-                               , "acos"
-                               , "asin"
-                               , "atan"
-                               , "atan2"
-                               , "ceil"
-                               , "cos"
-                               , "ctg"
-                               , "exp"
-                               , "floor"
-                               , "log"
-                               , "pow"
-                               , "round"
-                               , "sin"
-                               , "sqrt"
-                               , "tan"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "onAbort"
-                               , "onBlur"
-                               , "onChange"
-                               , "onClick"
-                               , "onError"
-                               , "onFocus"
-                               , "onLoad"
-                               , "onMouseOut"
-                               , "onMouseOver"
-                               , "onReset"
-                               , "onSelect"
-                               , "onSubmit"
-                               , "onUnload"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims =
-                                  Data.Set.fromList "\t\n !%&()*+,-./:;<=>?[\\]^{|}~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "MAX_VALUE"
-                               , "MIN_VALUE"
-                               , "NEGATIVE_INFINITY"
-                               , "NaN"
-                               , "POSITIVE_INFINITY"
-                               , "URL"
-                               , "UTC"
-                               , "above"
-                               , "action"
-                               , "alert"
-                               , "alinkColor"
-                               , "anchor"
-                               , "anchors"
-                               , "appCodeName"
-                               , "appName"
-                               , "appVersion"
-                               , "applets"
-                               , "apply"
-                               , "argument"
-                               , "arguments"
-                               , "arity"
-                               , "availHeight"
-                               , "availWidth"
-                               , "back"
-                               , "background"
-                               , "below"
-                               , "bgColor"
-                               , "big"
-                               , "blink"
-                               , "blur"
-                               , "bold"
-                               , "border"
-                               , "call"
-                               , "caller"
-                               , "charAt"
-                               , "charCodeAt"
-                               , "checked"
-                               , "clearInterval"
-                               , "clearTimeout"
-                               , "click"
-                               , "clip"
-                               , "close"
-                               , "closed"
-                               , "colorDepth"
-                               , "compile"
-                               , "complete"
-                               , "confirm"
-                               , "constructor"
-                               , "cookie"
-                               , "current"
-                               , "cursor"
-                               , "data"
-                               , "defaultChecked"
-                               , "defaultSelected"
-                               , "defaultStatus"
-                               , "defaultValue"
-                               , "description"
-                               , "disableExternalCapture"
-                               , "domain"
-                               , "elements"
-                               , "embeds"
-                               , "enableExternalCapture"
-                               , "enabledPlugin"
-                               , "encoding"
-                               , "eval"
-                               , "exec"
-                               , "fgColor"
-                               , "filename"
-                               , "find"
-                               , "fixed"
-                               , "focus"
-                               , "fontcolor"
-                               , "fontsize"
-                               , "form"
-                               , "formName"
-                               , "forms"
-                               , "forward"
-                               , "frames"
-                               , "fromCharCode"
-                               , "getDate"
-                               , "getDay"
-                               , "getHours"
-                               , "getMiliseconds"
-                               , "getMinutes"
-                               , "getMonth"
-                               , "getSeconds"
-                               , "getSelection"
-                               , "getTime"
-                               , "getTimezoneOffset"
-                               , "getUTCDate"
-                               , "getUTCDay"
-                               , "getUTCFullYear"
-                               , "getUTCHours"
-                               , "getUTCMilliseconds"
-                               , "getUTCMinutes"
-                               , "getUTCMonth"
-                               , "getUTCSeconds"
-                               , "getYear"
-                               , "global"
-                               , "go"
-                               , "hash"
-                               , "height"
-                               , "history"
-                               , "home"
-                               , "host"
-                               , "hostname"
-                               , "href"
-                               , "hspace"
-                               , "ignoreCase"
-                               , "images"
-                               , "index"
-                               , "indexOf"
-                               , "innerHeight"
-                               , "innerWidth"
-                               , "input"
-                               , "italics"
-                               , "javaEnabled"
-                               , "join"
-                               , "language"
-                               , "lastIndex"
-                               , "lastIndexOf"
-                               , "lastModified"
-                               , "lastParen"
-                               , "layerX"
-                               , "layerY"
-                               , "layers"
-                               , "left"
-                               , "leftContext"
-                               , "length"
-                               , "link"
-                               , "linkColor"
-                               , "links"
-                               , "load"
-                               , "location"
-                               , "locationbar"
-                               , "lowsrc"
-                               , "match"
-                               , "menubar"
-                               , "method"
-                               , "mimeTypes"
-                               , "modifiers"
-                               , "moveAbove"
-                               , "moveBelow"
-                               , "moveBy"
-                               , "moveTo"
-                               , "moveToAbsolute"
-                               , "multiline"
-                               , "name"
-                               , "negative_infinity"
-                               , "next"
-                               , "open"
-                               , "opener"
-                               , "options"
-                               , "outerHeight"
-                               , "outerWidth"
-                               , "pageX"
-                               , "pageXoffset"
-                               , "pageY"
-                               , "pageYoffset"
-                               , "parent"
-                               , "parse"
-                               , "pathname"
-                               , "personalbar"
-                               , "pixelDepth"
-                               , "platform"
-                               , "plugins"
-                               , "pop"
-                               , "port"
-                               , "positive_infinity"
-                               , "preference"
-                               , "previous"
-                               , "print"
-                               , "prompt"
-                               , "protocol"
-                               , "prototype"
-                               , "push"
-                               , "referrer"
-                               , "refresh"
-                               , "releaseEvents"
-                               , "reload"
-                               , "replace"
-                               , "reset"
-                               , "resizeBy"
-                               , "resizeTo"
-                               , "reverse"
-                               , "rightContext"
-                               , "screenX"
-                               , "screenY"
-                               , "scroll"
-                               , "scrollBy"
-                               , "scrollTo"
-                               , "scrollbar"
-                               , "search"
-                               , "select"
-                               , "selected"
-                               , "selectedIndex"
-                               , "self"
-                               , "setDate"
-                               , "setHours"
-                               , "setMinutes"
-                               , "setMonth"
-                               , "setSeconds"
-                               , "setTime"
-                               , "setTimeout"
-                               , "setUTCDate"
-                               , "setUTCDay"
-                               , "setUTCFullYear"
-                               , "setUTCHours"
-                               , "setUTCMilliseconds"
-                               , "setUTCMinutes"
-                               , "setUTCMonth"
-                               , "setUTCSeconds"
-                               , "setYear"
-                               , "shift"
-                               , "siblingAbove"
-                               , "siblingBelow"
-                               , "small"
-                               , "sort"
-                               , "source"
-                               , "splice"
-                               , "split"
-                               , "src"
-                               , "status"
-                               , "statusbar"
-                               , "strike"
-                               , "sub"
-                               , "submit"
-                               , "substr"
-                               , "substring"
-                               , "suffixes"
-                               , "sup"
-                               , "taintEnabled"
-                               , "target"
-                               , "test"
-                               , "text"
-                               , "title"
-                               , "toGMTString"
-                               , "toLocaleString"
-                               , "toLowerCase"
-                               , "toSource"
-                               , "toString"
-                               , "toUTCString"
-                               , "toUpperCase"
-                               , "toolbar"
-                               , "top"
-                               , "type"
-                               , "unshift"
-                               , "unwatch"
-                               , "userAgent"
-                               , "value"
-                               , "valueOf"
-                               , "visibility"
-                               , "vlinkColor"
-                               , "vspace"
-                               , "watch"
-                               , "which"
-                               , "width"
-                               , "write"
-                               , "writeln"
-                               , "x"
-                               , "y"
-                               , "zIndex"
-                               ])
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Float
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Int
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "String 1" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "JSComment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "Multi/inline Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[=?:]"
-                              , reCompiled = Just (compileRegex True "[=?:]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "(Internal regex catch)" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\("
-                              , reCompiled = Just (compileRegex True "\\(")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "(Internal regex catch)" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar ":!%&+,-/.*<=>?[]|~^;"
-                      , 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 = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "-->"
-                      , rAttribute = CommentTok
-                      , 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 = []
-                      }
-                  , 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
-              }
-          )
-        , ( "Doctype"
-          , Context
-              { cName = "Doctype"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "Doctype Internal Subset" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Doctype Internal Subset"
-          , Context
-              { cName = "Doctype Internal Subset"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<!(ELEMENT|ENTITY|ATTLIST|NOTATION)\\b"
-                              , reCompiled =
-                                  Just (compileRegex True "<!(ELEMENT|ENTITY|ATTLIST|NOTATION)\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "Doctype Markupdecl" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\?[\\w:_-]*"
-                              , reCompiled = Just (compileRegex True "<\\?[\\w:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "PI" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "XUL" , "FindPEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "Doctype Markupdecl"
-          , Context
-              { cName = "Doctype Markupdecl"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "Doctype Markupdecl DQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "Doctype Markupdecl SQ" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Doctype Markupdecl DQ"
-          , Context
-              { cName = "Doctype Markupdecl DQ"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "XUL" , "FindPEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "Doctype Markupdecl SQ"
-          , Context
-              { cName = "Doctype Markupdecl SQ"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "XUL" , "FindPEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "El Content"
-          , Context
-              { cName = "El Content"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "</[A-Za-z_:][\\w.:_-]*"
-                              , reCompiled = Just (compileRegex True "</[A-Za-z_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "El End" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "XUL" , "FindXML" )
-                      , 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
-              }
-          )
-        , ( "El End"
-          , Context
-              { cName = "El End"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , 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
-              }
-          )
-        , ( "Element"
-          , Context
-              { cName = "Element"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "El Content" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Za-z_:][\\w.:_-]*"
-                              , reCompiled = Just (compileRegex True "[A-Za-z_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "XUL" , "Attribute" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s+[A-Za-z_:][\\w.:_-]*"
-                              , reCompiled = Just (compileRegex True "\\s+[A-Za-z_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "Attribute" ) ]
-                      }
-                  , 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
-              }
-          )
-        , ( "FindEntityRefs"
-          , Context
-              { cName = "FindEntityRefs"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "&<"
-                      , 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
-              }
-          )
-        , ( "FindPEntityRefs"
-          , Context
-              { cName = "FindPEntityRefs"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\w.:_-]*);")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%[A-Za-z_:][\\w.:_-]*;"
-                              , reCompiled = Just (compileRegex True "%[A-Za-z_:][\\w.:_-]*;")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DecValTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "&%"
-                      , 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
-              }
-          )
-        , ( "FindXML"
-          , Context
-              { cName = "FindXML"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<!--"
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<![CDATA["
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "CDATA" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<!DOCTYPE\\s+"
-                              , reCompiled = Just (compileRegex True "<!DOCTYPE\\s+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "Doctype" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<\\?[\\w:_-]*"
-                              , reCompiled = Just (compileRegex True "<\\?[\\w:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "PI" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<[A-Za-z_:][\\w.:_-]*"
-                              , reCompiled = Just (compileRegex True "<[A-Za-z_:][\\w.:_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "Element" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "XUL" , "FindEntityRefs" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectIdentifier
-                      , 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
-              }
-          )
-        , ( "JSComment"
-          , Context
-              { cName = "JSComment"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , 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 = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Multi/inline Comment"
-          , Context
-              { cName = "Multi/inline Comment"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , 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 ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "PI"
-          , Context
-              { cName = "PI"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '?' '>'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Regular Expression"
-          , Context
-              { cName = "Regular Expression"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "/[ig]{0,2}"
-                              , reCompiled = Just (compileRegex True "/[ig]{0,2}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\{[\\d, ]+\\}"
-                              , reCompiled = Just (compileRegex True "\\{[\\d, ]+\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[bB]"
-                              , reCompiled = Just (compileRegex True "\\\\[bB]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[nrtvfDdSsWw]"
-                              , reCompiled = Just (compileRegex True "\\\\[nrtvfDdSsWw]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch =
-                          [ Push ( "XUL" , "(charclass caret first check)" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\."
-                              , reCompiled = Just (compileRegex True "\\\\.")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$(?=/)"
-                              , reCompiled = Just (compileRegex True "\\$(?=/)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "?+*()|"
-                      , rAttribute = FloatTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Regular Expression Character Class"
-          , Context
-              { cName = "Regular Expression Character Class"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[\\[\\]]"
-                              , reCompiled = Just (compileRegex True "\\\\[\\[\\]]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = BaseNTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Start"
-          , Context
-              { cName = "Start"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "XUL" , "FindXML" )
-                      , 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
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = HlCStringChar
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String 1"
-          , Context
-              { cName = "String 1"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "String" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Value"
-          , Context
-              { cName = "Value"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "Value DQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "XUL" , "Value SQ" ) ]
-                      }
-                  , 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
-              }
-          )
-        , ( "Value DQ"
-          , Context
-              { cName = "Value DQ"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "XUL" , "FindEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "Value SQ"
-          , Context
-              { cName = "Value SQ"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "XUL" , "FindEntityRefs" )
-                      , 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
-              }
-          )
-        , ( "region_marker"
-          , Context
-              { cName = "region_marker"
-              , cSyntax = "XUL"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = RegionMarkerTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = RegionMarkerTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor =
-      "Wilbert Berendsen (wilbert@kde.nl), Anders Lund (anders@alweb.dk), Joseph Wenninger (jowenn@kde.org), Whitehawk Stormchaser (zerokode@gmx.net), Marc Dassonneville (marc.dassonneville@gmail.com)"
-  , sVersion = "2"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.xul" , "*.xbl" ]
-  , sStartingContext = "Start"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"XUL\", sFilename = \"xul.xml\", sShortname = \"Xul\", sContexts = fromList [(\"(Internal regex catch)\",Context {cName = \"(Internal regex catch)\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"//(?=;)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"JSComment\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"Multi/inline Comment\")]},Rule {rMatcher = DetectChar '/', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"(regex caret first check)\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"(charclass caret first check)\",Context {cName = \"(charclass caret first check)\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = DetectChar '^', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"Regular Expression Character Class\")]}], cAttribute = FloatTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Push (\"XUL\",\"Regular Expression Character Class\")], cDynamic = False}),(\"(regex caret first check)\",Context {cName = \"(regex caret first check)\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = DetectChar '^', rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"Regular Expression\")]}], cAttribute = FloatTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Push (\"XUL\",\"Regular Expression\")], cDynamic = False}),(\"Attribute\",Context {cName = \"Attribute\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = DetectChar '=', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"Value\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"CDATA\",Context {cName = \"CDATA\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = StringDetect \"]]>\", rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = StringDetect \"]]&gt;\", rAttribute = DecValTok, 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 = StringDetect \"//BEGIN\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"region_marker\")]},Rule {rMatcher = StringDetect \"//END\", rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"region_marker\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"break\",\"case\",\"catch\",\"const\",\"continue\",\"default\",\"delete\",\"do\",\"else\",\"false\",\"finally\",\"for\",\"function\",\"if\",\"in\",\"new\",\"return\",\"switch\",\"throw\",\"true\",\"try\",\"typeof\",\"var\",\"void\",\"while\",\"with\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"Number\",\"escape\",\"isFinite\",\"isNaN\",\"parseFloat\",\"parseInt\",\"reload\",\"taint\",\"unescape\",\"untaint\",\"write\"])), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"Anchor\",\"Applet\",\"Area\",\"Array\",\"Boolean\",\"Button\",\"Checkbox\",\"Date\",\"FileUpload\",\"Form\",\"Frame\",\"Function\",\"Hidden\",\"Image\",\"Layer\",\"Link\",\"Math\",\"Max\",\"MimeType\",\"Min\",\"Object\",\"Password\",\"Plugin\",\"Radio\",\"RegExp\",\"Reset\",\"Screen\",\"Select\",\"String\",\"Text\",\"Textarea\",\"Window\",\"document\",\"navigator\",\"this\",\"window\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"E\",\"LN10\",\"LN2\",\"LOG10E\",\"LOG2E\",\"PI\",\"SQRT1_2\",\"SQRT2\",\"abs\",\"acos\",\"asin\",\"atan\",\"atan2\",\"ceil\",\"cos\",\"ctg\",\"exp\",\"floor\",\"log\",\"pow\",\"round\",\"sin\",\"sqrt\",\"tan\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"onAbort\",\"onBlur\",\"onChange\",\"onClick\",\"onError\",\"onFocus\",\"onLoad\",\"onMouseOut\",\"onMouseOver\",\"onReset\",\"onSelect\",\"onSubmit\",\"onUnload\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !%&()*+,-./:;<=>?[\\\\]^{|}~\"}) (CaseSensitiveWords (fromList [\"MAX_VALUE\",\"MIN_VALUE\",\"NEGATIVE_INFINITY\",\"NaN\",\"POSITIVE_INFINITY\",\"URL\",\"UTC\",\"above\",\"action\",\"alert\",\"alinkColor\",\"anchor\",\"anchors\",\"appCodeName\",\"appName\",\"appVersion\",\"applets\",\"apply\",\"argument\",\"arguments\",\"arity\",\"availHeight\",\"availWidth\",\"back\",\"background\",\"below\",\"bgColor\",\"big\",\"blink\",\"blur\",\"bold\",\"border\",\"call\",\"caller\",\"charAt\",\"charCodeAt\",\"checked\",\"clearInterval\",\"clearTimeout\",\"click\",\"clip\",\"close\",\"closed\",\"colorDepth\",\"compile\",\"complete\",\"confirm\",\"constructor\",\"cookie\",\"current\",\"cursor\",\"data\",\"defaultChecked\",\"defaultSelected\",\"defaultStatus\",\"defaultValue\",\"description\",\"disableExternalCapture\",\"domain\",\"elements\",\"embeds\",\"enableExternalCapture\",\"enabledPlugin\",\"encoding\",\"eval\",\"exec\",\"fgColor\",\"filename\",\"find\",\"fixed\",\"focus\",\"fontcolor\",\"fontsize\",\"form\",\"formName\",\"forms\",\"forward\",\"frames\",\"fromCharCode\",\"getDate\",\"getDay\",\"getHours\",\"getMiliseconds\",\"getMinutes\",\"getMonth\",\"getSeconds\",\"getSelection\",\"getTime\",\"getTimezoneOffset\",\"getUTCDate\",\"getUTCDay\",\"getUTCFullYear\",\"getUTCHours\",\"getUTCMilliseconds\",\"getUTCMinutes\",\"getUTCMonth\",\"getUTCSeconds\",\"getYear\",\"global\",\"go\",\"hash\",\"height\",\"history\",\"home\",\"host\",\"hostname\",\"href\",\"hspace\",\"ignoreCase\",\"images\",\"index\",\"indexOf\",\"innerHeight\",\"innerWidth\",\"input\",\"italics\",\"javaEnabled\",\"join\",\"language\",\"lastIndex\",\"lastIndexOf\",\"lastModified\",\"lastParen\",\"layerX\",\"layerY\",\"layers\",\"left\",\"leftContext\",\"length\",\"link\",\"linkColor\",\"links\",\"load\",\"location\",\"locationbar\",\"lowsrc\",\"match\",\"menubar\",\"method\",\"mimeTypes\",\"modifiers\",\"moveAbove\",\"moveBelow\",\"moveBy\",\"moveTo\",\"moveToAbsolute\",\"multiline\",\"name\",\"negative_infinity\",\"next\",\"open\",\"opener\",\"options\",\"outerHeight\",\"outerWidth\",\"pageX\",\"pageXoffset\",\"pageY\",\"pageYoffset\",\"parent\",\"parse\",\"pathname\",\"personalbar\",\"pixelDepth\",\"platform\",\"plugins\",\"pop\",\"port\",\"positive_infinity\",\"preference\",\"previous\",\"print\",\"prompt\",\"protocol\",\"prototype\",\"push\",\"referrer\",\"refresh\",\"releaseEvents\",\"reload\",\"replace\",\"reset\",\"resizeBy\",\"resizeTo\",\"reverse\",\"rightContext\",\"screenX\",\"screenY\",\"scroll\",\"scrollBy\",\"scrollTo\",\"scrollbar\",\"search\",\"select\",\"selected\",\"selectedIndex\",\"self\",\"setDate\",\"setHours\",\"setMinutes\",\"setMonth\",\"setSeconds\",\"setTime\",\"setTimeout\",\"setUTCDate\",\"setUTCDay\",\"setUTCFullYear\",\"setUTCHours\",\"setUTCMilliseconds\",\"setUTCMinutes\",\"setUTCMonth\",\"setUTCSeconds\",\"setYear\",\"shift\",\"siblingAbove\",\"siblingBelow\",\"small\",\"sort\",\"source\",\"splice\",\"split\",\"src\",\"status\",\"statusbar\",\"strike\",\"sub\",\"submit\",\"substr\",\"substring\",\"suffixes\",\"sup\",\"taintEnabled\",\"target\",\"test\",\"text\",\"title\",\"toGMTString\",\"toLocaleString\",\"toLowerCase\",\"toSource\",\"toString\",\"toUTCString\",\"toUpperCase\",\"toolbar\",\"top\",\"type\",\"unshift\",\"unwatch\",\"userAgent\",\"value\",\"valueOf\",\"visibility\",\"vlinkColor\",\"vspace\",\"watch\",\"which\",\"width\",\"write\",\"writeln\",\"x\",\"y\",\"zIndex\"])), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Float, rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Int, rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"String\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"String 1\")]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"JSComment\")]},Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"Multi/inline Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"[=?:]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"(Internal regex catch)\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\(\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"(Internal regex catch)\")]},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \":!%&+,-/.*<=>?[]|~^;\", 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 = \"XUL\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"-->\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"-(-(?!->))+\", reCaseSensitive = True}), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},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}),(\"Doctype\",Context {cName = \"Doctype\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '[', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"Doctype Internal Subset\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Doctype Internal Subset\",Context {cName = \"Doctype Internal Subset\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = DetectChar ']', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"<!(ELEMENT|ENTITY|ATTLIST|NOTATION)\\\\b\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"Doctype Markupdecl\")]},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\?[\\\\w:_-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"PI\")]},Rule {rMatcher = IncludeRules (\"XUL\",\"FindPEntityRefs\"), 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}),(\"Doctype Markupdecl\",Context {cName = \"Doctype Markupdecl\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"Doctype Markupdecl DQ\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"Doctype Markupdecl SQ\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Doctype Markupdecl DQ\",Context {cName = \"Doctype Markupdecl DQ\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"XUL\",\"FindPEntityRefs\"), 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}),(\"Doctype Markupdecl SQ\",Context {cName = \"Doctype Markupdecl SQ\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"XUL\",\"FindPEntityRefs\"), 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}),(\"El Content\",Context {cName = \"El Content\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"</[A-Za-z_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"El End\")]},Rule {rMatcher = IncludeRules (\"XUL\",\"FindXML\"), 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}),(\"El End\",Context {cName = \"El End\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"Element\",Context {cName = \"Element\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = Detect2Chars '/' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"El Content\")]},Rule {rMatcher = RegExpr (RE {reString = \"[A-Za-z_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"XUL\",\"Attribute\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+[A-Za-z_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"Attribute\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"FindEntityRefs\",Context {cName = \"FindEntityRefs\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\\\w.:_-]*);\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"&<\", 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}),(\"FindPEntityRefs\",Context {cName = \"FindPEntityRefs\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"&(#[0-9]+|#[xX][0-9A-Fa-f]+|[A-Za-z_:][\\\\w.:_-]*);\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"%[A-Za-z_:][\\\\w.:_-]*;\", reCaseSensitive = True}), rAttribute = DecValTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"&%\", 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}),(\"FindXML\",Context {cName = \"FindXML\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<!--\", rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"Comment\")]},Rule {rMatcher = StringDetect \"<![CDATA[\", rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"CDATA\")]},Rule {rMatcher = RegExpr (RE {reString = \"<!DOCTYPE\\\\s+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"Doctype\")]},Rule {rMatcher = RegExpr (RE {reString = \"<\\\\?[\\\\w:_-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"PI\")]},Rule {rMatcher = RegExpr (RE {reString = \"<[A-Za-z_:][\\\\w.:_-]*\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"Element\")]},Rule {rMatcher = IncludeRules (\"XUL\",\"FindEntityRefs\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectIdentifier, 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}),(\"JSComment\",Context {cName = \"JSComment\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},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 = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Multi/inline Comment\",Context {cName = \"Multi/inline Comment\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), 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]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"PI\",Context {cName = \"PI\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = Detect2Chars '?' '>', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Regular Expression\",Context {cName = \"Regular Expression\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"/[ig]{0,2}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\{[\\\\d, ]+\\\\}\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[bB]\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[nrtvfDdSsWw]\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"(charclass caret first check)\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$(?=/)\", reCaseSensitive = True}), rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = AnyChar \"?+*()|\", rAttribute = FloatTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Regular Expression Character Class\",Context {cName = \"Regular Expression Character Class\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[\\\\[\\\\]]\", reCaseSensitive = True}), rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ']', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]}], cAttribute = BaseNTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Start\",Context {cName = \"Start\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = IncludeRules (\"XUL\",\"FindXML\"), 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}),(\"String\",Context {cName = \"String\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = HlCStringChar, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String 1\",Context {cName = \"String 1\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"String\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CharTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Value\",Context {cName = \"Value\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"Value DQ\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"XUL\",\"Value SQ\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\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}),(\"Value DQ\",Context {cName = \"Value DQ\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = IncludeRules (\"XUL\",\"FindEntityRefs\"), 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}),(\"Value SQ\",Context {cName = \"Value SQ\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = IncludeRules (\"XUL\",\"FindEntityRefs\"), 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}),(\"region_marker\",Context {cName = \"region_marker\", cSyntax = \"XUL\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectSpaces, rAttribute = RegionMarkerTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = RegionMarkerTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Wilbert Berendsen (wilbert@kde.nl), Anders Lund (anders@alweb.dk), Joseph Wenninger (jowenn@kde.org), Whitehawk Stormchaser (zerokode@gmx.net), Marc Dassonneville (marc.dassonneville@gmail.com)\", sVersion = \"2\", sLicense = \"LGPL\", sExtensions = [\"*.xul\",\"*.xbl\"], sStartingContext = \"Start\"}"
diff --git a/src/Skylighting/Syntax/Yacc.hs b/src/Skylighting/Syntax/Yacc.hs
--- a/src/Skylighting/Syntax/Yacc.hs
+++ b/src/Skylighting/Syntax/Yacc.hs
@@ -2,1019 +2,6 @@
 module Skylighting.Syntax.Yacc (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Yacc/Bison"
-  , sFilename = "yacc.xml"
-  , sShortname = "Yacc"
-  , sContexts =
-      fromList
-        [ ( "C Declarations"
-          , Context
-              { cName = "C Declarations"
-              , cSyntax = "Yacc/Bison"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Yacc/Bison" , "Comment" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '%' '}'
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "C++" , "" )
-                      , 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
-              }
-          )
-        , ( "Char"
-          , Context
-              { cName = "Char"
-              , cSyntax = "Yacc/Bison"
-              , 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 = DetectChar '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CharTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Comment"
-          , Context
-              { cName = "Comment"
-              , cSyntax = "Yacc/Bison"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '/' '*'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Yacc/Bison" , "CommentStar" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '/' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Yacc/Bison" , "CommentSlash" ) ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CommentSlash"
-          , Context
-              { cName = "CommentSlash"
-              , cSyntax = "Yacc/Bison"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^\\\\]$"
-                              , reCompiled = Just (compileRegex True "[^\\\\]$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CommentStar"
-          , Context
-              { cName = "CommentStar"
-              , cSyntax = "Yacc/Bison"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '*' '/'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Declarations"
-          , Context
-              { cName = "Declarations"
-              , cSyntax = "Yacc/Bison"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Yacc/Bison" , "Comment" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "%union"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Yacc/Bison" , "Union Start" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '%' '%'
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Yacc/Bison" , "Rules" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '%' '{'
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Yacc/Bison" , "C Declarations" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '%'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Yacc/Bison" , "Percent Command" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Dol"
-          , Context
-              { cName = "Dol"
-              , cSyntax = "Yacc/Bison"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "<[^>]+>"
-                              , reCompiled = Just (compileRegex True "<[^>]+>")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Yacc/Bison" , "DolEnd" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Push ( "Yacc/Bison" , "DolEnd" ) ]
-              , cDynamic = False
-              }
-          )
-        , ( "DolEnd"
-          , Context
-              { cName = "DolEnd"
-              , cSyntax = "Yacc/Bison"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\d+"
-                              , reCompiled = Just (compileRegex True "\\d+")
-                              , reCaseSensitive = True
-                              }
-                      , 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 ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Normal C Bloc"
-          , Context
-              { cName = "Normal C Bloc"
-              , cSyntax = "Yacc/Bison"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Yacc/Bison" , "Normal C Bloc" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "C++" , "" )
-                      , rAttribute = NormalTok
-                      , 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 ( "Yacc/Bison" , "Dol" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "PC type"
-          , Context
-              { cName = "PC type"
-              , cSyntax = "Yacc/Bison"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '>'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = DataTypeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Percent Command"
-          , Context
-              { cName = "Percent Command"
-              , cSyntax = "Yacc/Bison"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Yacc/Bison" , "Comment" )
-                      , rAttribute = KeywordTok
-                      , 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 = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Yacc/Bison" , "Percent Command In" ) ]
-                      }
-                  ]
-              , cAttribute = KeywordTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Percent Command In"
-          , Context
-              { cName = "Percent Command In"
-              , cSyntax = "Yacc/Bison"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Yacc/Bison" , "StringOrChar" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '<'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Yacc/Bison" , "PC type" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Pre Start"
-          , Context
-              { cName = "Pre Start"
-              , cSyntax = "Yacc/Bison"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Yacc/Bison" , "Comment" )
-                      , 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 = Detect2Chars '%' '{'
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Yacc/Bison" , "C Declarations" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "."
-                              , reCompiled = Just (compileRegex True ".")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Yacc/Bison" , "Declarations" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Rule In"
-          , Context
-              { cName = "Rule In"
-              , cSyntax = "Yacc/Bison"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Yacc/Bison" , "Comment" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ';'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Yacc/Bison" , "Normal C Bloc" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '|'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Yacc/Bison" , "StringOrChar" )
-                      , 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
-              }
-          )
-        , ( "Rules"
-          , Context
-              { cName = "Rules"
-              , cSyntax = "Yacc/Bison"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Yacc/Bison" , "Comment" )
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '%' '%'
-                      , rAttribute = BaseNTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Yacc/Bison" , "User Code" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ':'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Yacc/Bison" , "Rule In" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "String"
-          , Context
-              { cName = "String"
-              , cSyntax = "Yacc/Bison"
-              , 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 = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "StringOrChar"
-          , Context
-              { cName = "StringOrChar"
-              , cSyntax = "Yacc/Bison"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = CharTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Yacc/Bison" , "Char" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Yacc/Bison" , "String" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "Union In"
-          , Context
-              { cName = "Union In"
-              , cSyntax = "Yacc/Bison"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Yacc/Bison" , "Union InIn" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "C++" , "" )
-                      , 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
-              }
-          )
-        , ( "Union InIn"
-          , Context
-              { cName = "Union InIn"
-              , cSyntax = "Yacc/Bison"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Yacc/Bison" , "Union InIn" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "C++" , "" )
-                      , 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
-              }
-          )
-        , ( "Union Start"
-          , Context
-              { cName = "Union Start"
-              , cSyntax = "Yacc/Bison"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Yacc/Bison" , "Comment" )
-                      , 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 = DetectChar '{'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Yacc/Bison" , "Union In" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "."
-                              , reCompiled = Just (compileRegex True ".")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AlertTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "User Code"
-          , Context
-              { cName = "User Code"
-              , cSyntax = "Yacc/Bison"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "C++" , "" )
-                      , 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
-              }
-          )
-        ]
-  , sAuthor = "Jan Villat (jan.villat@net2000.ch)"
-  , sVersion = "3"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.y" , "*.yy" ]
-  , sStartingContext = "Pre Start"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Yacc/Bison\", sFilename = \"yacc.xml\", sShortname = \"Yacc\", sContexts = fromList [(\"C Declarations\",Context {cName = \"C Declarations\", cSyntax = \"Yacc/Bison\", cRules = [Rule {rMatcher = IncludeRules (\"Yacc/Bison\",\"Comment\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '%' '}', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"C++\",\"\"), 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}),(\"Char\",Context {cName = \"Char\", cSyntax = \"Yacc/Bison\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CharTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Comment\",Context {cName = \"Comment\", cSyntax = \"Yacc/Bison\", cRules = [Rule {rMatcher = Detect2Chars '/' '*', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Yacc/Bison\",\"CommentStar\")]},Rule {rMatcher = Detect2Chars '/' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Yacc/Bison\",\"CommentSlash\")]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CommentSlash\",Context {cName = \"CommentSlash\", cSyntax = \"Yacc/Bison\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[^\\\\\\\\]$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CommentStar\",Context {cName = \"CommentStar\", cSyntax = \"Yacc/Bison\", cRules = [Rule {rMatcher = Detect2Chars '*' '/', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Declarations\",Context {cName = \"Declarations\", cSyntax = \"Yacc/Bison\", cRules = [Rule {rMatcher = IncludeRules (\"Yacc/Bison\",\"Comment\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"%union\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Yacc/Bison\",\"Union Start\")]},Rule {rMatcher = Detect2Chars '%' '%', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Yacc/Bison\",\"Rules\")]},Rule {rMatcher = Detect2Chars '%' '{', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Yacc/Bison\",\"C Declarations\")]},Rule {rMatcher = DetectChar '%', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Yacc/Bison\",\"Percent Command\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Dol\",Context {cName = \"Dol\", cSyntax = \"Yacc/Bison\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"<[^>]+>\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Yacc/Bison\",\"DolEnd\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Push (\"Yacc/Bison\",\"DolEnd\")], cDynamic = False}),(\"DolEnd\",Context {cName = \"DolEnd\", cSyntax = \"Yacc/Bison\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\d+\", reCaseSensitive = True}), 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]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Normal C Bloc\",Context {cName = \"Normal C Bloc\", cSyntax = \"Yacc/Bison\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Yacc/Bison\",\"Normal C Bloc\")]},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"C++\",\"\"), rAttribute = NormalTok, 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 (\"Yacc/Bison\",\"Dol\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"PC type\",Context {cName = \"PC type\", cSyntax = \"Yacc/Bison\", cRules = [Rule {rMatcher = DetectChar '>', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = DataTypeTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop,Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Percent Command\",Context {cName = \"Percent Command\", cSyntax = \"Yacc/Bison\", cRules = [Rule {rMatcher = IncludeRules (\"Yacc/Bison\",\"Comment\"), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\W\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Yacc/Bison\",\"Percent Command In\")]}], cAttribute = KeywordTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Percent Command In\",Context {cName = \"Percent Command In\", cSyntax = \"Yacc/Bison\", cRules = [Rule {rMatcher = IncludeRules (\"Yacc/Bison\",\"StringOrChar\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '<', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Yacc/Bison\",\"PC type\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Pre Start\",Context {cName = \"Pre Start\", cSyntax = \"Yacc/Bison\", cRules = [Rule {rMatcher = IncludeRules (\"Yacc/Bison\",\"Comment\"), 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 = Detect2Chars '%' '{', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Yacc/Bison\",\"C Declarations\")]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Yacc/Bison\",\"Declarations\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Rule In\",Context {cName = \"Rule In\", cSyntax = \"Yacc/Bison\", cRules = [Rule {rMatcher = IncludeRules (\"Yacc/Bison\",\"Comment\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar ';', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Yacc/Bison\",\"Normal C Bloc\")]},Rule {rMatcher = DetectChar '|', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Yacc/Bison\",\"StringOrChar\"), 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}),(\"Rules\",Context {cName = \"Rules\", cSyntax = \"Yacc/Bison\", cRules = [Rule {rMatcher = IncludeRules (\"Yacc/Bison\",\"Comment\"), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '%' '%', rAttribute = BaseNTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Yacc/Bison\",\"User Code\")]},Rule {rMatcher = DetectChar ':', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Yacc/Bison\",\"Rule In\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"String\",Context {cName = \"String\", cSyntax = \"Yacc/Bison\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\.\", reCaseSensitive = True}), rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"StringOrChar\",Context {cName = \"StringOrChar\", cSyntax = \"Yacc/Bison\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = CharTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Yacc/Bison\",\"Char\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Yacc/Bison\",\"String\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"Union In\",Context {cName = \"Union In\", cSyntax = \"Yacc/Bison\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Yacc/Bison\",\"Union InIn\")]},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"C++\",\"\"), 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}),(\"Union InIn\",Context {cName = \"Union InIn\", cSyntax = \"Yacc/Bison\", cRules = [Rule {rMatcher = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Yacc/Bison\",\"Union InIn\")]},Rule {rMatcher = DetectChar '}', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"C++\",\"\"), 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}),(\"Union Start\",Context {cName = \"Union Start\", cSyntax = \"Yacc/Bison\", cRules = [Rule {rMatcher = IncludeRules (\"Yacc/Bison\",\"Comment\"), 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 = DetectChar '{', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Yacc/Bison\",\"Union In\")]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = AlertTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"User Code\",Context {cName = \"User Code\", cSyntax = \"Yacc/Bison\", cRules = [Rule {rMatcher = IncludeRules (\"C++\",\"\"), 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})], sAuthor = \"Jan Villat (jan.villat@net2000.ch)\", sVersion = \"3\", sLicense = \"LGPL\", sExtensions = [\"*.y\",\"*.yy\"], sStartingContext = \"Pre Start\"}"
diff --git a/src/Skylighting/Syntax/Yaml.hs b/src/Skylighting/Syntax/Yaml.hs
--- a/src/Skylighting/Syntax/Yaml.hs
+++ b/src/Skylighting/Syntax/Yaml.hs
@@ -2,1601 +2,6 @@
 module Skylighting.Syntax.Yaml (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "YAML"
-  , sFilename = "yaml.xml"
-  , sShortname = "Yaml"
-  , sContexts =
-      fromList
-        [ ( "EOD"
-          , Context
-              { cName = "EOD"
-              , cSyntax = "YAML"
-              , cRules = []
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "attribute"
-          , Context
-              { cName = "attribute"
-              , cSyntax = "YAML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "comment" ) ]
-                      }
-                  ]
-              , cAttribute = AttributeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "attribute-end"
-          , Context
-              { cName = "attribute-end"
-              , cSyntax = "YAML"
-              , cRules = []
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "attribute-end-inline"
-          , Context
-              { cName = "attribute-end-inline"
-              , cSyntax = "YAML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s*"
-                              , reCompiled = Just (compileRegex True "\\s*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = ",\\s"
-                              , reCompiled = Just (compileRegex True ",\\s")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop , Pop , Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "attribute-inline"
-          , Context
-              { cName = "attribute-inline"
-              , cSyntax = "YAML"
-              , 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 = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "comment" ) ]
-                      }
-                  ]
-              , cAttribute = AttributeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "attribute-pre"
-          , Context
-              { cName = "attribute-pre"
-              , cSyntax = "YAML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = AttributeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "null$"
-                              , reCompiled = Just (compileRegex True "null$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , 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 = DataTypeTok
-                      , 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 ( "YAML" , "list" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "hash" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "attribute-string" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "attribute-stringx" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "&\\S+"
-                              , reCompiled = Just (compileRegex True "&\\S+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "attribute" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\*\\S+"
-                              , reCompiled = Just (compileRegex True "\\*\\S+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "attribute" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "."
-                              , reCompiled = Just (compileRegex True ".")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AttributeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "attribute" ) ]
-                      }
-                  ]
-              , cAttribute = AttributeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "attribute-pre-inline"
-          , Context
-              { cName = "attribute-pre-inline"
-              , cSyntax = "YAML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = AttributeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "null"
-                      , rAttribute = DataTypeTok
-                      , 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 = DataTypeTok
-                      , 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 ( "YAML" , "list" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "hash" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "attribute-string-inline" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "attribute-stringx-inline" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "&\\S+"
-                              , reCompiled = Just (compileRegex True "&\\S+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "attribute-inline" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\*\\S+"
-                              , reCompiled = Just (compileRegex True "\\*\\S+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "attribute-inline" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ','
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "."
-                              , reCompiled = Just (compileRegex True ".")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = AttributeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "attribute-inline" ) ]
-                      }
-                  ]
-              , cAttribute = AttributeTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "attribute-string"
-          , Context
-              { cName = "attribute-string"
-              , cSyntax = "YAML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "attribute-end" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "attribute-string-inline"
-          , Context
-              { cName = "attribute-string-inline"
-              , cSyntax = "YAML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "attribute-end-inline" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "attribute-stringx"
-          , Context
-              { cName = "attribute-stringx"
-              , cSyntax = "YAML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "attribute-end" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "attribute-stringx-inline"
-          , Context
-              { cName = "attribute-stringx-inline"
-              , cSyntax = "YAML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "attribute-end-inline" ) ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "comment"
-          , Context
-              { cName = "comment"
-              , cSyntax = "YAML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Modelines" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "dash"
-          , Context
-              { cName = "dash"
-              , cSyntax = "YAML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "null$"
-                              , reCompiled = Just (compileRegex True "null$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , 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 = DataTypeTok
-                      , 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 = DataTypeTok
-                      , 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 = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "."
-                              , reCompiled = Just (compileRegex True ".")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "directive"
-          , Context
-              { cName = "directive"
-              , cSyntax = "YAML"
-              , cRules = []
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "hash"
-          , Context
-              { cName = "hash"
-              , cSyntax = "YAML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\??\\s*[^\"'#-][^:#]*:"
-                              , reCompiled = Just (compileRegex True "\\??\\s*[^\"'#-][^:#]*:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "attribute-pre-inline" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\??\\s*\"[^\"#]+\"\\s*:"
-                              , reCompiled = Just (compileRegex True "\\??\\s*\"[^\"#]+\"\\s*:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "attribute-pre-inline" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\??\\s*'[^'#]+'\\s*:"
-                              , reCompiled = Just (compileRegex True "\\??\\s*'[^'#]+'\\s*:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "attribute-pre-inline" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "header"
-          , Context
-              { cName = "header"
-              , cSyntax = "YAML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "comment" ) ]
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "list"
-          , Context
-              { cName = "list"
-              , cSyntax = "YAML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\??\\s*[^\"'#-][^:#]*:"
-                              , reCompiled = Just (compileRegex True "\\??\\s*[^\"'#-][^:#]*:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "attribute-pre" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\??\\s*\"[^\"#]+\"\\s*:"
-                              , reCompiled = Just (compileRegex True "\\??\\s*\"[^\"#]+\"\\s*:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "attribute-pre" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\??\\s*'[^'#]+'\\s*:"
-                              , reCompiled = Just (compileRegex True "\\??\\s*'[^'#]+'\\s*:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "attribute-pre" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "null"
-                      , rAttribute = DataTypeTok
-                      , 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 = DataTypeTok
-                      , 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 ( "YAML" , "list" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "hash" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "&\\S+"
-                              , reCompiled = Just (compileRegex True "&\\S+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , 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 = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "string" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "stringx" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ','
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "normal"
-          , Context
-              { cName = "normal"
-              , cSyntax = "YAML"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "---"
-                              , reCompiled = Just (compileRegex True "---")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "YAML" , "header" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\.\\.\\.$"
-                              , reCompiled = Just (compileRegex True "\\.\\.\\.$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "YAML" , "EOD" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%"
-                              , reCompiled = Just (compileRegex True "%")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "YAML" , "directive" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectSpaces
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '-'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "dash" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "list" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '{'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "hash" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "!!\\S+"
-                              , reCompiled = Just (compileRegex True "!!\\S+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "&\\S+"
-                              , reCompiled = Just (compileRegex True "&\\S+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\*\\S+"
-                              , reCompiled = Just (compileRegex True "\\*\\S+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\??\\s*[^\"'#-][^:#]*:"
-                              , reCompiled = Just (compileRegex True "\\??\\s*[^\"'#-][^:#]*:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "attribute-pre" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\??\\s*\"[^\"#]+\"\\s*:"
-                              , reCompiled = Just (compileRegex True "\\??\\s*\"[^\"#]+\"\\s*:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "attribute-pre" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\??\\s*'[^'#]+'\\s*:"
-                              , reCompiled = Just (compileRegex True "\\??\\s*'[^'#]+'\\s*:")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "attribute-pre" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "string" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "YAML" , "stringx" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "string"
-          , Context
-              { cName = "string"
-              , cSyntax = "YAML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "stringx"
-          , Context
-              { cName = "stringx"
-              , cSyntax = "YAML"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectIdentifier
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        ]
-  , sAuthor = "Dr Orlovsky MA (dr.orlovsky@gmail.com)"
-  , sVersion = "3"
-  , sLicense = "LGPL"
-  , sExtensions = [ "*.yaml" , "*.yml" ]
-  , sStartingContext = "normal"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"YAML\", sFilename = \"yaml.xml\", sShortname = \"Yaml\", sContexts = fromList [(\"EOD\",Context {cName = \"EOD\", cSyntax = \"YAML\", cRules = [], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"attribute\",Context {cName = \"attribute\", cSyntax = \"YAML\", cRules = [Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"comment\")]}], cAttribute = AttributeTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"attribute-end\",Context {cName = \"attribute-end\", cSyntax = \"YAML\", cRules = [], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop,Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"attribute-end-inline\",Context {cName = \"attribute-end-inline\", cSyntax = \"YAML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '}', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \",\\\\s\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [Pop,Pop,Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"attribute-inline\",Context {cName = \"attribute-inline\", cSyntax = \"YAML\", 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 = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"comment\")]}], cAttribute = AttributeTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"attribute-pre\",Context {cName = \"attribute-pre\", cSyntax = \"YAML\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = AttributeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"null$\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"!!\\\\S+\", reCaseSensitive = True}), rAttribute = DataTypeTok, 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 (\"YAML\",\"list\")]},Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"hash\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"attribute-string\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"attribute-stringx\")]},Rule {rMatcher = RegExpr (RE {reString = \"&\\\\S+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"attribute\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\*\\\\S+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"attribute\")]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = AttributeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"attribute\")]}], cAttribute = AttributeTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"attribute-pre-inline\",Context {cName = \"attribute-pre-inline\", cSyntax = \"YAML\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = AttributeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"comment\")]},Rule {rMatcher = StringDetect \"null\", rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"!!\\\\S+\", reCaseSensitive = True}), rAttribute = DataTypeTok, 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 (\"YAML\",\"list\")]},Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"hash\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"attribute-string-inline\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"attribute-stringx-inline\")]},Rule {rMatcher = RegExpr (RE {reString = \"&\\\\S+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"attribute-inline\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\*\\\\S+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"attribute-inline\")]},Rule {rMatcher = DetectChar ',', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = AttributeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"attribute-inline\")]}], cAttribute = AttributeTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"attribute-string\",Context {cName = \"attribute-string\", cSyntax = \"YAML\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"attribute-end\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"attribute-string-inline\",Context {cName = \"attribute-string-inline\", cSyntax = \"YAML\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"attribute-end-inline\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"attribute-stringx\",Context {cName = \"attribute-stringx\", cSyntax = \"YAML\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"attribute-end\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"attribute-stringx-inline\",Context {cName = \"attribute-stringx-inline\", cSyntax = \"YAML\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"attribute-end-inline\")]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"comment\",Context {cName = \"comment\", cSyntax = \"YAML\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Modelines\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"dash\",Context {cName = \"dash\", cSyntax = \"YAML\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"null$\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"!!\\\\S+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"&\\\\S+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\*\\\\S+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \".\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"directive\",Context {cName = \"directive\", cSyntax = \"YAML\", cRules = [], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"hash\",Context {cName = \"hash\", cSyntax = \"YAML\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\??\\\\s*[^\\\"'#-][^:#]*:\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"attribute-pre-inline\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\??\\\\s*\\\"[^\\\"#]+\\\"\\\\s*:\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"attribute-pre-inline\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\??\\\\s*'[^'#]+'\\\\s*:\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"attribute-pre-inline\")]},Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"header\",Context {cName = \"header\", cSyntax = \"YAML\", cRules = [Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"comment\")]}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"list\",Context {cName = \"list\", cSyntax = \"YAML\", cRules = [Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"comment\")]},Rule {rMatcher = DetectChar ']', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\??\\\\s*[^\\\"'#-][^:#]*:\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"attribute-pre\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\??\\\\s*\\\"[^\\\"#]+\\\"\\\\s*:\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"attribute-pre\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\??\\\\s*'[^'#]+'\\\\s*:\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"attribute-pre\")]},Rule {rMatcher = StringDetect \"null\", rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"!!\\\\S+\", reCaseSensitive = True}), rAttribute = DataTypeTok, 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 (\"YAML\",\"list\")]},Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"hash\")]},Rule {rMatcher = RegExpr (RE {reString = \"&\\\\S+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\*\\\\S+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"string\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"stringx\")]},Rule {rMatcher = DetectChar ',', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"normal\",Context {cName = \"normal\", cSyntax = \"YAML\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"---\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"YAML\",\"header\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.\\\\.\\\\.$\", reCaseSensitive = True}), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"YAML\",\"EOD\")]},Rule {rMatcher = RegExpr (RE {reString = \"%\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"YAML\",\"directive\")]},Rule {rMatcher = DetectSpaces, rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"comment\")]},Rule {rMatcher = DetectChar '-', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"dash\")]},Rule {rMatcher = DetectChar '[', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"list\")]},Rule {rMatcher = DetectChar '{', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"hash\")]},Rule {rMatcher = RegExpr (RE {reString = \"!!\\\\S+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"&\\\\S+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\*\\\\S+\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\??\\\\s*[^\\\"'#-][^:#]*:\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"attribute-pre\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\??\\\\s*\\\"[^\\\"#]+\\\"\\\\s*:\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"attribute-pre\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\??\\\\s*'[^'#]+'\\\\s*:\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"attribute-pre\")]},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"string\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"YAML\",\"stringx\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"string\",Context {cName = \"string\", cSyntax = \"YAML\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"stringx\",Context {cName = \"stringx\", cSyntax = \"YAML\", cRules = [Rule {rMatcher = DetectIdentifier, rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False})], sAuthor = \"Dr Orlovsky MA (dr.orlovsky@gmail.com)\", sVersion = \"3\", sLicense = \"LGPL\", sExtensions = [\"*.yaml\",\"*.yml\"], sStartingContext = \"normal\"}"
diff --git a/src/Skylighting/Syntax/Zsh.hs b/src/Skylighting/Syntax/Zsh.hs
--- a/src/Skylighting/Syntax/Zsh.hs
+++ b/src/Skylighting/Syntax/Zsh.hs
@@ -2,4296 +2,6 @@
 module Skylighting.Syntax.Zsh (syntax) where
 
 import Skylighting.Types
-import Data.Map
-import Skylighting.Regex
-import qualified Data.Set
-
-syntax :: Syntax
-syntax = Syntax
-  { sName = "Zsh"
-  , sFilename = "zsh.xml"
-  , sShortname = "Zsh"
-  , sContexts =
-      fromList
-        [ ( "Assign"
-          , Context
-              { cName = "Assign"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "AssignArray" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindOthers" )
-                      , rAttribute = NormalTok
-                      , 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 = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "AssignArray"
-          , Context
-              { cName = "AssignArray"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "Subscript" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "Assign" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindMost" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "AssignSubscr"
-          , Context
-              { cName = "AssignSubscr"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "Subscript" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '+' '='
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "Assign" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "Assign" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindOthers" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "Case"
-          , Context
-              { cName = "Case"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\sin\\b"
-                              , reCompiled = Just (compileRegex True "\\sin\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "CaseIn" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindMost" )
-                      , 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
-              }
-          )
-        , ( "CaseExpr"
-          , Context
-              { cName = "CaseExpr"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars ';' ';'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "esac(?=$|[\\s;)])"
-                              , reCompiled = Just (compileRegex True "esac(?=$|[\\s;)])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindAll" )
-                      , 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
-              }
-          )
-        , ( "CaseIn"
-          , Context
-              { cName = "CaseIn"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\besac(?=$|[\\s;)])"
-                              , reCompiled = Just (compileRegex True "\\besac(?=$|[\\s;)])")
-                              , reCaseSensitive = True
-                              }
-                      , 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 = [ Push ( "Zsh" , "CaseExpr" ) ]
-                      }
-                  , Rule
-                      { rMatcher = AnyChar "(|"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindMost" )
-                      , 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 = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Alerts" , "" )
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CommentBackq"
-          , Context
-              { cName = "CommentBackq"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^`](?=`)"
-                              , reCompiled = Just (compileRegex True "[^`](?=`)")
-                              , reCaseSensitive = True
-                              }
-                      , 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 = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "CommentParen"
-          , Context
-              { cName = "CommentParen"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^)](?=\\))"
-                              , reCompiled = Just (compileRegex True "[^)](?=\\))")
-                              , reCaseSensitive = True
-                              }
-                      , 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 = []
-                      }
-                  ]
-              , cAttribute = CommentTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ExprBracket"
-          , Context
-              { cName = "ExprBracket"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s\\](?=($|[\\s;|&]))"
-                              , reCompiled = Just (compileRegex True "\\s\\](?=($|[\\s;|&]))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\](?=($|[\\s;|&]))"
-                              , reCompiled = Just (compileRegex True "\\](?=($|[\\s;|&]))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "ExprSubParen" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindTests" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindMost" )
-                      , 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
-              }
-          )
-        , ( "ExprDblBracket"
-          , Context
-              { cName = "ExprDblBracket"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s\\]\\](?=($|[\\s;|&]))"
-                              , reCompiled = Just (compileRegex True "\\s\\]\\](?=($|[\\s;|&]))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\]\\](?=($|[\\s;|&]))"
-                              , reCompiled = Just (compileRegex True "\\]\\](?=($|[\\s;|&]))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "ExprSubParen" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindTests" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindMost" )
-                      , 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
-              }
-          )
-        , ( "ExprDblParen"
-          , Context
-              { cName = "ExprDblParen"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars ')' ')'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "ExprSubParen" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindMost" )
-                      , 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
-              }
-          )
-        , ( "ExprDblParenSubst"
-          , Context
-              { cName = "ExprDblParenSubst"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars ')' ')'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "ExprSubParen" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindMost" )
-                      , 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
-              }
-          )
-        , ( "ExprSubParen"
-          , Context
-              { cName = "ExprSubParen"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "ExprSubParen" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindMost" )
-                      , 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
-              }
-          )
-        , ( "FindAll"
-          , Context
-              { cName = "FindAll"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindComments" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindCommands" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindOthers" )
-                      , 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
-              }
-          )
-        , ( "FindCommands"
-          , Context
-              { cName = "FindCommands"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '(' '('
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "ExprDblParen" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[\\[(?=($|\\s))"
-                              , reCompiled = Just (compileRegex True "\\[\\[(?=($|\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Zsh" , "ExprDblBracket" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s\\[\\[(?=($|\\s))"
-                              , reCompiled = Just (compileRegex True "\\s\\[\\[(?=($|\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "ExprDblBracket" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\[(?=($|\\s))"
-                              , reCompiled = Just (compileRegex True "\\[(?=($|\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Push ( "Zsh" , "ExprBracket" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s\\[(?=($|\\s))"
-                              , reCompiled = Just (compileRegex True "\\s\\[(?=($|\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "ExprBracket" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\{(?=($|\\s))"
-                              , reCompiled = Just (compileRegex True "\\{(?=($|\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "Group" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '('
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "SubShell" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bdo(?![\\w$+-])"
-                              , reCompiled = Just (compileRegex True "\\bdo(?![\\w$+-])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bdone(?![\\w$+-])"
-                              , reCompiled = Just (compileRegex True "\\bdone(?![\\w$+-])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bif(?=($|\\s))"
-                              , reCompiled = Just (compileRegex True "\\bif(?=($|\\s))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bfi(?![\\w$+-])"
-                              , reCompiled = Just (compileRegex True "\\bfi(?![\\w$+-])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bcase(?![\\w$+-])"
-                              , reCompiled = Just (compileRegex True "\\bcase(?![\\w$+-])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "Case" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-[A-Za-z0-9][A-Za-z0-9_]*"
-                              , reCompiled = Just (compileRegex True "-[A-Za-z0-9][A-Za-z0-9_]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "--[a-z][A-Za-z0-9_-]*"
-                              , reCompiled = Just (compileRegex True "--[a-z][A-Za-z0-9_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[A-Za-z_][A-Za-z0-9_]*\\+?="
-                              , reCompiled =
-                                  Just (compileRegex True "\\b[A-Za-z_][A-Za-z0-9_]*\\+?=")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "Assign" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[A-Za-z_][A-Za-z0-9_]*(?=\\[.+\\]\\+?=)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex True "\\b[A-Za-z_][A-Za-z0-9_]*(?=\\[.+\\]\\+?=)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "AssignSubscr" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect ":()"
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\bfunction\\b"
-                              , reCompiled = Just (compileRegex True "\\bfunction\\b")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "FunctionDef" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,;<=>?\\`|~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "elif"
-                               , "else"
-                               , "for"
-                               , "function"
-                               , "in"
-                               , "select"
-                               , "set"
-                               , "then"
-                               , "until"
-                               , "while"
-                               ])
-                      , rAttribute = KeywordTok
-                      , 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 = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,;<=>?\\`|~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "-"
-                               , "."
-                               , ":"
-                               , "alias"
-                               , "autoload"
-                               , "bg"
-                               , "bindkey"
-                               , "break"
-                               , "builtin"
-                               , "bye"
-                               , "cap"
-                               , "cd"
-                               , "chdir"
-                               , "clone"
-                               , "command"
-                               , "comparguments"
-                               , "compcall"
-                               , "compctl"
-                               , "compdescribe"
-                               , "compfiles"
-                               , "compgroups"
-                               , "compquote"
-                               , "comptags"
-                               , "comptry"
-                               , "compvalues"
-                               , "continue"
-                               , "dirs"
-                               , "disable"
-                               , "disown"
-                               , "echo"
-                               , "echotc"
-                               , "echoti"
-                               , "emulate"
-                               , "enable"
-                               , "eval"
-                               , "exec"
-                               , "exit"
-                               , "false"
-                               , "fc"
-                               , "fg"
-                               , "functions"
-                               , "getcap"
-                               , "getopts"
-                               , "hash"
-                               , "history"
-                               , "jobs"
-                               , "kill"
-                               , "let"
-                               , "limit"
-                               , "log"
-                               , "logout"
-                               , "noglob"
-                               , "popd"
-                               , "print"
-                               , "printf"
-                               , "pushd"
-                               , "pushln"
-                               , "pwd"
-                               , "r"
-                               , "rehash"
-                               , "return"
-                               , "sched"
-                               , "set"
-                               , "setcap"
-                               , "setopt"
-                               , "shift"
-                               , "source"
-                               , "stat"
-                               , "suspend"
-                               , "test"
-                               , "times"
-                               , "trap"
-                               , "true"
-                               , "ttyctl"
-                               , "type"
-                               , "ulimit"
-                               , "umask"
-                               , "unalias"
-                               , "unfunction"
-                               , "unhash"
-                               , "unlimit"
-                               , "unset"
-                               , "unsetopt"
-                               , "vared"
-                               , "wait"
-                               , "whence"
-                               , "where"
-                               , "which"
-                               , "zcompile"
-                               , "zformat"
-                               , "zftp"
-                               , "zle"
-                               , "zmodload"
-                               , "zparseopts"
-                               , "zprof"
-                               , "zpty"
-                               , "zregexparse"
-                               , "zsocket"
-                               , "zstyle"
-                               , "ztcp"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,;<=>?\\`|~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "aclocal"
-                               , "aconnect"
-                               , "aplay"
-                               , "apm"
-                               , "apmsleep"
-                               , "apropos"
-                               , "ar"
-                               , "arch"
-                               , "arecord"
-                               , "as"
-                               , "as86"
-                               , "autoconf"
-                               , "autoheader"
-                               , "automake"
-                               , "awk"
-                               , "basename"
-                               , "bash"
-                               , "bc"
-                               , "bison"
-                               , "bunzip2"
-                               , "bzcat"
-                               , "bzcmp"
-                               , "bzdiff"
-                               , "bzegrep"
-                               , "bzfgrep"
-                               , "bzgrep"
-                               , "bzip2"
-                               , "bzip2recover"
-                               , "bzless"
-                               , "bzmore"
-                               , "c++"
-                               , "cal"
-                               , "cat"
-                               , "cc"
-                               , "cd-read"
-                               , "cdda2wav"
-                               , "cdparanoia"
-                               , "cdrdao"
-                               , "cdrecord"
-                               , "chattr"
-                               , "chfn"
-                               , "chgrp"
-                               , "chmod"
-                               , "chown"
-                               , "chroot"
-                               , "chsh"
-                               , "chvt"
-                               , "clear"
-                               , "cmp"
-                               , "co"
-                               , "col"
-                               , "comm"
-                               , "cp"
-                               , "cpio"
-                               , "cpp"
-                               , "cut"
-                               , "date"
-                               , "dc"
-                               , "dcop"
-                               , "dd"
-                               , "deallocvt"
-                               , "df"
-                               , "diff"
-                               , "diff3"
-                               , "dir"
-                               , "dircolors"
-                               , "directomatic"
-                               , "dirname"
-                               , "dmesg"
-                               , "dnsdomainname"
-                               , "domainname"
-                               , "du"
-                               , "dumpkeys"
-                               , "echo"
-                               , "ed"
-                               , "egrep"
-                               , "env"
-                               , "expr"
-                               , "false"
-                               , "fbset"
-                               , "fgconsole"
-                               , "fgrep"
-                               , "file"
-                               , "find"
-                               , "flex"
-                               , "flex++"
-                               , "fmt"
-                               , "free"
-                               , "ftp"
-                               , "funzip"
-                               , "fuser"
-                               , "g++"
-                               , "gawk"
-                               , "gc"
-                               , "gcc"
-                               , "gdb"
-                               , "getent"
-                               , "getkeycodes"
-                               , "getopt"
-                               , "gettext"
-                               , "gettextize"
-                               , "gimp"
-                               , "gimp-remote"
-                               , "gimptool"
-                               , "gmake"
-                               , "gocr"
-                               , "grep"
-                               , "groff"
-                               , "groups"
-                               , "gs"
-                               , "gunzip"
-                               , "gzexe"
-                               , "gzip"
-                               , "head"
-                               , "hexdump"
-                               , "hostname"
-                               , "id"
-                               , "igawk"
-                               , "install"
-                               , "join"
-                               , "kbd_mode"
-                               , "kbdrate"
-                               , "kdialog"
-                               , "kfile"
-                               , "kill"
-                               , "killall"
-                               , "last"
-                               , "lastb"
-                               , "ld"
-                               , "ld86"
-                               , "ldd"
-                               , "less"
-                               , "lex"
-                               , "link"
-                               , "ln"
-                               , "loadkeys"
-                               , "loadunimap"
-                               , "locate"
-                               , "lockfile"
-                               , "login"
-                               , "logname"
-                               , "lp"
-                               , "lpr"
-                               , "ls"
-                               , "lsattr"
-                               , "lsmod"
-                               , "lsmod.old"
-                               , "lynx"
-                               , "lzcat"
-                               , "lzcmp"
-                               , "lzdiff"
-                               , "lzegrep"
-                               , "lzfgrep"
-                               , "lzgrep"
-                               , "lzless"
-                               , "lzma"
-                               , "lzmainfo"
-                               , "lzmore"
-                               , "m4"
-                               , "make"
-                               , "man"
-                               , "mapscrn"
-                               , "mesg"
-                               , "mkdir"
-                               , "mkfifo"
-                               , "mknod"
-                               , "mktemp"
-                               , "more"
-                               , "mount"
-                               , "msgfmt"
-                               , "mv"
-                               , "namei"
-                               , "nano"
-                               , "nasm"
-                               , "nawk"
-                               , "netstat"
-                               , "nice"
-                               , "nisdomainname"
-                               , "nl"
-                               , "nm"
-                               , "nm86"
-                               , "nmap"
-                               , "nohup"
-                               , "nop"
-                               , "nroff"
-                               , "od"
-                               , "openvt"
-                               , "passwd"
-                               , "patch"
-                               , "pcregrep"
-                               , "pcretest"
-                               , "perl"
-                               , "perror"
-                               , "pgawk"
-                               , "pidof"
-                               , "ping"
-                               , "pr"
-                               , "printf"
-                               , "procmail"
-                               , "prune"
-                               , "ps"
-                               , "ps2ascii"
-                               , "ps2epsi"
-                               , "ps2frag"
-                               , "ps2pdf"
-                               , "ps2ps"
-                               , "psbook"
-                               , "psmerge"
-                               , "psnup"
-                               , "psresize"
-                               , "psselect"
-                               , "pstops"
-                               , "pstree"
-                               , "pwd"
-                               , "rbash"
-                               , "rcs"
-                               , "readlink"
-                               , "red"
-                               , "resizecons"
-                               , "rev"
-                               , "rm"
-                               , "rmdir"
-                               , "run-parts"
-                               , "sash"
-                               , "scp"
-                               , "sed"
-                               , "seq"
-                               , "setfont"
-                               , "setkeycodes"
-                               , "setleds"
-                               , "setmetamode"
-                               , "setserial"
-                               , "setterm"
-                               , "sh"
-                               , "showkey"
-                               , "shred"
-                               , "size"
-                               , "size86"
-                               , "skill"
-                               , "sleep"
-                               , "slogin"
-                               , "snice"
-                               , "sort"
-                               , "sox"
-                               , "split"
-                               , "ssed"
-                               , "ssh"
-                               , "ssh-add"
-                               , "ssh-agent"
-                               , "ssh-keygen"
-                               , "ssh-keyscan"
-                               , "stat"
-                               , "strings"
-                               , "strip"
-                               , "stty"
-                               , "su"
-                               , "sudo"
-                               , "suidperl"
-                               , "sum"
-                               , "sync"
-                               , "tac"
-                               , "tail"
-                               , "tar"
-                               , "tee"
-                               , "tempfile"
-                               , "test"
-                               , "touch"
-                               , "tr"
-                               , "troff"
-                               , "true"
-                               , "umount"
-                               , "uname"
-                               , "unicode_start"
-                               , "unicode_stop"
-                               , "uniq"
-                               , "unlink"
-                               , "unlzma"
-                               , "unxz"
-                               , "unzip"
-                               , "updatedb"
-                               , "updmap"
-                               , "uptime"
-                               , "users"
-                               , "utmpdump"
-                               , "uuidgen"
-                               , "vdir"
-                               , "vmstat"
-                               , "w"
-                               , "wall"
-                               , "wc"
-                               , "wget"
-                               , "whatis"
-                               , "whereis"
-                               , "which"
-                               , "who"
-                               , "whoami"
-                               , "write"
-                               , "xargs"
-                               , "xhost"
-                               , "xmodmap"
-                               , "xset"
-                               , "xz"
-                               , "xzcat"
-                               , "yacc"
-                               , "yes"
-                               , "ypdomainname"
-                               , "zcat"
-                               , "zcmp"
-                               , "zdiff"
-                               , "zegrep"
-                               , "zfgrep"
-                               , "zforce"
-                               , "zgrep"
-                               , "zip"
-                               , "zless"
-                               , "zmore"
-                               , "znew"
-                               , "zsh"
-                               , "zsoelim"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          Keyword
-                            KeywordAttr
-                              { keywordCaseSensitive = True
-                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,;<=>?\\`|~"
-                              }
-                            (makeWordSet
-                               True
-                               [ "declare"
-                               , "export"
-                               , "float"
-                               , "getln"
-                               , "integer"
-                               , "local"
-                               , "read"
-                               , "readonly"
-                               , "typeset"
-                               , "unset"
-                               ])
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "VarName" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\d*<<<"
-                              , reCompiled = Just (compileRegex True "\\d*<<<")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<<"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "HereDoc" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[<>]\\("
-                              , reCompiled = Just (compileRegex True "[<>]\\(")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "ProcessSubst" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([0-9]*(>{1,2}|<)(&[0-9]+-?)?|&>|>&|[0-9]*<>)"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "([0-9]*(>{1,2}|<)(&[0-9]+-?)?|&>|>&|[0-9]*<>)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "([|&])\\1?"
-                              , reCompiled = Just (compileRegex True "([|&])\\1?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Za-z_:][A-Za-z0-9_:#%@-]*\\s*\\(\\)"
-                              , reCompiled =
-                                  Just (compileRegex True "[A-Za-z_:][A-Za-z0-9_:#%@-]*\\s*\\(\\)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindComments"
-          , Context
-              { cName = "FindComments"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "Comment" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\s;](?=#)"
-                              , reCompiled = Just (compileRegex True "[\\s;](?=#)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "Comment" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindCommentsBackq"
-          , Context
-              { cName = "FindCommentsBackq"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "CommentBackq" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\s;](?=#)"
-                              , reCompiled = Just (compileRegex True "[\\s;](?=#)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "CommentBackq" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindCommentsParen"
-          , Context
-              { cName = "FindCommentsParen"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '#'
-                      , rAttribute = CommentTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = True
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "CommentParen" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[\\s;](?=#)"
-                              , reCompiled = Just (compileRegex True "[\\s;](?=#)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "CommentParen" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindMost"
-          , Context
-              { cName = "FindMost"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindComments" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindOthers" )
-                      , 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
-              }
-          )
-        , ( "FindOthers"
-          , Context
-              { cName = "FindOthers"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[][;\\\\$`{}()|&<>* ]"
-                              , reCompiled = Just (compileRegex True "\\\\[][;\\\\$`{}()|&<>* ]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\$"
-                              , reCompiled = Just (compileRegex True "\\\\$")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\{(?!(\\s|$))\\S*\\}"
-                              , reCompiled = Just (compileRegex True "\\{(?!(\\s|$))\\S*\\}")
-                              , 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 = []
-                      }
-                  , 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 = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "/([\\w_@.%*?+-]|\\\\ )*(?=([\\s/):;$`'\"]|$))"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "/([\\w_@.%*?+-]|\\\\ )*(?=([\\s/):;$`'\"]|$))")
-                              , 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
-              }
-          )
-        , ( "FindStrings"
-          , Context
-              { cName = "FindStrings"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = Detect2Chars '\\' '\''
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '\\' '"'
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "StringSQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "StringDQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "StringEsc" ) ]
-                      }
-                  , Rule
-                      { rMatcher = Detect2Chars '$' '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "StringDQ" ) ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindSubstitutions"
-          , Context
-              { cName = "FindSubstitutions"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$[A-Za-z_][A-Za-z0-9_]*\\["
-                              , reCompiled =
-                                  Just (compileRegex True "\\$[A-Za-z_][A-Za-z0-9_]*\\[")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "Subscript" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$[A-Za-z_][A-Za-z0-9_]*"
-                              , reCompiled = Just (compileRegex True "\\$[A-Za-z_][A-Za-z0-9_]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , 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 = OtherTok
-                      , 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 = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$\\{#[A-Za-z_][A-Za-z0-9_]*(\\[[*@]\\])?\\}"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\$\\{#[A-Za-z_][A-Za-z0-9_]*(\\[[*@]\\])?\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$\\{![A-Za-z_][A-Za-z0-9_]*(\\[[*@]\\]|[*@])?\\}"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\$\\{![A-Za-z_][A-Za-z0-9_]*(\\[[*@]\\]|[*@])?\\}")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$\\{[A-Za-z_][A-Za-z0-9_]*"
-                              , reCompiled =
-                                  Just (compileRegex True "\\$\\{[A-Za-z_][A-Za-z0-9_]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "VarBrace" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\$\\{[*@#?$!_0-9-](?=[:#%/=?+-])"
-                              , reCompiled =
-                                  Just (compileRegex True "\\$\\{[*@#?$!_0-9-](?=[:#%/=?+-])")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "VarBrace" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "$(("
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "ExprDblParenSubst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "$(<"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "SubstFile" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "$("
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "SubstCommand" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "SubstBackq" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[`$\\\\]"
-                              , reCompiled = Just (compileRegex True "\\\\[`$\\\\]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FindTests"
-          , Context
-              { cName = "FindTests"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-[abcdefghkprstuwxOGLSNozn](?=\\s)"
-                              , reCompiled =
-                                  Just (compileRegex True "-[abcdefghkprstuwxOGLSNozn](?=\\s)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-([no]t|ef)(?=\\s)"
-                              , reCompiled = Just (compileRegex True "-([no]t|ef)(?=\\s)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , 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 = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-(eq|ne|[gl][te])(?=\\s)"
-                              , reCompiled = Just (compileRegex True "-(eq|ne|[gl][te])(?=\\s)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "FunctionDef"
-          , Context
-              { cName = "FunctionDef"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\s+[A-Za-z_:][A-Za-z0-9_:#%@-]*(\\s*\\(\\))?"
-                              , reCompiled =
-                                  Just
-                                    (compileRegex
-                                       True "\\s+[A-Za-z_:][A-Za-z0-9_:#%@-]*(\\s*\\(\\))?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = FunctionTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = FunctionTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "Group"
-          , Context
-              { cName = "Group"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindAll" )
-                      , 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
-              }
-          )
-        , ( "HereDoc"
-          , Context
-              { cName = "HereDoc"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<-\\s*\"([^|&;()<>\\s]+)\")"
-                              , reCompiled =
-                                  Just (compileRegex True "(<<-\\s*\"([^|&;()<>\\s]+)\")")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "HereDocIQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<-\\s*'([^|&;()<>\\s]+)')"
-                              , reCompiled =
-                                  Just (compileRegex True "(<<-\\s*'([^|&;()<>\\s]+)')")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "HereDocIQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<-\\s*\\\\([^|&;()<>\\s]+))"
-                              , reCompiled =
-                                  Just (compileRegex True "(<<-\\s*\\\\([^|&;()<>\\s]+))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "HereDocIQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<-\\s*([^|&;()<>\\s]+))"
-                              , reCompiled = Just (compileRegex True "(<<-\\s*([^|&;()<>\\s]+))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "HereDocINQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<\\s*\"([^|&;()<>\\s]+)\")"
-                              , reCompiled =
-                                  Just (compileRegex True "(<<\\s*\"([^|&;()<>\\s]+)\")")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "HereDocQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<\\s*'([^|&;()<>\\s]+)')"
-                              , reCompiled =
-                                  Just (compileRegex True "(<<\\s*'([^|&;()<>\\s]+)')")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "HereDocQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<\\s*\\\\([^|&;()<>\\s]+))"
-                              , reCompiled =
-                                  Just (compileRegex True "(<<\\s*\\\\([^|&;()<>\\s]+))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "HereDocQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(<<\\s*([^|&;()<>\\s]+))"
-                              , reCompiled = Just (compileRegex True "(<<\\s*([^|&;()<>\\s]+))")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = True
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "HereDocNQ" ) ]
-                      }
-                  , Rule
-                      { rMatcher = StringDetect "<<"
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "HereDocINQ"
-          , Context
-              { cName = "HereDocINQ"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1" , reCompiled = Nothing , reCaseSensitive = True }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "HereDocRemainder" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\t*%2\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindSubstitutions" )
-                      , 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 = True
-              }
-          )
-        , ( "HereDocIQ"
-          , Context
-              { cName = "HereDocIQ"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1" , reCompiled = Nothing , reCaseSensitive = True }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "HereDocRemainder" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\t*%2\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "HereDocNQ"
-          , Context
-              { cName = "HereDocNQ"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1" , reCompiled = Nothing , reCaseSensitive = True }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "HereDocRemainder" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%2\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindSubstitutions" )
-                      , 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 = True
-              }
-          )
-        , ( "HereDocQ"
-          , Context
-              { cName = "HereDocQ"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%1" , reCompiled = Nothing , reCaseSensitive = True }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "HereDocRemainder" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "%2\\b"
-                              , reCompiled = Nothing
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = True
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Just 0
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = True
-              }
-          )
-        , ( "HereDocRemainder"
-          , Context
-              { cName = "HereDocRemainder"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindAll" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "ProcessSubst"
-          , Context
-              { cName = "ProcessSubst"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindCommentsParen" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindCommands" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindOthers" )
-                      , 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
-              }
-          )
-        , ( "Start"
-          , Context
-              { cName = "Start"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindAll" )
-                      , 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
-              }
-          )
-        , ( "StringDQ"
-          , Context
-              { cName = "StringDQ"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '"'
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[`\"\\\\$\\n]"
-                              , reCompiled = Just (compileRegex True "\\\\[`\"\\\\$\\n]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindSubstitutions" )
-                      , 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
-              }
-          )
-        , ( "StringEsc"
-          , Context
-              { cName = "StringEsc"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\[abefnrtv\\\\']"
-                              , reCompiled = Just (compileRegex True "\\\\[abefnrtv\\\\']")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\\\([0-7]{1,3}|x[A-Fa-f0-9]{1,2}|c.)"
-                              , reCompiled =
-                                  Just (compileRegex True "\\\\([0-7]{1,3}|x[A-Fa-f0-9]{1,2}|c.)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = DataTypeTok
-                      , 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 = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '\''
-                      , rAttribute = StringTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  ]
-              , cAttribute = StringTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SubShell"
-          , Context
-              { cName = "SubShell"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindAll" )
-                      , 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
-              }
-          )
-        , ( "Subscript"
-          , Context
-              { cName = "Subscript"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ']'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindStrings" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindSubstitutions" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindOthers" )
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = OtherTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "SubstBackq"
-          , Context
-              { cName = "SubstBackq"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '`'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindCommentsBackq" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindCommands" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindOthers" )
-                      , 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
-              }
-          )
-        , ( "SubstCommand"
-          , Context
-              { cName = "SubstCommand"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindCommentsParen" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindCommands" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindOthers" )
-                      , 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
-              }
-          )
-        , ( "SubstFile"
-          , Context
-              { cName = "SubstFile"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ')'
-                      , rAttribute = KeywordTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindCommentsParen" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindSubstitutions" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindOthers" )
-                      , 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
-              }
-          )
-        , ( "VarAlt"
-          , Context
-              { cName = "VarAlt"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindSubstitutions" )
-                      , 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
-              }
-          )
-        , ( "VarBrace"
-          , Context
-              { cName = "VarBrace"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "Subscript" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "(:?[-=?+]|##?|%%?)"
-                              , reCompiled = Just (compileRegex True "(:?[-=?+]|##?|%%?)")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "VarAlt" ) ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "//?"
-                              , reCompiled = Just (compileRegex True "//?")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "VarSubst" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar ':'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "VarSub" ) ]
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "VarName"
-          , Context
-              { cName = "VarName"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "-[A-Za-z0-9]+"
-                              , reCompiled = Just (compileRegex True "-[A-Za-z0-9]+")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "--[a-z][A-Za-z0-9_-]*"
-                              , reCompiled = Just (compileRegex True "--[a-z][A-Za-z0-9_-]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "\\b[A-Za-z_][A-Za-z0-9_]*"
-                              , reCompiled = Just (compileRegex True "\\b[A-Za-z_][A-Za-z0-9_]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '['
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "Subscript" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '='
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "Assign" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindMost" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[^]})|;`&><]"
-                              , reCompiled = Just (compileRegex True "[^]})|;`&><]")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = NormalTok
-              , cLineEmptyContext = []
-              , cLineEndContext = [ Pop ]
-              , cLineBeginContext = []
-              , cFallthrough = True
-              , cFallthroughContext = [ Pop ]
-              , cDynamic = False
-              }
-          )
-        , ( "VarSub"
-          , Context
-              { cName = "VarSub"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar ':'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "VarSub2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Za-z_][A-Za-z0-9_]*"
-                              , reCompiled = Just (compileRegex True "[A-Za-z_][A-Za-z0-9_]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , 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 = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindSubstitutions" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "VarSub2"
-          , Context
-              { cName = "VarSub2"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher =
-                          RegExpr
-                            RE
-                              { reString = "[A-Za-z_][A-Za-z0-9_]*"
-                              , reCompiled = Just (compileRegex True "[A-Za-z_][A-Za-z0-9_]*")
-                              , reCaseSensitive = True
-                              }
-                      , rAttribute = OtherTok
-                      , 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 = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindSubstitutions" )
-                      , rAttribute = ErrorTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  ]
-              , cAttribute = ErrorTok
-              , cLineEmptyContext = []
-              , cLineEndContext = []
-              , cLineBeginContext = []
-              , cFallthrough = False
-              , cFallthroughContext = []
-              , cDynamic = False
-              }
-          )
-        , ( "VarSubst"
-          , Context
-              { cName = "VarSubst"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = DetectChar '/'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Push ( "Zsh" , "VarSubst2" ) ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindSubstitutions" )
-                      , 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
-              }
-          )
-        , ( "VarSubst2"
-          , Context
-              { cName = "VarSubst2"
-              , cSyntax = "Zsh"
-              , cRules =
-                  [ Rule
-                      { rMatcher = DetectChar '}'
-                      , rAttribute = OtherTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = [ Pop , Pop , Pop ]
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindStrings" )
-                      , rAttribute = NormalTok
-                      , rIncludeAttribute = False
-                      , rDynamic = False
-                      , rCaseSensitive = True
-                      , rChildren = []
-                      , rLookahead = False
-                      , rFirstNonspace = False
-                      , rColumn = Nothing
-                      , rContextSwitch = []
-                      }
-                  , Rule
-                      { rMatcher = IncludeRules ( "Zsh" , "FindSubstitutions" )
-                      , 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
-              }
-          )
-        ]
-  , sAuthor = "Jonathan Kolberg (bulldog98@kubuntu-de.org)"
-  , sVersion = "1"
-  , sLicense = "LGPL"
-  , sExtensions =
-      [ "*.sh"
-      , "*.zsh"
-      , ".zshrc"
-      , ".zprofile"
-      , ".zlogin"
-      , ".zlogout"
-      , ".profile"
-      ]
-  , sStartingContext = "Start"
-  }
+
+syntax :: Syntax
+syntax = read $! "Syntax {sName = \"Zsh\", sFilename = \"zsh.xml\", sShortname = \"Zsh\", sContexts = fromList [(\"Assign\",Context {cName = \"Assign\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = DetectChar '(', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"AssignArray\")]},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindOthers\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\w:,+_./-]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"AssignArray\",Context {cName = \"AssignArray\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '[', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"Subscript\")]},Rule {rMatcher = DetectChar '=', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"Assign\")]},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindMost\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"AssignSubscr\",Context {cName = \"AssignSubscr\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = DetectChar '[', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"Subscript\")]},Rule {rMatcher = Detect2Chars '+' '=', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"Assign\")]},Rule {rMatcher = DetectChar '=', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"Assign\")]},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindOthers\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"Case\",Context {cName = \"Case\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\sin\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"CaseIn\")]},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindMost\"), 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}),(\"CaseExpr\",Context {cName = \"CaseExpr\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = Detect2Chars ';' ';', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"esac(?=$|[\\\\s;)])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindAll\"), 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}),(\"CaseIn\",Context {cName = \"CaseIn\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\besac(?=$|[\\\\s;)])\", reCaseSensitive = True}), 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 = [Push (\"Zsh\",\"CaseExpr\")]},Rule {rMatcher = AnyChar \"(|\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindMost\"), 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 = \"Zsh\", cRules = [Rule {rMatcher = IncludeRules (\"Alerts\",\"\"), rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CommentBackq\",Context {cName = \"CommentBackq\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[^`](?=`)\", reCaseSensitive = True}), 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 = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"CommentParen\",Context {cName = \"CommentParen\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"[^)](?=\\\\))\", reCaseSensitive = True}), 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 = []}], cAttribute = CommentTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ExprBracket\",Context {cName = \"ExprBracket\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s\\\\](?=($|[\\\\s;|&]))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\](?=($|[\\\\s;|&]))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"ExprSubParen\")]},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindTests\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindMost\"), 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}),(\"ExprDblBracket\",Context {cName = \"ExprDblBracket\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s\\\\]\\\\](?=($|[\\\\s;|&]))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\]\\\\](?=($|[\\\\s;|&]))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"ExprSubParen\")]},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindTests\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindMost\"), 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}),(\"ExprDblParen\",Context {cName = \"ExprDblParen\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = Detect2Chars ')' ')', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"ExprSubParen\")]},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindMost\"), 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}),(\"ExprDblParenSubst\",Context {cName = \"ExprDblParenSubst\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = Detect2Chars ')' ')', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"ExprSubParen\")]},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindMost\"), 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}),(\"ExprSubParen\",Context {cName = \"ExprSubParen\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '(', rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"ExprSubParen\")]},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindMost\"), 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}),(\"FindAll\",Context {cName = \"FindAll\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = IncludeRules (\"Zsh\",\"FindComments\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindCommands\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindOthers\"), 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}),(\"FindCommands\",Context {cName = \"FindCommands\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = Detect2Chars '(' '(', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"ExprDblParen\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[\\\\[(?=($|\\\\s))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Zsh\",\"ExprDblBracket\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s\\\\[\\\\[(?=($|\\\\s))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"ExprDblBracket\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\[(?=($|\\\\s))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Push (\"Zsh\",\"ExprBracket\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\s\\\\[(?=($|\\\\s))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"ExprBracket\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\{(?=($|\\\\s))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"Group\")]},Rule {rMatcher = DetectChar '(', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"SubShell\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bdo(?![\\\\w$+-])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bdone(?![\\\\w$+-])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bif(?=($|\\\\s))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bfi(?![\\\\w$+-])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bcase(?![\\\\w$+-])\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"Case\")]},Rule {rMatcher = RegExpr (RE {reString = \"-[A-Za-z0-9][A-Za-z0-9_]*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"--[a-z][A-Za-z0-9_-]*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[A-Za-z_][A-Za-z0-9_]*\\\\+?=\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"Assign\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[A-Za-z_][A-Za-z0-9_]*(?=\\\\[.+\\\\]\\\\+?=)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"AssignSubscr\")]},Rule {rMatcher = StringDetect \":()\", rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\bfunction\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"FunctionDef\")]},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !&()*+,;<=>?\\\\`|~\"}) (CaseSensitiveWords (fromList [\"elif\",\"else\",\"for\",\"function\",\"in\",\"select\",\"set\",\"then\",\"until\",\"while\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\.(?=\\\\s)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !&()*+,;<=>?\\\\`|~\"}) (CaseSensitiveWords (fromList [\"-\",\".\",\":\",\"alias\",\"autoload\",\"bg\",\"bindkey\",\"break\",\"builtin\",\"bye\",\"cap\",\"cd\",\"chdir\",\"clone\",\"command\",\"comparguments\",\"compcall\",\"compctl\",\"compdescribe\",\"compfiles\",\"compgroups\",\"compquote\",\"comptags\",\"comptry\",\"compvalues\",\"continue\",\"dirs\",\"disable\",\"disown\",\"echo\",\"echotc\",\"echoti\",\"emulate\",\"enable\",\"eval\",\"exec\",\"exit\",\"false\",\"fc\",\"fg\",\"functions\",\"getcap\",\"getopts\",\"hash\",\"history\",\"jobs\",\"kill\",\"let\",\"limit\",\"log\",\"logout\",\"noglob\",\"popd\",\"print\",\"printf\",\"pushd\",\"pushln\",\"pwd\",\"r\",\"rehash\",\"return\",\"sched\",\"set\",\"setcap\",\"setopt\",\"shift\",\"source\",\"stat\",\"suspend\",\"test\",\"times\",\"trap\",\"true\",\"ttyctl\",\"type\",\"ulimit\",\"umask\",\"unalias\",\"unfunction\",\"unhash\",\"unlimit\",\"unset\",\"unsetopt\",\"vared\",\"wait\",\"whence\",\"where\",\"which\",\"zcompile\",\"zformat\",\"zftp\",\"zle\",\"zmodload\",\"zparseopts\",\"zprof\",\"zpty\",\"zregexparse\",\"zsocket\",\"zstyle\",\"ztcp\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !&()*+,;<=>?\\\\`|~\"}) (CaseSensitiveWords (fromList [\"aclocal\",\"aconnect\",\"aplay\",\"apm\",\"apmsleep\",\"apropos\",\"ar\",\"arch\",\"arecord\",\"as\",\"as86\",\"autoconf\",\"autoheader\",\"automake\",\"awk\",\"basename\",\"bash\",\"bc\",\"bison\",\"bunzip2\",\"bzcat\",\"bzcmp\",\"bzdiff\",\"bzegrep\",\"bzfgrep\",\"bzgrep\",\"bzip2\",\"bzip2recover\",\"bzless\",\"bzmore\",\"c++\",\"cal\",\"cat\",\"cc\",\"cd-read\",\"cdda2wav\",\"cdparanoia\",\"cdrdao\",\"cdrecord\",\"chattr\",\"chfn\",\"chgrp\",\"chmod\",\"chown\",\"chroot\",\"chsh\",\"chvt\",\"clear\",\"cmp\",\"co\",\"col\",\"comm\",\"cp\",\"cpio\",\"cpp\",\"cut\",\"date\",\"dc\",\"dcop\",\"dd\",\"deallocvt\",\"df\",\"diff\",\"diff3\",\"dir\",\"dircolors\",\"directomatic\",\"dirname\",\"dmesg\",\"dnsdomainname\",\"domainname\",\"du\",\"dumpkeys\",\"echo\",\"ed\",\"egrep\",\"env\",\"expr\",\"false\",\"fbset\",\"fgconsole\",\"fgrep\",\"file\",\"find\",\"flex\",\"flex++\",\"fmt\",\"free\",\"ftp\",\"funzip\",\"fuser\",\"g++\",\"gawk\",\"gc\",\"gcc\",\"gdb\",\"getent\",\"getkeycodes\",\"getopt\",\"gettext\",\"gettextize\",\"gimp\",\"gimp-remote\",\"gimptool\",\"gmake\",\"gocr\",\"grep\",\"groff\",\"groups\",\"gs\",\"gunzip\",\"gzexe\",\"gzip\",\"head\",\"hexdump\",\"hostname\",\"id\",\"igawk\",\"install\",\"join\",\"kbd_mode\",\"kbdrate\",\"kdialog\",\"kfile\",\"kill\",\"killall\",\"last\",\"lastb\",\"ld\",\"ld86\",\"ldd\",\"less\",\"lex\",\"link\",\"ln\",\"loadkeys\",\"loadunimap\",\"locate\",\"lockfile\",\"login\",\"logname\",\"lp\",\"lpr\",\"ls\",\"lsattr\",\"lsmod\",\"lsmod.old\",\"lynx\",\"lzcat\",\"lzcmp\",\"lzdiff\",\"lzegrep\",\"lzfgrep\",\"lzgrep\",\"lzless\",\"lzma\",\"lzmainfo\",\"lzmore\",\"m4\",\"make\",\"man\",\"mapscrn\",\"mesg\",\"mkdir\",\"mkfifo\",\"mknod\",\"mktemp\",\"more\",\"mount\",\"msgfmt\",\"mv\",\"namei\",\"nano\",\"nasm\",\"nawk\",\"netstat\",\"nice\",\"nisdomainname\",\"nl\",\"nm\",\"nm86\",\"nmap\",\"nohup\",\"nop\",\"nroff\",\"od\",\"openvt\",\"passwd\",\"patch\",\"pcregrep\",\"pcretest\",\"perl\",\"perror\",\"pgawk\",\"pidof\",\"ping\",\"pr\",\"printf\",\"procmail\",\"prune\",\"ps\",\"ps2ascii\",\"ps2epsi\",\"ps2frag\",\"ps2pdf\",\"ps2ps\",\"psbook\",\"psmerge\",\"psnup\",\"psresize\",\"psselect\",\"pstops\",\"pstree\",\"pwd\",\"rbash\",\"rcs\",\"readlink\",\"red\",\"resizecons\",\"rev\",\"rm\",\"rmdir\",\"run-parts\",\"sash\",\"scp\",\"sed\",\"seq\",\"setfont\",\"setkeycodes\",\"setleds\",\"setmetamode\",\"setserial\",\"setterm\",\"sh\",\"showkey\",\"shred\",\"size\",\"size86\",\"skill\",\"sleep\",\"slogin\",\"snice\",\"sort\",\"sox\",\"split\",\"ssed\",\"ssh\",\"ssh-add\",\"ssh-agent\",\"ssh-keygen\",\"ssh-keyscan\",\"stat\",\"strings\",\"strip\",\"stty\",\"su\",\"sudo\",\"suidperl\",\"sum\",\"sync\",\"tac\",\"tail\",\"tar\",\"tee\",\"tempfile\",\"test\",\"touch\",\"tr\",\"troff\",\"true\",\"umount\",\"uname\",\"unicode_start\",\"unicode_stop\",\"uniq\",\"unlink\",\"unlzma\",\"unxz\",\"unzip\",\"updatedb\",\"updmap\",\"uptime\",\"users\",\"utmpdump\",\"uuidgen\",\"vdir\",\"vmstat\",\"w\",\"wall\",\"wc\",\"wget\",\"whatis\",\"whereis\",\"which\",\"who\",\"whoami\",\"write\",\"xargs\",\"xhost\",\"xmodmap\",\"xset\",\"xz\",\"xzcat\",\"yacc\",\"yes\",\"ypdomainname\",\"zcat\",\"zcmp\",\"zdiff\",\"zegrep\",\"zfgrep\",\"zforce\",\"zgrep\",\"zip\",\"zless\",\"zmore\",\"znew\",\"zsh\",\"zsoelim\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Keyword (KeywordAttr {keywordCaseSensitive = True, keywordDelims = fromList \"\\t\\n !&()*+,;<=>?\\\\`|~\"}) (CaseSensitiveWords (fromList [\"declare\",\"export\",\"float\",\"getln\",\"integer\",\"local\",\"read\",\"readonly\",\"typeset\",\"unset\"])), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"VarName\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\d*<<<\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = StringDetect \"<<\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"HereDoc\")]},Rule {rMatcher = RegExpr (RE {reString = \"[<>]\\\\(\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"ProcessSubst\")]},Rule {rMatcher = RegExpr (RE {reString = \"([0-9]*(>{1,2}|<)(&[0-9]+-?)?|&>|>&|[0-9]*<>)\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([|&])\\\\1?\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[A-Za-z_:][A-Za-z0-9_:#%@-]*\\\\s*\\\\(\\\\)\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindComments\",Context {cName = \"FindComments\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"Comment\")]},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\s;](?=#)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"Comment\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindCommentsBackq\",Context {cName = \"FindCommentsBackq\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"CommentBackq\")]},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\s;](?=#)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"CommentBackq\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindCommentsParen\",Context {cName = \"FindCommentsParen\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = DetectChar '#', rAttribute = CommentTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = True, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"CommentParen\")]},Rule {rMatcher = RegExpr (RE {reString = \"[\\\\s;](?=#)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"CommentParen\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindMost\",Context {cName = \"FindMost\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = IncludeRules (\"Zsh\",\"FindComments\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindOthers\"), 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}),(\"FindOthers\",Context {cName = \"FindOthers\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[][;\\\\\\\\$`{}()|&<>* ]\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\$\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\{(?!(\\\\s|$))\\\\S*\\\\}\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([\\\\w_@.%*?+-]|\\\\\\\\ )*(?=/)\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"~\\\\w*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"/([\\\\w_@.%*?+-]|\\\\\\\\ )*(?=([\\\\s/):;$`'\\\"]|$))\", 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}),(\"FindStrings\",Context {cName = \"FindStrings\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = Detect2Chars '\\\\' '\\'', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = Detect2Chars '\\\\' '\"', rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"StringSQ\")]},Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"StringDQ\")]},Rule {rMatcher = Detect2Chars '$' '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"StringEsc\")]},Rule {rMatcher = Detect2Chars '$' '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"StringDQ\")]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindSubstitutions\",Context {cName = \"FindSubstitutions\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[A-Za-z_][A-Za-z0-9_]*\\\\[\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"Subscript\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[A-Za-z_][A-Za-z0-9_]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$[*@#?$!_0-9-]\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\{[*@#?$!_0-9-]\\\\}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\{#[A-Za-z_][A-Za-z0-9_]*(\\\\[[*@]\\\\])?\\\\}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\{![A-Za-z_][A-Za-z0-9_]*(\\\\[[*@]\\\\]|[*@])?\\\\}\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\{[A-Za-z_][A-Za-z0-9_]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"VarBrace\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\$\\\\{[*@#?$!_0-9-](?=[:#%/=?+-])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"VarBrace\")]},Rule {rMatcher = StringDetect \"$((\", rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"ExprDblParenSubst\")]},Rule {rMatcher = StringDetect \"$(<\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"SubstFile\")]},Rule {rMatcher = StringDetect \"$(\", rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"SubstCommand\")]},Rule {rMatcher = DetectChar '`', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"SubstBackq\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[`$\\\\\\\\]\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FindTests\",Context {cName = \"FindTests\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"-[abcdefghkprstuwxOGLSNozn](?=\\\\s)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-([no]t|ef)(?=\\\\s)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"([!=]=?|[><])(?=\\\\s)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"-(eq|ne|[gl][te])(?=\\\\s)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"FunctionDef\",Context {cName = \"FunctionDef\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"\\\\s+[A-Za-z_:][A-Za-z0-9_:#%@-]*(\\\\s*\\\\(\\\\))?\", reCaseSensitive = True}), rAttribute = FunctionTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = FunctionTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"Group\",Context {cName = \"Group\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindAll\"), 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}),(\"HereDoc\",Context {cName = \"HereDoc\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"(<<-\\\\s*\\\"([^|&;()<>\\\\s]+)\\\")\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"HereDocIQ\")]},Rule {rMatcher = RegExpr (RE {reString = \"(<<-\\\\s*'([^|&;()<>\\\\s]+)')\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"HereDocIQ\")]},Rule {rMatcher = RegExpr (RE {reString = \"(<<-\\\\s*\\\\\\\\([^|&;()<>\\\\s]+))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"HereDocIQ\")]},Rule {rMatcher = RegExpr (RE {reString = \"(<<-\\\\s*([^|&;()<>\\\\s]+))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"HereDocINQ\")]},Rule {rMatcher = RegExpr (RE {reString = \"(<<\\\\s*\\\"([^|&;()<>\\\\s]+)\\\")\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"HereDocQ\")]},Rule {rMatcher = RegExpr (RE {reString = \"(<<\\\\s*'([^|&;()<>\\\\s]+)')\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"HereDocQ\")]},Rule {rMatcher = RegExpr (RE {reString = \"(<<\\\\s*\\\\\\\\([^|&;()<>\\\\s]+))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"HereDocQ\")]},Rule {rMatcher = RegExpr (RE {reString = \"(<<\\\\s*([^|&;()<>\\\\s]+))\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = True, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"HereDocNQ\")]},Rule {rMatcher = StringDetect \"<<\", rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"HereDocINQ\",Context {cName = \"HereDocINQ\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"HereDocRemainder\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\t*%2\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindSubstitutions\"), 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 = True}),(\"HereDocIQ\",Context {cName = \"HereDocIQ\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"HereDocRemainder\")]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\t*%2\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"HereDocNQ\",Context {cName = \"HereDocNQ\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"HereDocRemainder\")]},Rule {rMatcher = RegExpr (RE {reString = \"%2\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindSubstitutions\"), 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 = True}),(\"HereDocQ\",Context {cName = \"HereDocQ\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"%1\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"HereDocRemainder\")]},Rule {rMatcher = RegExpr (RE {reString = \"%2\\\\b\", reCaseSensitive = True}), rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = True, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Just 0, rContextSwitch = [Pop,Pop]}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = True}),(\"HereDocRemainder\",Context {cName = \"HereDocRemainder\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = IncludeRules (\"Zsh\",\"FindAll\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"ProcessSubst\",Context {cName = \"ProcessSubst\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindCommentsParen\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindCommands\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindOthers\"), 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}),(\"Start\",Context {cName = \"Start\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = IncludeRules (\"Zsh\",\"FindAll\"), 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}),(\"StringDQ\",Context {cName = \"StringDQ\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = DetectChar '\"', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[`\\\"\\\\\\\\$\\\\n]\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindSubstitutions\"), 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}),(\"StringEsc\",Context {cName = \"StringEsc\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\[abefnrtv\\\\\\\\']\", reCaseSensitive = True}), rAttribute = DataTypeTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\\\\\([0-7]{1,3}|x[A-Fa-f0-9]{1,2}|c.)\", reCaseSensitive = True}), rAttribute = DataTypeTok, 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 = \"Zsh\", cRules = [Rule {rMatcher = DetectChar '\\'', rAttribute = StringTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]}], cAttribute = StringTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SubShell\",Context {cName = \"SubShell\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindAll\"), 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}),(\"Subscript\",Context {cName = \"Subscript\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = DetectChar ']', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindStrings\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindSubstitutions\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindOthers\"), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = OtherTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"SubstBackq\",Context {cName = \"SubstBackq\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = DetectChar '`', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindCommentsBackq\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindCommands\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindOthers\"), 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}),(\"SubstCommand\",Context {cName = \"SubstCommand\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindCommentsParen\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindCommands\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindOthers\"), 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}),(\"SubstFile\",Context {cName = \"SubstFile\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = DetectChar ')', rAttribute = KeywordTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindCommentsParen\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindSubstitutions\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindOthers\"), 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}),(\"VarAlt\",Context {cName = \"VarAlt\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindSubstitutions\"), 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}),(\"VarBrace\",Context {cName = \"VarBrace\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop]},Rule {rMatcher = DetectChar '[', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"Subscript\")]},Rule {rMatcher = RegExpr (RE {reString = \"(:?[-=?+]|##?|%%?)\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"VarAlt\")]},Rule {rMatcher = RegExpr (RE {reString = \"//?\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"VarSubst\")]},Rule {rMatcher = DetectChar ':', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"VarSub\")]}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"VarName\",Context {cName = \"VarName\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = RegExpr (RE {reString = \"-[A-Za-z0-9]+\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"--[a-z][A-Za-z0-9_-]*\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"\\\\b[A-Za-z_][A-Za-z0-9_]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = DetectChar '[', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"Subscript\")]},Rule {rMatcher = DetectChar '=', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"Assign\")]},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindMost\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[^]})|;`&><]\", reCaseSensitive = True}), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = NormalTok, cLineEmptyContext = [], cLineEndContext = [Pop], cLineBeginContext = [], cFallthrough = True, cFallthroughContext = [Pop], cDynamic = False}),(\"VarSub\",Context {cName = \"VarSub\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = DetectChar ':', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"VarSub2\")]},Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[A-Za-z_][A-Za-z0-9_]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[0-9]+(?=[:}])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindSubstitutions\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"VarSub2\",Context {cName = \"VarSub2\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = RegExpr (RE {reString = \"[A-Za-z_][A-Za-z0-9_]*\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = RegExpr (RE {reString = \"[0-9](?=[:}])\", reCaseSensitive = True}), rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindSubstitutions\"), rAttribute = ErrorTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []}], cAttribute = ErrorTok, cLineEmptyContext = [], cLineEndContext = [], cLineBeginContext = [], cFallthrough = False, cFallthroughContext = [], cDynamic = False}),(\"VarSubst\",Context {cName = \"VarSubst\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop]},Rule {rMatcher = DetectChar '/', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Push (\"Zsh\",\"VarSubst2\")]},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindSubstitutions\"), 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}),(\"VarSubst2\",Context {cName = \"VarSubst2\", cSyntax = \"Zsh\", cRules = [Rule {rMatcher = DetectChar '}', rAttribute = OtherTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = [Pop,Pop,Pop]},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindStrings\"), rAttribute = NormalTok, rIncludeAttribute = False, rDynamic = False, rCaseSensitive = True, rChildren = [], rLookahead = False, rFirstNonspace = False, rColumn = Nothing, rContextSwitch = []},Rule {rMatcher = IncludeRules (\"Zsh\",\"FindSubstitutions\"), 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})], sAuthor = \"Jonathan Kolberg (bulldog98@kubuntu-de.org)\", sVersion = \"1\", sLicense = \"LGPL\", sExtensions = [\"*.sh\",\"*.zsh\",\".zshrc\",\".zprofile\",\".zlogin\",\".zlogout\",\".profile\"], sStartingContext = \"Start\"}"
diff --git a/src/Skylighting/Tokenizer.hs b/src/Skylighting/Tokenizer.hs
--- a/src/Skylighting/Tokenizer.hs
+++ b/src/Skylighting/Tokenizer.hs
@@ -9,11 +9,11 @@
 import Control.Monad.Reader
 import Control.Monad.State.Strict
 import qualified Data.ByteString.Char8 as BS
+import qualified Data.Map as Map
 import Data.ByteString.Char8 (ByteString)
 import Data.CaseInsensitive (mk)
 import Data.Char (isAlphaNum, isAscii, isLetter, isSpace, ord, isPrint)
-import qualified Data.Map as Map
-import Data.Maybe (catMaybes, fromMaybe)
+import Data.Maybe (catMaybes)
 import Data.Monoid
 import qualified Data.Set as Set
 import Data.Text (Text)
@@ -49,7 +49,8 @@
   , column              :: Int
   , lineContinuation    :: Bool
   , firstNonspaceColumn :: Maybe Int
-} deriving (Show)
+  , compiledRegexes     :: Map.Map RE Regex
+}
 
 -- | Configuration options for 'tokenize'.
 data TokenizerConfig = TokenizerConfig{
@@ -132,6 +133,7 @@
                 , column = 0
                 , lineContinuation = False
                 , firstNonspaceColumn = Nothing
+                , compiledRegexes = Map.empty
                 }
 
 tokenizeLine :: (ByteString, Int) -> TokenizerM [Token]
@@ -270,7 +272,6 @@
 hlCStringCharRegex :: RE
 hlCStringCharRegex = RE{
     reString = reHlCStringChar
-  , reCompiled = Just $ compileRegex False reHlCStringChar
   , reCaseSensitive = False
   }
 
@@ -280,7 +281,6 @@
 hlCCharRegex :: RE
 hlCCharRegex = RE{
     reString = reStr
-  , reCompiled = Just $ compileRegex False reStr
   , reCaseSensitive = False
   }
   where reStr = "'(?:" <> reHlCStringChar <> "|[^'\\\\])'"
@@ -442,9 +442,17 @@
   reStr <- if dynamic
               then subDynamic (reString re)
               else return (reString re)
-  -- note, for dynamic regexes rCompiled == Nothing:
-  let regex = fromMaybe (compileRegex (reCaseSensitive re) reStr)
-                 $ reCompiled re
+  regex <- if dynamic
+              then return $ compileRegex (reCaseSensitive re) reStr
+              else do
+                compiledREs <- gets compiledRegexes
+                case Map.lookup re compiledREs of
+                     Nothing -> do
+                       let cre = compileRegex (reCaseSensitive re) reStr
+                       modify $ \st -> st{ compiledRegexes =
+                             Map.insert re cre (compiledRegexes st) }
+                       return cre
+                     Just cre -> return cre
   when (BS.take 2 reStr == "\\b") $ wordBoundary inp
   case matchRegex regex inp of
        Just (match:capts) -> do
@@ -539,7 +547,6 @@
 integerRegex :: RE
 integerRegex = RE{
     reString = intReStr
-  , reCompiled = Just $ compileRegex False intReStr
   , reCaseSensitive = False
   }
   where intReStr = "\\b[-+]?(0[Xx][0-9A-Fa-f]+|0[Oo][0-7]+|[0-9]+)\\b"
@@ -547,7 +554,6 @@
 floatRegex :: RE
 floatRegex = RE{
     reString = floatReStr
-  , reCompiled = Just $ compileRegex False floatReStr
   , reCaseSensitive = False
   }
   where floatReStr = "\\b[-+]?(([0-9]+\\.[0-9]*|[0-9]*\\.[0-9]+)([Ee][-+]?[0-9]+)?|[0-9]+[Ee][-+]?[0-9]+)\\b"
@@ -555,7 +561,6 @@
 octRegex :: RE
 octRegex = RE{
     reString = octRegexStr
-  , reCompiled = Just $ compileRegex False octRegexStr
   , reCaseSensitive = False
   }
   where octRegexStr = "\\b[-+]?0[Oo][0-7]+\\b"
@@ -563,7 +568,6 @@
 hexRegex :: RE
 hexRegex = RE{
     reString = hexRegexStr
-  , reCompiled = Just $ compileRegex False hexRegexStr
   , reCaseSensitive = False
   }
   where hexRegexStr = "\\b[-+]?0[Xx][0-9A-Fa-f]+\\b"
diff --git a/src/Skylighting/Types.hs b/src/Skylighting/Types.hs
--- a/src/Skylighting/Types.hs
+++ b/src/Skylighting/Types.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE DeriveDataTypeable   #-}
+{-# LANGUAGE DeriveGeneric       #-}
 {-# LANGUAGE FlexibleInstances    #-}
 {-# LANGUAGE OverloadedStrings    #-}
 {-# LANGUAGE ScopedTypeVariables  #-}
@@ -41,6 +42,7 @@
 import Data.Text (Text)
 import qualified Data.Text as Text
 import Data.Typeable (Typeable)
+import GHC.Generics (Generic)
 import Data.Word
 import Safe (readMay)
 import Skylighting.Regex
@@ -54,6 +56,7 @@
   KeywordAttr  { keywordCaseSensitive :: Bool
                , keywordDelims        :: Set.Set Char
                }
+  deriving (Read, Eq, Ord, Data, Typeable, Generic)
 
 -- we have a custom show instance solely in order to get
 -- parentheses around the (Data.Set.fromList ...) part.
@@ -64,6 +67,7 @@
 
 data WordSet a = CaseSensitiveWords (Set.Set a)
                | CaseInsensitiveWords (Set.Set (CI a))
+     deriving (Read, Eq, Ord, Data, Typeable, Generic)
 
 -- | A set of words to match (either case-sensitive or case-insensitive).
 makeWordSet :: (FoldCase a, Ord a) => Bool -> [a] -> WordSet a
@@ -95,11 +99,11 @@
   | IncludeRules ContextName
   | DetectSpaces
   | DetectIdentifier
-  deriving (Show)
+  deriving (Show, Read, Eq, Ord, Data, Typeable, Generic)
 
 data ContextSwitch =
   Pop | Push ContextName
-  deriving Show
+  deriving (Show, Read, Eq, Ord, Data, Typeable, Generic)
 
 -- | A rule corresponds to one of the elements of a Kate syntax
 -- highlighting "context."
@@ -114,7 +118,7 @@
   , rFirstNonspace    :: Bool
   , rColumn           :: Maybe Int
   , rContextSwitch    :: [ContextSwitch]
-  } deriving (Show)
+  } deriving (Show, Read, Eq, Ord, Data, Typeable, Generic)
 
 -- | A syntax corresponds to a complete Kate syntax description.
 -- The 'sShortname' field is derived from the filename.
@@ -128,7 +132,7 @@
   , sLicense         :: Text
   , sExtensions      :: [String]
   , sStartingContext :: Text
-  } deriving (Show)
+  } deriving (Show, Read, Eq, Ord, Data, Typeable, Generic)
 
 -- | A map of syntaxes, keyed by full name.
 type SyntaxMap = Map.Map Text Syntax
@@ -146,7 +150,7 @@
   , cFallthrough        :: Bool
   , cFallthroughContext :: [ContextSwitch]
   , cDynamic            :: Bool
-} deriving (Show)
+} deriving (Show, Read, Eq, Ord, Data, Typeable, Generic)
 
 -- | A pair consisting of a list of attributes and some text.
 type Token = (TokenType, Text)
@@ -184,7 +188,7 @@
                | AlertTok
                | ErrorTok
                | NormalTok
-               deriving (Read, Show, Eq, Ord, Enum, Data, Typeable)
+               deriving (Read, Show, Eq, Ord, Enum, Data, Typeable, Generic)
 
 -- | JSON @"Keyword"@ corresponds to 'KeywordTok', and so on.
 instance FromJSON TokenType where
@@ -204,7 +208,7 @@
   , tokenBold       :: Bool
   , tokenItalic     :: Bool
   , tokenUnderline  :: Bool
-  } deriving (Show, Read, Ord, Eq, Data, Typeable)
+  } deriving (Show, Read, Ord, Eq, Data, Typeable, Generic)
 
 -- | The keywords used in KDE syntax
 -- themes are used, e.g. @text-color@ for default token color.
@@ -234,7 +238,7 @@
 
 -- A color (red/green/blue).
 data Color = RGB Word8 Word8 Word8
-  deriving (Show, Read, Ord, Eq, Data, Typeable)
+  deriving (Show, Read, Ord, Eq, Data, Typeable, Generic)
 
 class ToColor a where
   toColor :: a -> Maybe Color
@@ -289,7 +293,7 @@
   , backgroundColor           :: Maybe Color
   , lineNumberColor           :: Maybe Color
   , lineNumberBackgroundColor :: Maybe Color
-  } deriving (Read, Show, Eq, Ord, Data, Typeable)
+  } deriving (Read, Show, Eq, Ord, Data, Typeable, Generic)
 
 -- | The FromJSON instance for 'Style' is designed so that
 -- a KDE syntax theme (JSON) can be decoded directly as a
@@ -319,7 +323,7 @@
        , codeClasses      :: [Text]   -- ^ Additional classes for Html code tag
        , containerClasses :: [Text]   -- ^ Additional classes for Html container tag
                                       --   (pre or table depending on numberLines)
-       } deriving (Eq, Show, Read)
+       } deriving (Show, Read, Eq, Ord, Data, Typeable, Generic)
 
 defaultFormatOpts :: FormatOptions
 defaultFormatOpts = FormatOptions{
diff --git a/test/test-skylighting.hs b/test/test-skylighting.hs
--- a/test/test-skylighting.hs
+++ b/test/test-skylighting.hs
@@ -42,6 +42,7 @@
   args <- getArgs
   let regen = "--regenerate" `elem` args
   defaultTheme <- BL.readFile ("test" </> "default.theme")
+  putStrLn $ "randomText = " ++ show randomText
   defaultMain $ testGroup "skylighting tests" $
     [ testGroup "tokenizer tests" $
         map (tokenizerTest regen) inputs
@@ -82,6 +83,17 @@
               ,(StringTok,"c")
               ,(KeywordTok,"\NUL")]]
              @=? tokenize defConfig perl "s\0b\0c\0"
+      , testCase "perl backslash case 1" $ Right
+          [ [ ( KeywordTok , "m\\" )
+            , ( OtherTok , "'" ) ]
+          ] @=? tokenize defConfig perl
+                     "m\\'"
+      , testCase "perl backslash case 2" $ Right
+          [ [ ( KeywordTok , "m\\" )
+            , ( OtherTok , "a" )
+            , ( KeywordTok , "\\" ) ]
+          ] @=? tokenize defConfig perl
+                     "m\\a\\"
       , testCase "perl quoting case" $ Right
            [ [ ( KeywordTok , "my" )
               , ( NormalTok , " " )
